全部产品
Search
文档中心

Simple Log Service:Kumpulkan, kueri, dan analisis log pemantauan NGINX

更新时间:Jul 06, 2025

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.

Catatan

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

Catatan

Dalam topik ini, Linux digunakan sebagai contoh untuk menjelaskan prosedur konfigurasi.

  1. Jalankan perintah berikut untuk menginstal dan memulai NGINX:

    sudo yum install nginx
    sudo systemctl start nginx
  2. Jalankan 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_module 

    Jika informasi berikut dikembalikan, modul tersebut didukung:

    with-http_stub_status_module
  3. Konfigurasikan modul stub_status di server Anda.

    1. Jalankan perintah berikut untuk membuka file /etc/nginx/nginx.conf:

      vim /etc/nginx/nginx.conf
    2. Tekan tombol i di keyboard Anda untuk masuk ke mode edit.

    3. Tambahkan kode berikut ke bagian server {..}. Untuk informasi lebih lanjut tentang nginx_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.
       }
    4. Tekan tombol Esc di keyboard untuk keluar dari mode edit. Lalu, masukkan :wq untuk menyimpan dan menutup file.

  4. Jalankan perintah berikut di server Anda untuk memverifikasi hasil konfigurasi:

    curl http://${Server IP address}/nginx_status

    Jika 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

  1. Masuk ke konsol Simple Log Service.

  2. Di sisi kanan halaman yang muncul, klik kartu Quick Data Import.

    image

  3. Klik Custom Data Plug-in.

  4. Pilih proyek dan penyimpanan log. Lalu, klik Next.

  5. 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.

      1. 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.

        Penting

        Jika 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.

      2. Setelah Logtail diinstal, klik Complete Installation.

      3. 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.

  6. Pastikan grup mesin ditampilkan di bagian Applied Server Groups dan klik Next.

    Penting

    Jika 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?

  7. 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

    1. Masuk ke konsol Simple Log Service.

    2. Di bagian Proyek, klik yang ingin Anda kelola.

      image

    3. Pada tab Log Storage > Logstores, klik logstore yang ingin Anda kelola.

      image

    4. 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.0
        • Kueri permintaan dengan waktu respons melebihi 100 milidetik.

          _response_time_ms_ > 100
        • Kueri 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 1440                       
        • Dapatkan 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 10                        
        • Dapatkan jumlah alamat IP.

          * | select  count(distinct(_address_)) as total                       
        • Dapatkan 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 10                       
        • Dapatkan 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 1440                       
        • Dapatkan 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 1440                      
        • Dapatkan jumlah permintaan sukses dan gagal.

          not _http_response_code_ : 200  | select  count(1)                     
          _http_response_code_ : 200  | select  count(1)