Topik ini menjelaskan cara mengonfigurasi server proxy maju dan mengumpulkan log dari server di intranet perusahaan ke Simple Log Service dalam mode proxy. Dalam topik ini, NGINX digunakan sebagai contoh.
Prasyarat
Sebuah Proyek dan penyimpanan log telah dibuat. Untuk informasi lebih lanjut, lihat Buat sebuah proyek dan Buat sebuah logstore.
Logtail V1.5.0 atau yang lebih baru telah diinstal pada Server Linux Anda, atau Logtail V1.5.0.0 atau yang lebih baru telah diinstal pada Server Windows Anda. Untuk informasi lebih lanjut, lihat Instal Logtail pada Server Linux dan Instal Logtail pada Server Windows.
Informasi latar belakang
Sebagai contoh, Anda menerapkan beberapa server di intranet perusahaan yang tidak memiliki akses ke Internet. Jika ingin mengumpulkan log dari server tersebut ke Simple Log Service untuk kueri dan analisis, Anda dapat memberikan otorisasi kepada salah satu server untuk mengakses Internet dan mengumpulkan log dari server lainnya ke Simple Log Service dalam mode proxy. Server intranet dengan akses ke Internet dapat dikonfigurasi sebagai server proxy maju.
Implementasi
Logtail bertukar data dengan Simple Log Service, termasuk data kontrol, data layanan, dan data pemantauan. Data kontrol mencakup informasi terkait pengiriman konfigurasi Logtail dan autentikasi. Secara default, data layanan dan data pemantauan ditransmisikan melalui HTTP, tetapi HTTPS juga didukung. Oleh karena itu, server proxy harus mendukung baik HTTP maupun HTTPS.
NGINX adalah server proxy HTTP sumber terbuka berperforma tinggi. Secara default, NGINX mendukung HTTP tetapi tidak mendukung HTTPS karena alasan terkait autentikasi. Untuk mengaktifkan dukungan HTTPS pada NGINX, Anda harus menginstal patch HTTPS.
Langkah 1: Konfigurasikan server proxy
Berikut adalah langkah-langkah untuk menggunakan NGINX mengonfigurasi server dengan akses ke Internet di intranet perusahaan sebagai server proxy maju:
Masuk ke server yang ingin dikonfigurasi sebagai server proxy maju.
Unduh paket instalasi NGINX dan patch HTTPS.
Unduh patch HTTPS.
git clone https://github.com/chobits/ngx_http_proxy_connect_module.gitUnduh paket instalasi NGINX dan ekstrak paket tersebut.
${version} menentukan versi NGINX. Ganti ${version} dengan nilai sebenarnya. Untuk informasi lebih lanjut tentang versi terbaru NGINX, lihat nginx: download.
wget http://nginx.org/download/nginx-${version}.tar.gz tar -xzvf nginx-${version}.tar.gz cd nginx-${version}/
Tambahkan patch HTTPS ke NGINX.
${patchfile} menentukan jalur ke file patch HTTPS. Tentukan file patch berdasarkan versi NGINX. Untuk informasi lebih lanjut, lihat Pilih patch.
patch -p1 < ../ngx_http_proxy_connect_module/patch/${patchfile}.patchInstal NGINX.
./configure --add-module=../ngx_http_proxy_connect_module make && make installTambahkan pengaturan berikut ke file nginx.conf.
Ganti ${Listening port of the proxy server} dan ${DNS server address} dengan nilai sebenarnya.
server { listen ${Listening port of the proxy server}; resolver ${DNS server address}; # Tentukan proxy untuk permintaan non-HTTP. proxy_connect; proxy_connect_allow 443; proxy_connect_connect_timeout 10s; proxy_connect_data_timeout 10s; # Tentukan proxy untuk permintaan HTTP. location / { proxy_pass http://$host; proxy_set_header Host $host; } }Mulai server NGINX.
Langkah 2: Konfigurasikan variabel lingkungan terkait proxy
Sistem operasi Linux
Tabel berikut menjelaskan solusi yang dapat digunakan untuk mengonfigurasi variabel lingkungan terkait proxy.
Solusi | Keuntungan | Kerugian | Skenario |
Solusi 1 | Konfigurasi hanya berlaku untuk proses Logtail. Dampaknya berada dalam batas yang dapat diterima. | Metode konfigurasi relatif kompleks. | Cocok untuk pengguna server yang tidak terbiasa dengan jaringan server secara keseluruhan. |
Solusi 2 | Metode konfigurasi sederhana. | Konfigurasi berlaku untuk seluruh server. Dampaknya signifikan. | Cocok untuk administrator server yang terbiasa dengan status permintaan semua proses di server. |
Solusi 1
Masuk ke server di intranet perusahaan.
Buka file
/etc/init.d/ilogtaild, tambahkan variabel lingkungan berikut ke fungsistart(), lalu simpan file tersebut.Untuk informasi lebih lanjut tentang variabel lingkungan, lihat Lampiran: Variabel Lingkungan Terkait Proxy.
start() { cd $BIN_DIR umask $UMASK # Tambahkan variabel lingkungan terkait proxy sebelum $BIN_DIR/ilogtail. # Dalam contoh ini, variabel lingkungan ALL_PROXY ditambahkan. Alamat IP server proxy adalah 192.168.1.0, dan port mendengarkan adalah 9000. # Server di intranet perusahaan berkomunikasi dengan server proxy melalui HTTP. ALL_PROXY=http://192.168.1.0:9000 $BIN_DIR/ilogtail RETVAL=$? }Jalankan perintah berikut untuk memulai ulang Logtail:
/etc/init.d/ilogtaild restartUlangi Langkah 1 hingga 3 untuk mengonfigurasi variabel lingkungan terkait proxy untuk server lainnya di intranet perusahaan.
Solusi 2
Gunakan solusi ini jika ingin meneruskan semua permintaan server di intranet perusahaan menggunakan server proxy. Solusi ini juga dapat digunakan jika hanya ingin meneruskan permintaan dari proses Logtail menggunakan server proxy. Pastikan Anda memahami alamat tujuan permintaan dari proses lain di server. Untuk skenario lain, gunakan Solusi 1.
Masuk ke server di intranet perusahaan.
Jalankan perintah
exportuntuk menambahkan variabel lingkungan terkait proxy ke file startup~/.bash_profileatau/etc/profile.Untuk informasi lebih lanjut tentang variabel lingkungan, lihat Lampiran: Variabel Lingkungan Terkait Proxy.
Jalankan perintah berikut untuk membuat variabel lingkungan berlaku.
Dalam contoh ini, file startup
~/.bash_profiledigunakan.source ~/.bash_profileJalankan perintah berikut untuk memulai ulang Logtail:
/etc/init.d/ilogtaild restartUlangi Langkah 1 hingga 4 untuk mengonfigurasi variabel lingkungan terkait proxy untuk server lainnya di intranet perusahaan.
Sistem operasi Windows
Buka jendela Run, masukkan regedit di bidang Open, lalu klik OK.
Di jendela Registry Editor, cari Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\LogtailDaemon dan klik LogtailDaemon.
Klik kanan LogtailDaemon dan pilih . Kemudian, tentukan Environment untuk nama Nilai.
Klik dua kali Environment. Di kotak dialog Edit String, masukkan variabel lingkungan terkait proxy di bidang Value data dan klik OK.
Dalam contoh ini, variabel lingkungan ALL_PROXY ditambahkan. Alamat IP server proxy adalah 192.168.1.0, dan port mendengarkan adalah 9000. Server di intranet perusahaan berkomunikasi dengan server proxy melalui HTTP. Untuk informasi lebih lanjut tentang variabel lingkungan, lihat Lampiran: Variabel Lingkungan Terkait Proxy.

Buka jendela Run, ketik services.msc di kolom Open, lalu klik OK.
Di jendela Services, klik layanan Logtail yang diinginkan.
Untuk Logtail V0.x.x.x, klik layanan LogtailWorker.
Untuk Logtail V1.0.0.0 atau yang lebih baru, klik layanan LogtailDaemon.
Klik kanan layanan dan klik Restart.
Langkah 3: Uji konektivitas jaringan
Masuk ke server di intranet perusahaan.
Jalankan perintah berikut.
Dalam perintah berikut, ${region} menentukan wilayah proyek yang digunakan, dan ${project_name} menentukan nama proyek. Ganti variabel dengan nilai sebenarnya.
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 informasi serupa dengan kode berikut dikembalikan, jaringan terhubung:
{"Error":{"Code":"OLSInvalidMethod","Message":"The script name is invalid : /","RequestId":"62591BC7C08B7BD4AA99FCD4"}}Ulangi Langkah 1 dan 2 untuk menguji konektivitas jaringan server lainnya di intranet perusahaan.
Lampiran: Variabel lingkungan terkait proxy
Bagian ini menjelaskan variabel lingkungan yang dapat dikonfigurasi untuk server intranet.
Variabel lingkungan dapat berupa huruf besar atau huruf kecil. Variabel lingkungan huruf besar memiliki prioritas.
Untuk mengirim data HTTP dan HTTPS ke server proxy yang sama, tambahkan variabel lingkungan
ALL_PROXY.ALL_PROXY: ${Alamat server proxy maju}Untuk mengirim data HTTP dan HTTPS ke server proxy yang berbeda, tambahkan variabel lingkungan
HTTP_PROXYdanHTTPS_PROXY.HTTP_PROXY: ${Alamat server proxy HTTP} HTTPS_PROXY: ${Alamat server proxy HTTPS}Alamat server proxy harus dalam format
[Protokol://[Nama Pengguna:Kata Sandi@]]Alamat[:Port].Protokol: protokol komunikasi yang digunakan antara server saat ini di intranet perusahaan dan server proxy. Nilai valid: http, https, dan socks5. Bidang ini opsional. Jika tidak dikonfigurasi, http digunakan secara default.
Nama Pengguna dan Kata Sandi: nama pengguna dan kata sandi yang digunakan untuk masuk ke server proxy. Bidang ini opsional.
Alamat: alamat IP server proxy. Bidang ini wajib.
Port: port mendengarkan server proxy yang dikonfigurasi di file nginx.conf. Bidang ini opsional. Untuk informasi lebih lanjut, lihat Langkah 5 di bagian "Konfigurasikan server proxy". Jika tidak dikonfigurasi, port 80 digunakan secara default.
Jika tidak ingin mengirim data tertentu dari server di intranet perusahaan ke server proxy, Anda dapat menambahkan variabel lingkungan NO_PROXY. Variabel lingkungan NO_PROXY menentukan alamat ke mana data dapat dikirim tanpa menggunakan server proxy. Pisahkan beberapa alamat dengan koma (,). Format yang didukung:
Alamat IP.
Nama domain. Nama domain dapat dimulai dengan titik (.). Nama domain dan subdomainnya dapat cocok.
Asterisk (*). Jika menentukan asterisk, server proxy dinonaktifkan.