Gejala yang sama belum tentu masalah yang sama
Kelompokkan berdasarkan server dan respons HTTP
BASH
# Ganti daftar domain dengan domain dari tiket yang masuk
for d in contoh1.com contoh2.net contoh3.id contoh4.com; do
ip=(dig +short A "d" | tail -n1)
code=(curl -s -o /dev/null -m 10 -w '%{http_code}' "https://d")
echo "dip $code"
done | sort -k2dig +short menampilkan hasil record A secara ringkas, dan tail -n1 mengambil baris terakhir karena kalau ada CNAME, IP-nya muncul paling bawah. curl -m 10 membatasi request sampai 10 detik, dan -w '%{http_code}' hanya mencetak kode status. Hasilnya diurutkan berdasarkan kolom IP supaya domain di server yang sama berkumpul.
TEXT
# contoh format output (IP memakai rentang dokumentasi, bukan data nyata)
contoh2.net 192.0.2.10 000
contoh4.com 192.0.2.10 000
contoh1.com 192.0.2.10 000
contoh3.id 198.51.100.25 500000, artinya tidak ada respons HTTP sama sekali (timeout, koneksi ditolak, atau gagal handshake TLS). Itu kandidat kuat satu insiden di level server atau jaringan. Domain keempat ada di server lain dan mengembalikan 500. Server-nya hidup dan menjawab, tapi aplikasinya error. Itu hampir pasti masalah terpisah, misalnya plugin, script PHP, atau database akun itu sendiri.
Kalau tim punya inventaris internal yang memetakan akun ke server, pakai itu juga. Hasil DNS hanya menunjukkan ke mana domain mengarah, bukan di server mana akun itu sebenarnya tinggal.
Singkirkan red herring sebelum menyimpulkan
dig akan mengembalikan IP edge milik CDN, bukan IP server origin. Akibatnya domain dari server berbeda bisa terlihat satu kelompok, atau domain dari server yang sama terlihat terpencar. Kalau IP yang muncul jelas bukan rentang milik kita, cek origin lewat inventaris internal, bukan lewat DNS publik.
Kedua, cache DNS dan perubahan record. Kalau pelanggan baru saja mengganti nameserver atau record A, keluhan "down" bisa datang dari resolver yang masih menyimpan record lama. Polanya biasanya hanya satu-dua domain, dan dari sisi kita domain itu terbuka normal.
Ketiga, masalah di sisi koneksi pelanggan. Kalau dari sisi kita domain mengembalikan 200 tapi pelanggan tetap tidak bisa membuka, kemungkinan ada di jaringan atau ISP mereka. Tiket seperti ini tetap ditangani, tapi tidak masuk kelompok insiden.
Keempat, tiket lama yang kebetulan baru dibalas pelanggan. Cek waktu kejadian yang mereka laporkan, bukan hanya waktu tiket dibuat atau diperbarui. Keluhan dari kemarin yang baru ditindaklanjuti hari ini bisa terlihat seperti bagian dari lonjakan sekarang.
Kelima, jadwal maintenance. Sebelum menganggap ada insiden, cek apakah ada pekerjaan terjadwal di server atau jaringan terkait. Kalau ada, yang perlu dilakukan berbeda: konfirmasi ke tim yang menjalankan maintenance, lalu beri update ke pelanggan.
Setelah red herring disingkirkan, biasanya tersisa satu atau dua kelompok besar dan beberapa tiket individual. Itu peta kerja yang jauh lebih jelas daripada antrean mentah.
Verifikasi akar masalah di server yang terdampak
BASH
uptime # load average dan sejak kapan server hidup
df -h # disk penuh sering bikin web server dan MySQL berhenti
systemctl --failed # service yang gagal (distro berbasis systemd)
journalctl -p err -b --no-pager | tail -n 50 # error sejak boot terakhirsystemctl --failed langsung menunjukkan service mana yang mati. Kalau MySQL atau proses lain mati tanpa jejak di log aplikasinya, cek apakah ia dimatikan kernel karena kehabisan memori. Caranya sudah dibahas di Membaca Log dmesg untuk Memastikan Aplikasi Dimatikan OOM Killer.
Kalau SSH tidak bisa diakses sama sekali, masalahnya kemungkinan di level node, hypervisor, atau jaringan. Di titik itu tugas support biasanya berpindah ke eskalasi. Kumpulkan daftar domain terdampak, IP, hasil cek tadi, dan waktu mulai keluhan, supaya engineer tidak perlu bertanya ulang. Daftar lengkapnya ada di Memilih Info Apa yang Wajib Ada Sebelum Eskalasi Tiket ke Tim Engineering.
Verifikasi akhirnya sederhana: setelah perbaikan, jalankan ulang loop pengecekan tadi untuk semua domain di kelompok itu. Kalau semuanya kembali 200 (atau kode normal untuk situs itu, misalnya redirect 301), insiden bisa dianggap pulih dari sisi layanan. Domain yang masih bermasalah setelah server pulih hampir pasti punya masalah sendiri dan perlu dipisahkan dari tiket insiden.
