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.
Contents
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
logrotateuntuk 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 normalnotice→ peringatan ringanwarn→ peringatan pentingerror→ kesalahan servercrit→ kesalahan kritisalert→ harus segera diperbaikiemerg→ emergency, server tidak bisa lanjut
2.2 Tips
- Gunakan
warnatauerroruntuk produksi - Gunakan
debugsaat 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
warnuntuk produksi - Bisa diintegrasikan dengan ngxtop, Grafana, atau Prometheus untuk monitoring real-time
Kesimpulan
Dengan konfigurasi logging dan monitoring yang baik, Nginx memungkinkan:
- Melacak semua request dan error server
- Memeriksa performa server secara real-time
- Debugging konfigurasi dengan cepat dan aman
- 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.