All Products
Search
Document Center

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

Last Updated:Jun 05, 2026

Aktifkan modul stub_status Nginx untuk mengekspos metrik real-time seperti koneksi aktif serta status reading, writing, dan waiting. Selanjutnya, gunakan plug-in Logtail untuk mengumpulkan dan menganalisis log pemantauan Nginx guna pemantauan performa kluster secara berkelanjutan.

Prasyarat

Logtail telah diinstal pada server Anda. Instal Logtail (Linux) | Instal Logtail (Windows).

Catatan

Fitur ini memerlukan Logtail v0.16.0 atau yang lebih baru untuk Linux dan Logtail v1.0.0.8 atau yang lebih baru untuk Windows.

Langkah 1: Konfigurasikan modul stub_status

Catatan

Contoh ini menggunakan Linux.

  1. Instal dan restart Nginx.

    sudo yum install -y nginx
    sudo systemctl restart nginx
  2. Verifikasi bahwa Nginx mendukung modul stub_status.

    nginx -V 2>&1 | grep -o with-http_stub_status_module

    Output yang diharapkan:

    with-http_stub_status_module
  3. Konfigurasikan server Nginx.

    1. Tambahkan kode berikut ke blok server {..} dalam file konfigurasi Nginx Anda. Untuk detail mengenai nginx_status, lihat tutorial halaman status Nginx.

      location /nginx_status {
          stub_status on;    # Aktifkan modul stub_status.
          access_log   off;
          allow ${YOUR_SERVER_IP};   # Alamat IP server yang diizinkan mengakses halaman ini.
          deny all;          # Tolak akses dari semua alamat IP lain ke halaman status ini.
       }
    2. Verifikasi konfigurasi.

      nginx -t
      sudo systemctl restart nginx
      curl http://${YOUR_SERVER_IP}/nginx_status

      Output yang diharapkan jika 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. Pada halaman Data Import, klik Custom Data Plug-in.

  4. Pilih proyek dan Logstore tujuan, lalu klik Next.

  5. Buat kelompok mesin.

    • Jika Anda sudah memiliki kelompok mesin, klik Use Existing Machine Groups.

    • Jika Anda belum memiliki kelompok mesin, ikuti langkah-langkah berikut untuk membuatnya. Contoh ini menggunakan Instance ECS.

      1. Pada tab ECS Instance, pilih Instance ECS target dan klik Create.

        Untuk informasi selengkapnya, lihat Instal Logtail pada Instance ECS.

        Penting

        Jika server Anda adalah Instance ECS dari Akun Alibaba Cloud yang berbeda, server dari penyedia cloud lain, atau server di pusat data lokal Anda, Anda harus menginstal Logtail secara manual. Untuk informasi selengkapnya, lihat Instal Logtail pada server Linux atau Instal Logtail pada server Windows.

        Setelah Anda menginstal Logtail secara manual, Anda harus mengonfigurasi pengenal pengguna pada server. Untuk informasi selengkapnya, lihat Konfigurasikan pengenal pengguna.

      2. Setelah instalasi selesai, klik Complete Installation.

      3. Pada halaman Create Machine Group, masukkan Name dan klik Next.

        Layanan Log mendukung kelompok mesin berbasis alamat IP dan kelompok mesin berbasis pengenal kustom. Untuk informasi selengkapnya mengenai parameter tersebut, lihat Buat kelompok mesin berbasis alamat IP dan Buat kelompok mesin berbasis pengenal kustom.

  6. Konfirmasi bahwa kelompok mesin ditampilkan di bagian Applied Server Groups dan klik Next.

    Penting

    Jika Anda menerapkan kelompok mesin segera setelah membuatnya, status heartbeat kelompok mesin mungkin FAIL. Masalah ini terjadi karena kelompok mesin belum terhubung ke Simple Log Service. Untuk mengatasi masalah ini, Anda dapat mengklik Automatic Retry. Jika masalah tetap berlanjut, lihat Apa yang harus saya lakukan jika tidak ada koneksi heartbeat yang terdeteksi pada Logtail?

  7. Pada tab Data source settings, tempel kode berikut ke Plug-in configuration, ganti ${YOUR_SERVER_IP} dengan alamat IP server Anda, lalu klik Next.

    {
    "inputs": [
     {
          "type": "metric_http",
          "detail": {
              "IntervalMs": 60000,
              "Addresses": [
                  "http://${YOUR_SERVER_IP}/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
          }
     }
    ]
    }                                
    • inputs wajib diisi dan digunakan untuk mengonfigurasi pengaturan sumber data untuk konfigurasi Logtail.

      Penting

      Anda hanya dapat menentukan satu jenis sumber data dalam inputs.

    • processors bersifat opsional dan digunakan untuk mengonfigurasi pengaturan pemrosesan data untuk konfigurasi Logtail guna mengurai data. Anda dapat menentukan satu atau beberapa metode pemrosesan.

      Jika log Anda tidak dapat diurai hanya berdasarkan pengaturan inputs, Anda dapat mengonfigurasi processor di kolom Plug-in Configuration untuk menambahkan plugin guna pemrosesan data, seperti ekstraksi bidang, ekstraksi waktu log, masking data, dan filter log. Untuk informasi selengkapnya, lihat Plugin Logtail untuk pemrosesan data.

    Parameter utama:

    Parameter

    Tipe

    Wajib

    Deskripsi

    type

    string

    Ya

    Jenis sumber data. Tetap sebagai metric_http.

    IntervalMs

    int

    Ya

    Interval permintaan dalam milidetik.

    Addresses

    Array

    Ya

    URL yang akan dipantau.

    IncludeBody

    boolean

    Tidak

    Apakah badan permintaan dikumpulkan. Default: false. Jika true, badan disimpan di bidang content.

Log muncul sekitar satu menit setelah konfigurasi. Simple Log Service secara otomatis menghasilkan dasbor nginx_status untuk hasil kueri dan analisis. Contoh log:

_address_: http://127.0.0.1/nginx_status
_method_: GET
_result_: success
_http_response_code_: 200
_response_time_ms_: 0.418
accepts: 6
connection: 3
handled: 6
reading: 0
requests: 6
waiting: 2
writing: 1

Langkah 3: Kueri dan analisis log

  1. Masuk ke Konsol Simple Log Service.

  2. Di bagian Projects, klik proyek yang diinginkan.

    image

  3. Pada tab Log Storage > Logstores, klik logstore yang diinginkan.

    image

  4. Masukkan pernyataan kueri dan analisis, lalu klik Last 15 minutes untuk mengatur rentang waktu kueri.

    Untuk informasi selengkapnya, lihat Langkah 1: Konfigurasikan indeks.

    • Kueri log

      • Kueri alamat IP tertentu.

        _address_: 10.10.0.0
      • Kueri permintaan dengan waktu respons lebih dari 100 ms.

        _response_time_ms_ > 100
      • Kueri respons non-200.

        not _http_response_code_ : 200
    • Analisis log

      • Rata-rata nilai waiting, reading, writing, dan connection per 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                       
      • 10 server teratas berdasarkan koneksi waiting.

        *| select  max(waiting) as max_waiting, _address_, from_unixtime(max(__time__)) as time group by address order by max_waiting desc limit 10                        
      • Hitung jumlah alamat IP unik.

        * | select  count(distinct(_address_)) as total                       
      • Hitung jumlah IP unik dengan permintaan gagal.

        not _result_ : success | select  count(distinct(_address_))                        
      • 10 alamat IP terbaru dengan permintaan gagal.

        not _result_ : success | select _address_ as address, from_unixtime(__time__) as time  order by __time__ desc limit 10                       
      • Total permintaan per 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                       
      • Rata-rata latensi permintaan per 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                      
      • Hitung jumlah permintaan gagal dan berhasil.

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