Melihat status HTTP dari log server adalah langkah esensial untuk mendiagnosis masalah akses web, memantau lalu lintas, dan melacak error seperti 404, 500, atau 301. Status HTTP ini tercatat secara real-time di dalam file log akses (access log) yang dikelola oleh web server seperti Nginx atau Apache.
Secara default, file log akses pada sistem berbasis Linux/Unix terletak di direktori /var/log/nginx/ untuk Nginx atau /var/log/apache2/ untuk Apache. Dengan menggunakan utilitas baris perintah (command line) seperti tail, grep, awk, atau sed, Anda dapat memfilter dan membaca status HTTP tersebut secara spesifik.
Lokasi Default Log Akses Web Server
Sebelum memeriksa status HTTP, pastikan Anda mengetahui jalur direktori tempat file log disimpan pada server Anda. Tabel berikut merinci lokasi umum file log berdasarkan jenis web server yang digunakan.
| Web Server | Lokasi Access Log | Lokasi Error Log |
|---|---|---|
| Nginx (Ubuntu/Debian) | /var/log/nginx/access.log | /var/log/nginx/error.log |
| Nginx (CentOS/RHEL) | /var/log/nginx/access.log | /var/log/nginx/error.log |
| Apache (Ubuntu/Debian) | /var/log/apache2/access.log | /var/log/apache2/error.log |
| Apache (CentOS/RHEL) | /var/log/httpd/access_log | /var/log/httpd/error_log |
Perintah Dasar untuk Membaca Log
Untuk melihat aktivitas log secara langsung (real-time) saat ada permintaan masuk ke server, gunakan perintah tail dengan opsi -f.
tail -f /var/log/nginx/access.log
Perintah di atas akan menampilkan baris-baris log terbaru yang masuk. Format standar access log umumnya memuat alamat IP klien, waktu, metode HTTP (GET/POST), jalur URL, protokol, kode status HTTP, dan ukuran byte respons.
Cara Filter Kode Status HTTP Tertentu
Seringkali Anda hanya ingin melihat status HTTP tertentu, misalnya error 500 (Internal Server Error) atau 404 (Not Found). Anda dapat menggabungkan perintah grep atau awk untuk menyaring data tersebut.
1. Menyaring Status 404 Menggunakan Grep
Contoh berikut menyaring baris log yang memuat kode status " 404 " (disertai spasi untuk menghindari kecocokan angka lain pada URL atau IP):
grep " 404 " /var/log/nginx/access.log
2. Menganalisis Status Menggunakan AWK
Format log standar menempatkan kode status HTTP pada kolom tertentu (biasanya kolom ke-9 pada kombinasi log Nginx/Apache default). Anda dapat mengekstrak kolom tersebut dan menghitung frekuensinya untuk melihat status apa saja yang mendominasi server.
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
Penjelasan perintah di atas:
awk '{print $9}': Mengambil kolom ke-9 dari setiap baris log (kode status HTTP).sort: Mengurutkan kode status agar data yang sama mengelompok.uniq -c: Menghitung jumlah kemunculan (frekuensi) masing-masing kode status.sort -nr: Mengurutkan hasil dari jumlah frekuensi terbesar ke terkecil.
Daftar Kategori Status HTTP dalam Log
Saat membaca log, Anda akan menjumpai berbagai angka tiga digit yang merepresentasikan status respons server:
| Rentang Status | Kategori | Arti Umum di Log Server |
|---|---|---|
| 2xx | Success | Permintaan berhasil diproses (contoh: 200 OK). |
| 3xx | Redirection | Pengalihan URL (contoh: 301 Moved Permanently, 302 Found). |
| 4xx | Client Error | Kesalahan dari sisi klien/pengguna (contoh: 403 Forbidden, 404 Not Found). |
| 5xx | Server Error | Kesalahan pada server (contoh: 500 Internal Server Error, 502 Bad Gateway). |
Troubleshooting Lapangan
Jika Anda menemukan lonjakan status 502 Bad Gateway atau 504 Gateway Time-out di dalam log, langkah pertama yang harus dilakukan adalah memeriksa log error aplikasi backend (seperti PHP-FPM atau Node.js) alih-alih hanya berfokus pada access log. Gunakan perintah tail -n 100 /var/log/nginx/error.log untuk melihat detail kegagalan koneksi pada tingkat server.