Bab 11: Logging dan Monitoring Nginx – Panduan Lengkap

Bab 11: Logging dan Monitoring Nginx – Panduan Lengkap

Logging dan monitoring sangat penting untuk mengetahui performa server, menganalisis traffic, mendeteksi error, dan debugging konfigurasi.

Nginx menyediakan mekanisme logging fleksibel dan dapat diintegrasikan dengan berbagai tools monitoring.


1. Access Log Format

Access log mencatat setiap request yang diterima server. Lokasi default:

/var/log/nginx/access.log

1.1 Konfigurasi dasar

http {
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';

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

Penjelasan:

  • $remote_addr → IP client
  • $remote_user → user jika ada basic auth
  • $time_local → waktu request
  • $request → metode dan path request
  • $status → kode HTTP
  • $body_bytes_sent → ukuran respons
  • $http_referer → halaman asal request
  • $http_user_agent → user agent browser
  • $http_x_forwarded_for → IP asli jika menggunakan reverse proxy

1.2 Tips

  • Gunakan format custom untuk kebutuhan analisis khusus
  • Rotasi log dengan logrotate untuk menghemat disk space

2. Error Log Level

Error log mencatat kesalahan server. Lokasi default:

/var/log/nginx/error.log

2.1 Level log

error_log /var/log/nginx/error.log warn;

Level yang tersedia:

  • debug → logging detail (hanya untuk troubleshooting)
  • info → informasi normal
  • notice → peringatan ringan
  • warn → peringatan penting
  • error → kesalahan server
  • crit → kesalahan kritis
  • alert → harus segera diperbaiki
  • emerg → emergency, server tidak bisa lanjut

2.2 Tips

  • Gunakan warn atau error untuk produksi
  • Gunakan debug saat debugging konfigurasi

3. Monitoring dengan Tools

Monitoring membantu memantau performa, traffic, dan kesehatan server secara real-time.

3.1 Ngxtop

  • Command line tool untuk analisis log Nginx
sudo pip install ngxtop
ngxtop -f /var/log/nginx/access.log
  • Menampilkan request per endpoint, status code, IP terbanyak

3.2 Grafana + Prometheus

  • Prometheus mengumpulkan metrik dari Nginx exporter
  • Grafana menampilkan metrik dalam dashboard visual
  • Metrik umum: request rate, response time, error rate, connection status

3.3 Tips Monitoring

  • Pantau CPU, memory, dan koneksi aktif
  • Gunakan alert jika error rate meningkat atau backend tidak responsif
  • Integrasikan log dengan ELK Stack untuk analisis lebih lanjut

4. Debugging Konfigurasi

4.1 Test konfigurasi Nginx

sudo nginx -t
  • Memeriksa syntax error
  • Menampilkan lokasi kesalahan jika ada

4.2 Reload vs Restart

  • Reload: sudo systemctl reload nginx → memuat ulang konfigurasi tanpa memutus koneksi
  • Restart: sudo systemctl restart nginx → menghentikan dan memulai ulang server

4.3 Debug Log

Aktifkan sementara debug untuk memeriksa request:

error_log /var/log/nginx/error.log debug;
  • Menampilkan detail internal Nginx
  • Hanya untuk troubleshooting, jangan di produksi karena menghasilkan banyak log

5. Contoh Konfigurasi Logging dan Monitoring Lengkap

http {
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log main;
    error_log /var/log/nginx/error.log warn;

    server {
        listen 80;
        server_name example.com;

        root /var/www/html/example;
        index index.html;

        location / {
            try_files $uri $uri/ =404;
        }
    }
}
  • Access log untuk traffic analisis
  • Error log dengan level warn untuk produksi
  • Bisa diintegrasikan dengan ngxtop, Grafana, atau Prometheus untuk monitoring real-time

Kesimpulan

Dengan konfigurasi logging dan monitoring yang baik, Nginx memungkinkan:

  1. Melacak semua request dan error server
  2. Memeriksa performa server secara real-time
  3. Debugging konfigurasi dengan cepat dan aman
  4. Menggunakan tools monitoring untuk analisis trafik dan kesehatan server

Menggabungkan access log, error log, dan monitoring tools membantu menjaga server tetap stabil, cepat, dan aman.