Apa yang sebenarnya dilakukan engineer saat menerima eskalasi
- Waktu, untuk memotong log ke rentang beberapa menit saja.
- Identitas objek, misalnya domain, URL, username akun, IP pengunjung, alamat email pengirim dan penerima, atau Message-ID email.
- Lapisan yang gagal, untuk menentukan log mana yang perlu dibuka.
Waktu kejadian, lengkap dengan zona waktunya
+0800. Tapi tidak semua log begitu. Ada log yang hanya menulis jam lokal tanpa offset, dan ada server yang jamnya diset ke UTC.
Di Indonesia ini jadi masalah nyata karena ada tiga zona waktu: WIB (UTC+7), WITA (UTC+8), dan WIT (UTC+9). Kalau customer di Bali bilang "jam 9 pagi", server diset UTC, dan engineer membaca dengan asumsi WIB, pencarian bisa meleset satu jam penuh. Hasilnya, engineer melihat log yang normal-normal saja lalu menyimpulkan tidak ada masalah.
Jadi tulis waktu secara absolut dan sertakan zonanya, misalnya "23 Oktober, sekitar 09.40-09.55 WITA". Hindari kata seperti "tadi siang" atau "barusan". Tambahkan juga dua hal lain: apakah masalahnya masih terjadi sekarang, dan kalau sifatnya hilang-timbul, kapan pertama dan terakhir kali terlihat. Masalah yang masih berlangsung bisa diamati langsung, sedangkan masalah yang sudah lewat hanya bisa direkonstruksi dari log.
Kalau kamu punya akses shell, cocokkan jam server dengan jam kamu dengan perintah berikut.
BASH
# Jam server dalam zona lokalnya dan dalam UTC
date
date -u
# Resolusi DNS dari sisi kamu, untuk dibandingkan dengan IP server
dig +short example.com A
# Timing tiap tahap request (nilai kumulatif sejak request dimulai)
curl -o /dev/null -s -w 'dns: %{time_namelookup}
connect: %{time_connect}
tls: %{time_appconnect}
ttfb: %{time_starttransfer}
total: %{time_total}
code: %{http_code}
' https://example.com/example.com dengan domain yang bermasalah.
Di lapisan mana request itu gagal
- Error DNS seperti NXDOMAIN berarti request bahkan belum sampai ke server. Yang perlu dicek adalah zona DNS atau nameserver, bukan web server.
- Connection timed out biasanya berarti paket tidak mendapat jawaban. Penyebabnya bisa firewall, routing, atau server yang sedang down.
- Connection refused berarti paket sampai ke host tapi tidak ada proses yang listen di port itu, atau koneksinya ditolak secara aktif.
- Error sertifikat menunjuk ke tahap TLS, misalnya sertifikat kedaluwarsa atau tidak cocok dengan nama domain.
- Kode 5xx berarti web server sudah menerima request, dan masalahnya ada di web server atau di belakangnya. Pada setup reverse proxy, 502 biasanya berarti proxy menerima respons yang tidak valid atau tidak menerima respons sama sekali dari upstream, sedangkan 504 berarti upstream terlalu lama menjawab.
curl -w di atas membantu untuk masalah "situs lambat". Karena nilainya kumulatif, durasi tiap tahap adalah selisih dengan tahap sebelumnya.
TEXT
contoh format output (angka ilustratif):
dns: 0.020
connect: 0.050
tls: 0.150
ttfb: 4.800
total: 4.900
code: 200dig dengan IP server yang seharusnya. Kalau IP-nya berbeda, mungkin request customer mendarat di server lama, cache DNS belum habis, atau ada entri di file hosts lokal. Dalam kasus seperti itu, log di server yang benar memang tidak akan mencatat apa-apa.
Siapa yang kena, dan bisakah diulang
Apa yang sudah dicoba, dan apa yang berubah sebelumnya
TEXT
Gejala : teks error persis / kode HTTP / bounce lengkap
Objek : domain, URL, akun, IP pengunjung, alamat email, Message-ID
Waktu : mulai dan terakhir terlihat, dengan zona waktu (WIB/WITA/WIT/UTC)
Status : masih terjadi / sudah hilang / hilang-timbul
Cakupan : semua pengunjung / satu jaringan / satu URL / satu akun
Reproduksi : langkah, hasil yang diharapkan vs hasil aktual
Perubahan : apa yang berubah sebelum masalah muncul
Sudah dicoba: tindakan, jam, dan hasilnya
Data teknis : output dig, curl, atau log yang sudah diambil