Topik ini menjelaskan cara menggunakan Nginx sebagai server proxy forward dan modus proxy untuk mengumpulkan log dari server on-premises ke Simple Log Service.
Prasyarat
-
Proyek dan Logstore harus telah dibuat. Untuk informasi selengkapnya, lihat Kelola Proyek dan Buat Logstore dasar.
-
Logtail versi 1.5.0 atau lebih baru telah diinstal pada server Linux Anda, atau Logtail versi 1.5.0.0 atau lebih baru telah diinstal pada server Windows Anda. Untuk informasi selengkapnya, lihat Instal Logtail pada server Linux dan Instal Logtail pada server Windows.
Informasi latar belakang
Untuk mengumpulkan log dari server on-premises yang tidak memiliki akses Internet publik, gunakan modus proxy. Modus ini memungkinkan server yang memiliki akses Internet publik bertindak sebagai proxy forward, meneruskan log dari server lain ke Simple Log Service.
Cara kerja
Logtail melakukan pertukaran data kontrol, layanan, dan pemantauan dengan Simple Log Service. Data kontrol mencakup informasi seperti pengiriman konfigurasi Logtail dan otentikasi. Komunikasi ini menggunakan HTTP dan HTTPS, dengan data layanan dan pemantauan dikirim melalui HTTP secara default. Oleh karena itu, server proxy harus meneruskan traffic HTTP maupun HTTPS.
Nginx adalah server proxy HTTP open source berkinerja tinggi. Nginx secara native mendukung penerusan traffic HTTP tetapi tidak dapat langsung meneruskan traffic HTTPS karena faktor seperti otentikasi. Untuk mengaktifkan penerusan HTTPS, Anda harus menerapkan patch HTTPS pada Nginx.
Langkah 1: Konfigurasikan server proxy
Gunakan Nginx untuk mengonfigurasi server on-premises yang memiliki akses Internet publik sebagai server proxy forward.
-
Login ke mesin yang akan berfungsi sebagai server proxy forward.
-
Unduh Nginx dan patch HTTPS.
-
Unduh patch HTTPS.
git clone https://github.com/chobits/ngx_http_proxy_connect_module.git -
Unduh dan ekstrak Nginx.
Ganti ${version} dengan versi Nginx Anda. Untuk versi terbaru, lihat nginx: download.
wget http://nginx.org/download/nginx-${version}.tar.gz tar -xzvf nginx-${version}.tar.gz cd nginx-${version}/
-
-
Terapkan patch HTTPS pada Nginx.
Dalam perintah tersebut, ${patchfile} adalah path file. Pilih file yang sesuai dengan versi Nginx Anda. Untuk informasi selengkapnya, lihat Select patch.
patch -p1 < ../ngx_http_proxy_connect_module/patch/${patchfile}.patch -
Instal Nginx.
./configure --add-module=../ngx_http_proxy_connect_module make && make install -
Tambahkan konfigurasi berikut ke file nginx.conf.
Ganti ${proxy_server_listening_port} dan ${dns_server_address} dengan nilai aktual Anda.
server { listen ${proxy_server_listening_port}; resolver ${dns_server_address}; # Digunakan untuk menentukan proxy untuk permintaan non-HTTP. proxy_connect; proxy_connect_allow 443; proxy_connect_connect_timeout 10s; proxy_connect_data_timeout 10s; # Digunakan untuk menentukan proxy untuk permintaan HTTP. location / { proxy_pass http://$host; proxy_set_header Host $host; } } -
Jalankan server Nginx.
Langkah 2: Atur variabel lingkungan terkait proxy
Sistem Linux
Anda dapat menggunakan salah satu dari dua metode untuk mengatur variabel lingkungan terkait proxy.
|
Metode |
Kelebihan |
Kekurangan |
Kasus penggunaan |
|
Metode 1 |
Konfigurasi hanya memengaruhi proses Logtail dan dampaknya minimal. |
Konfigurasinya relatif kompleks. |
Ideal untuk pengguna yang tidak familiar dengan konfigurasi jaringan keseluruhan server. |
|
Metode 2 |
Konfigurasinya sederhana. |
Konfigurasi ini berlaku untuk seluruh server sehingga dampaknya lebih luas. |
Ideal untuk administrator server yang memahami sepenuhnya pola permintaan jaringan semua proses di server. |
Metode 1
-
Login ke server on-premises.
-
Buka file
/etc/init.d/ilogtaild, tambahkan variabel lingkungan yang diperlukan ke fungsistart(), lalu simpan file tersebut.Untuk informasi selengkapnya tentang variabel lingkungan, lihat Lampiran: Variabel lingkungan proxy.
start() { cd $BIN_DIR umask $UMASK # Tambahkan variabel lingkungan terkait proxy sebelum $BIN_DIR/ilogtail. # Contoh ini menggunakan ALL_PROXY. Asumsikan alamat IP server proxy adalah 192.168.1.0 dan port listening-nya adalah 9000. # Server on-premises berkomunikasi dengan server proxy melalui HTTP. ALL_PROXY=http://192.168.1.0:9000 $BIN_DIR/ilogtail RETVAL=$? } -
Jalankan perintah berikut untuk restart Logtail.
/etc/init.d/ilogtaild restart -
Ulangi langkah 1 hingga 3 untuk mengatur variabel lingkungan terkait proxy pada server on-premises lainnya.
Metode 2
Gunakan metode ini hanya jika Anda ingin meneruskan semua permintaan jaringan di server on-premises, atau jika Anda hanya ingin meneruskan permintaan Logtail dan memahami sepenuhnya perilaku jaringan proses lain di server. Jika tidak, gunakan Metode 1.
-
Login ke server on-premises.
-
Gunakan perintah
exportuntuk menambahkan variabel lingkungan terkait proxy ke file startup~/.bash_profileatau/etc/profile.Untuk informasi selengkapnya tentang variabel lingkungan, lihat Lampiran: Variabel lingkungan proxy.
-
Jalankan perintah berikut untuk menerapkan variabel lingkungan tersebut.
Contoh ini menggunakan file startup
~/.bash_profile.source ~/.bash_profile -
Jalankan perintah berikut untuk restart Logtail.
/etc/init.d/ilogtaild restart -
Ulangi langkah 1 hingga 4 untuk mengonfigurasi variabel lingkungan terkait proxy pada server on-premises lainnya.
Sistem Windows
-
Buka jendela Running, masukkan regedit, lalu klik OK.
-
Pada jendela Registry Editor, navigasikan ke Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\LogtailDaemon, lalu klik LogtailDaemon.
-
Klik kanan, pilih , lalu beri nama nilai baru tersebut Environment.
-
Klik ganda Environment. Pada kotak teks Value data, masukkan variabel lingkungan terkait proxy, lalu klik OK.
Contoh ini menggunakan ALL_PROXY. Alamat IP server proxy adalah 192.168.1.0 dan port listening-nya adalah 9000. Server on-premises berkomunikasi dengan server proxy melalui HTTP. Untuk informasi selengkapnya tentang variabel lingkungan, lihat Lampiran: Variabel lingkungan proxy. Misalnya, masukkan
ALL_PROXY=http://192.168.1.0:9000. -
Buka jendela Running, masukkan services.msc, lalu klik OK.
-
Pada jendela Service, temukan layanan Logtail.
-
Untuk Logtail 0.x.x.x, pilih layanan LogtailWorker.
-
Untuk Logtail 1.0.0.0 atau lebih baru, pilih layanan LogtailDaemon.
-
-
Klik kanan layanan tersebut dan pilih Restart.
Langkah 3: Verifikasi konektivitas jaringan
-
Login ke server on-premises.
-
Jalankan perintah-perintah berikut.
Pada perintah berikut, ${region} adalah wilayah Proyek Anda dan ${project_name} adalah nama Proyek Anda. Ganti dengan nilai aktual.
curl http://logtail.${region}.log.aliyuncs.com curl https://logtail.${region}.log.aliyuncs.com curl http://${project_name}.${region}.log.aliyuncs.com curl http://ali-${region}-sls-admin.${region}.log.aliyuncs.comJika respons yang mirip dengan berikut dikembalikan, koneksi jaringan berfungsi dengan baik.
{"Error":{"Code":"OLSInvalidMethod","Message":"The script name is invalid : /","RequestId":"62591BC7C08B7BD4AA99FCD4"}} -
Ulangi langkah 1 dan 2 untuk memverifikasi koneksi jaringan pada server on-premises lainnya.
Lampiran: Variabel lingkungan proxy
Anda dapat menentukan variabel lingkungan ini dalam huruf kecil, tetapi variabel huruf kapital memiliki prioritas lebih tinggi.
-
Untuk mengirimkan seluruh traffic HTTP dan HTTPS ke server proxy yang sama, tambahkan variabel lingkungan
ALL_PROXY.ALL_PROXY=${address_of_the_forward_proxy_server} -
Untuk mengirimkan traffic HTTP dan HTTPS ke server proxy yang berbeda, tambahkan variabel lingkungan
HTTP_PROXYdanHTTPS_PROXY.HTTP_PROXY=${address_of_the_server_that_proxies_HTTP_traffic} HTTPS_PROXY=${address_of_the_server_that_proxies_HTTPS_traffic}Alamat server proxy harus dalam format
[protocol://[username:password@]]address[:port].-
protocol (opsional): Menentukan protokol komunikasi antara server on-premises dan server proxy. Nilai yang valid adalah http, https, dan socks5. Jika parameter ini tidak ditentukan, http digunakan secara default.
-
username dan password (opsional): Kredensial untuk login ke server proxy.
-
address (wajib): Alamat IP server proxy.
-
port (opsional): Port listening server proxy yang telah Anda konfigurasi dalam file nginx.conf. Untuk informasi selengkapnya, lihat langkah 5 pada bagian "Langkah 1: Konfigurasikan server proxy". Jika parameter ini dihilangkan, port 80 digunakan secara default.
Anda juga dapat menambahkan variabel lingkungan NO_PROXY untuk menentukan tujuan yang harus melewati server proxy. Pisahkan beberapa alamat dengan koma (,). Format yang didukung meliputi:
-
Alamat IP
-
Titik di awal (.) mencocokkan domain dan subdomain-nya.
-
* (menonaktifkan proxy untuk semua tujuan)
-