Anda dapat mengonfigurasi modul stub_status bawaan NGINX untuk mengaktifkan halaman status khusus yang menampilkan metrik utama server NGINX secara real-time. Metrik ini mencakup Koneksi Aktif, Membaca, Menulis, dan Menunggu. Anda dapat menggunakan Plugin Logtail untuk mengumpulkan log pemantauan NGINX. Setelah log terkumpul, Anda dapat menanyakan dan menganalisisnya guna memantau kluster NGINX secara berkelanjutan.
Prasyarat
Logtail telah diinstal di server Anda. Untuk informasi lebih lanjut, lihat Instal Logtail pada Server Linux atau Instal Logtail pada Server Windows.
Untuk Server Linux, instal Logtail V0.16.0 atau yang lebih baru. Untuk Server Windows, instal Logtail V1.0.0.8 atau yang lebih baru.
Langkah 1: Konfigurasikan modul stub_status
Dalam topik ini, Linux digunakan sebagai contoh untuk menjelaskan prosedur konfigurasi.
Jalankan perintah berikut untuk menginstal dan memulai NGINX:
sudo yum install nginx sudo systemctl start nginxJalankan perintah berikut untuk memeriksa apakah modul stub_status NGINX didukung. Untuk informasi lebih lanjut, lihat Modul ngx_http_stub_status_module.
nginx -V 2>&1 | grep -o with-http_stub_status_module with-http_stub_status_moduleJika informasi berikut dikembalikan, modul tersebut didukung:
with-http_stub_status_moduleKonfigurasikan modul stub_status di server Anda.
Jalankan perintah berikut untuk membuka file
/etc/nginx/nginx.conf:vim /etc/nginx/nginx.confTekan tombol
idi keyboard Anda untuk masuk ke mode edit.Tambahkan kode berikut ke bagian
server {..}. Untuk informasi lebih lanjut tentangnginx_status, lihat Aktifkan Halaman Status Nginx.location /nginx_status { stub_status on; # Aktifkan modul stub_status. access_log off; allow ${Server IP address}; deny all; # Tolak permintaan akses dari semua alamat IP lainnya ke halaman status. }Tekan tombol
Escdi keyboard untuk keluar dari mode edit. Lalu, masukkan:wquntuk menyimpan dan menutup file.
Jalankan perintah berikut di server Anda untuk memverifikasi hasil konfigurasi:
curl http://${Server IP address}/nginx_statusJika output berikut dikembalikan, konfigurasi berhasil:
Active connections: 1 server accepts handled requests 2507455 2507455 2512972 Reading: 0 Writing: 1 Waiting: 0
Langkah 2: Kumpulkan log pemantauan NGINX
Masuk ke konsol Simple Log Service.
Di sisi kanan halaman yang muncul, klik kartu Quick Data Import.

Klik Custom Data Plug-in.
Pilih proyek dan penyimpanan log. Lalu, klik Next.
Buat grup mesin.
Jika grup mesin tersedia, klik Use Existing Machine Groups.
Jika tidak ada grup mesin yang tersedia, lakukan langkah-langkah berikut untuk membuat grup mesin. Dalam contoh ini, Instance ECS digunakan.
Pada tab ECS Instances, pilih Pilih Instance Secara Manual. Lalu, pilih instance ECS yang ingin Anda gunakan dan klik Create.
Untuk informasi lebih lanjut, lihat Install Logtail on ECS instances.
PentingJika Anda ingin mengumpulkan log dari instance ECS yang dimiliki oleh akun Alibaba Cloud yang berbeda dari Layanan Log, server di pusat data, atau server dari penyedia layanan cloud pihak ketiga, Anda harus menginstal Logtail secara manual. Untuk informasi lebih lanjut, lihat Instal Logtail pada Server Linux atau Instal Logtail pada Server Windows.
Setelah Anda menginstal Logtail secara manual, Anda harus mengonfigurasi pengenal pengguna untuk server tersebut. Untuk informasi lebih lanjut, lihat Konfigurasikan Pengenal Pengguna.
Setelah Logtail diinstal, klik Complete Installation.
Pada langkah Create Machine Group, konfigurasikan parameter Name dan klik Next.
Layanan Log memungkinkan Anda membuat grup mesin berbasis alamat IP dan grup mesin berbasis pengenal kustom. Untuk informasi lebih lanjut, lihat Buat Grup Mesin Berbasis Alamat IP dan Buat Grup Mesin Berbasis Pengenal Kustom.
Pastikan grup mesin ditampilkan di bagian Applied Server Groups dan klik Next.
PentingJika Anda menerapkan grup mesin segera setelah membuat grup mesin, status detak jantung grup mesin mungkin FAIL. Masalah ini terjadi karena grup mesin belum terhubung ke Simple Log Service. Untuk menyelesaikan masalah ini, Anda dapat mengklik Automatic Retry. Jika masalah tetap ada, lihat Apa yang harus saya lakukan jika tidak ada koneksi detak jantung yang terdeteksi di Logtail?
Pada langkah Configure Data Source, konfigurasikan Configuration Name dan Plug-in Configuration. Lalu, klik Next.
{ "inputs": [ { "type": "metric_http", "detail": { "IntervalMs": 60000, "Addresses": [ "http://${Server IP address}/nginx_status", "http://${Server IP address}/nginx_status", "http://${Server IP address}/nginx_status" ], "IncludeBody": true } } ], "processors": [ { "type": "processor_regex", "detail": { "SourceKey": "content", "Regex": "Active connections: (\\d+)\\s+server accepts handled requests\\s+(\\d+)\\s+(\\d+)\\s+(\\d+)\\s+Reading: (\\d+) Writing: (\\d+) Waiting: (\\d+)[\\s\\S]*", "Keys": [ "connection", "accepts", "handled", "requests", "reading", "writing", "waiting" ], "FullMatch": true, "NoKeyError": true, "NoMatchError": true, "KeepSource": false } } ] }Tabel berikut menjelaskan parameter utama.
Parameter
Tipe
Wajib
Deskripsi
type
string
Ya
Tipe sumber data. Atur nilainya menjadi metric_http.
IntervalMs
int
Ya
Interval antara dua permintaan berturut-turut. Unit: milidetik.
Addresses
Array
Ya
URL yang ingin Anda pantau.
IncludeBody
boolean
Tidak
Menentukan apakah akan mengumpulkan informasi body permintaan. Nilai default: false. Jika Anda mengatur parameter ini ke true, informasi body akan dikumpulkan dan disimpan di bidang content.
Anda dapat melihat log yang dikumpulkan 1 menit setelah konfigurasi Logtail dibuat. Contoh berikut menunjukkan log yang dikumpulkan. Secara default, Simple Log Service menghasilkan dasbor nginx_status untuk menampilkan hasil kueri dan analisis pada log yang dikumpulkan.
_address_:http://10.10.XX.XX/nginx_status
_http_response_code_:200
_method_:GET
_response_time_ms_:1.83716261897
_result_:success
accepts:33591200
connection:450
handled:33599550
reading:626
requests:39149290
waiting:68
writing:145 Langkah 3: Kueri dan analisis log
Masuk ke konsol Simple Log Service.
Di bagian Proyek, klik yang ingin Anda kelola.

Pada tab , klik logstore yang ingin Anda kelola.

Masukkan pernyataan kueri di kotak pencarian, klik Last 15 Minutes, lalu tentukan rentang waktu kueri.
Untuk informasi lebih lanjut, lihat Langkah 1: Buat indeks.
Kueri log
Kueri informasi tentang alamat IP.
_address_ : 10.10.0.0Kueri permintaan dengan waktu respons melebihi 100 milidetik.
_response_time_ms_ > 100Kueri permintaan yang tidak mengembalikan kode status HTTP 200.
not _http_response_code_ : 200
Analisis log
Dapatkan jumlah rata-rata koneksi menunggu, koneksi membaca, koneksi menulis, dan koneksi pada interval 5 menit.
*| select avg(waiting) as waiting, avg(reading) as reading, avg(writing) as writing, avg(connection) as connection, from_unixtime( __time__ - __time__ % 300) as time group by __time__ - __time__ % 300 order by time limit 1440Dapatkan 10 server teratas yang memiliki jumlah koneksi menunggu terbesar.
*| select max(waiting) as max_waiting, _address_, from_unixtime(max(__time__)) as time group by address order by max_waiting desc limit 10Dapatkan jumlah alamat IP.
* | select count(distinct(_address_)) as totalDapatkan jumlah alamat IP dari mana permintaan gagal dilakukan.
not _result_ : success | select count(distinct(_address_))Dapatkan alamat IP dari mana 10 permintaan gagal terbaru dilakukan.
not _result_ : success | select _address_ as address, from_unixtime(__time__) as time order by __time__ desc limit 10Dapatkan jumlah total permintaan pada interval 5 menit.
*| select avg(handled) * count(distinct(_address_)) as total_handled, avg(requests) * count(distinct(address)) as total_requests, from_unixtime( __time__ - __time__ % 300) as time group by __time__ - __time__ % 300 order by time limit 1440Dapatkan latensi permintaan rata-rata pada interval 5 menit.
*| select avg(_response_time_ms_) as avg_delay, from_unixtime( __time__ - __time__ % 300) as time group by __time__ - __time__ % 300 order by time limit 1440Dapatkan jumlah permintaan sukses dan gagal.
not _http_response_code_ : 200 | select count(1)_http_response_code_ : 200 | select count(1)