Cara Melihat Status HTTP dari Log Server

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.