Panduan Linux

Cara Memantau Log NGINX dengan ELK Stack

Hai, teman-teman! Kali ini kita bakal bahas gimana caranya memantau log NGINX pake ELK Stack. Buat yang belum tau, ELK Stack itu singkatan dari Elasticsearch, Logstash, dan Kibana. Tiga serangkai ini bakal bantu kita ngumpulin, ngolah, dan nampilin data log dari NGINX dengan keren abis. Yuk, simak langkah-langkahnya!

1. Instalasi ELK Stack

Pertama-tama, pastiin dulu kalian udah punya ELK Stack terinstal di server kalian. Kalo belum, kalian bisa ikutin panduan instalasinya di sini. Jangan lupa, pastiin versi yang kalian pake kompatibel satu sama lain ya!

2. Konfigurasi NGINX untuk Logging

Sebelum kita ngumpulin log, pastiin dulu NGINX udah dikonfigurasi buat nge-log dengan format yang bener. Biasanya, NGINX udah punya file log di /var/log/nginx/access.log dan /var/log/nginx/error.log. Tapi, kalo kalian pengen format lognya lebih spesifik, kalian bisa ubah konfigurasi di /etc/nginx/nginx.conf.

Contoh konfigurasi log format JSON:

http {
    log_format json_combined escape=json
    '{'
        '"time_local":"$time_local",'
        '"remote_addr":"$remote_addr",'
        '"remote_user":"$remote_user",'
        '"request":"$request",'
        '"status": "$status",'
        '"body_bytes_sent":"$body_bytes_sent",'
        '"http_referrer":"$http_referer",'
        '"http_user_agent":"$http_user_agent",'
        '"http_x_forwarded_for":"$http_x_forwarded_for",'
        '"request_time":"$request_time"'
    '}';

    access_log /var/log/nginx/access.log json_combined;
}

Dengan format JSON, nanti Logstash bakal lebih gampang ngolah datanya.

3. Konfigurasi Logstash

Selanjutnya, kita perlu ngatur Logstash buat ngumpulin log dari NGINX. Buat file konfigurasi baru di /etc/logstash/conf.d/nginx.conf dengan isi kaya gini:

input {
  file {
    path => "/var/log/nginx/access.log"
    start_position => "beginning"
    sincedb_path => "/dev/null"
    codec => "json"
  }
}

filter {
  date {
    match => [ "time_local", "dd/MMM/yyyy:HH:mm:ss Z" ]
    target => "@timestamp"
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "nginx-access-%{+YYYY.MM.dd}"
  }
}

Penjelasan:

4. Jalankan Logstash

Setelah konfigurasi selesai, jalankan Logstash dengan perintah:

sudo systemctl start logstash

Pastiin Logstash jalan dengan cek statusnya:

sudo systemctl status logstash

5. Konfigurasi Kibana

Nah, sekarang datanya udah masuk ke Elasticsearch. Langkah selanjutnya adalah nampilin data itu di Kibana. Buka Kibana di browser kalian (biasanya di http://localhost:5601), lalu ikutin langkah-langkah berikut:

  1. Buat Index Pattern:

    • Pilih “Management” > “Stack Management” > “Index Patterns” > “Create index pattern”.
    • Masukkan pattern nginx-access-* dan klik “Next step”.
    • Pilih @timestamp sebagai “Time field” dan klik “Create index pattern”.
  2. Eksplorasi Data:

    • Pilih “Discover” di sidebar kiri.
    • Pilih index pattern nginx-access-* yang udah kita buat tadi.
    • Kalian bakal liat data log NGINX yang udah diolah sama Logstash.

6. Buat Visualisasi dan Dashboard

Buat yang pengen lebih keren lagi, kalian bisa bikin visualisasi dan dashboard di Kibana. Caranya:

  1. Buat Visualisasi:

    • Pilih “Visualize” > “Create visualization”.
    • Pilih tipe visualisasi yang kalian mau (misalnya, pie chart, bar chart, dll).
    • Atur parameter sesuai kebutuhan, misalnya nampilin jumlah request per status code.
  2. Buat Dashboard:

    • Pilih “Dashboard” > “Create dashboard”.
    • Tambahkan visualisasi yang udah kalian buat tadi ke dashboard.
    • Atur tata letaknya sesuai selera.

7. Monitor dan Alarm

Kalo kalian pengen dapetin notifikasi kalo ada error atau traffic yang nggak biasa, kalian bisa pake fitur “Alerting” di Kibana. Caranya:

  1. Buat Rule:
    • Pilih “Stack Management” > “Alerts and Insights” > “Rules”.
    • Klik “Create rule”.
    • Pilih tipe rule yang sesuai, misalnya “Log threshold”.
    • Atur kondisi dan action (misalnya, kirim email kalo ada error 500 lebih dari 10 kali dalam 5 menit).

Kesimpulan

Nah, gitu aja sih cara memantau log NGINX pake ELK Stack. Dengan ELK Stack, kalian bisa ngumpulin, ngolah, dan nampilin data log dengan lebih gampang dan keren. Selamat mencoba, dan semoga bermanfaat!

#Nginx #Tutorial