← Semua materi

Observability / Troubleshooting

Troubleshooting log yang tidak muncul di SIEM: dari sender sampai indexing

Telusuri event yang hilang secara end-to-end dengan marker unik, journal lokal, status forwarder, packet capture, listener collector, parsing, dan time range.

Tujuan latihan

Membuktikan tahap terakhir yang masih menerima sebuah test event dan menentukan apakah kegagalan berada pada generation, forwarding, transport, collector, parsing, atau indexing.

Persiapan

Host Linux berbasis systemd dengan logger dan journalctl. Pemeriksaan rsyslog, ss, atau tcpdump digunakan bila komponen tersebut tersedia dan Anda memiliki izin. Gunakan collector lab milik sendiri; jangan mengirim data sensitif.

Aplikasi / logger
Journal + forwarder
Jaringan + collector
Parser + index SIEM

Masalah

Pesan “log tidak masuk SIEM” belum menunjukkan titik kegagalan. Event mungkin tidak pernah dibuat, tersimpan lokal tetapi tidak dipilih forwarder, tertahan queue, gagal dikirim, ditolak collector, salah diparse, masuk ke index yang berbeda, atau berada di luar time range pencarian. Diagnosis yang aman mengikuti satu event dari kiri ke kanan dan berhenti pada tahap terakhir yang dapat dibuktikan.

1. Petakan pipeline dan buktikan generation lokal

Tuliskan jalur aktual sebelum menguji: aplikasi, socket atau journal lokal, rsyslog/agent, protocol dan port, collector, parser, lalu index/dataset. Buat marker unik tanpa username, token, alamat customer, atau payload sensitif. Kirim marker ke logging stack lokal dan cari kembali melalui journal. Jika marker tidak ada, masalah masih berada pada generation, socket, permission, atau layanan lokal—belum ada dasar untuk menyalahkan jaringan atau SIEM. Jika ada, catat timestamp, timezone, hostname, identifier, facility, dan priority sebagai baseline.

MARKER="cnl-siem-check-$(date -u +%Y%m%dT%H%M%SZ)-$$"
logger --tag cnl-siem-check --priority user.notice "$MARKER"
timedatectl status
journalctl --since '-5 min' --identifier cnl-siem-check --output short-iso-precise --no-pager

2. Validasi forwarder tanpa langsung me-restart

Pastikan daemon yang benar aktif dan baca error terbarunya. Pada host yang memakai rsyslog, rsyslogd -N1 memeriksa sintaks konfigurasi tanpa menjalankan instance normal; gunakan sudo hanya sesuai prosedur operasional. Status active tidak membuktikan rule memilih event. Periksa selector/ruleset, input journal, destination, protocol, port, dan pesan suspended, retry, queue, TLS, atau name-resolution failure.

systemctl status rsyslog --no-pager
journalctl -u rsyslog --since '-15 min' --priority warning --no-pager
sudo rsyslogd -N1

3. Buktikan transport dan penerimaan collector

Untuk TCP/TLS, ss dapat menunjukkan apakah koneksi ke destination terbentuk; koneksi ESTAB tetap bukan bukti event diterima aplikasi collector. Jika diizinkan, packet capture terarah membuktikan packet keluar dari sender atau tiba di collector. Contoh menggunakan TEST-NET 192.0.2.10 dan port 6514—ganti hanya dengan collector lab Anda. Pada UDP tidak ada session ESTAB, sehingga capture di kedua sisi lebih berguna. Jangan menyimpan payload produksi tanpa kebutuhan dan approval.

ss -ntp | grep ':6514'
sudo tcpdump -ni any 'host 192.0.2.10 and port 6514'
# Di collector lab:
sudo ss -lntup | grep ':6514'

4. Pisahkan parsing, routing, dan indexing

Packet yang sampai di collector hanya membuktikan transport. Cari marker pada raw intake atau internal log collector sebelum memakai search normal. Jika raw event ada tetapi hasil pencarian kosong, periksa parser error, field extraction, routing rule, sourcetype/dataset, index tujuan, ingest permission, queue/backpressure, dan retention. Format syslog menyediakan header seperti timestamp, hostname, app-name, procid, msgid, serta structured data; mapping yang salah dapat mengubah lokasi atau waktu event tanpa menghilangkan payload.

5. Gunakan time range dan field yang tidak bergantung parser

Mulai dari pencarian marker mentah dengan window yang mencakup event time dan receive time, lalu sempitkan menggunakan hostname atau tag setelah event ditemukan. Jika pencarian berdasarkan field gagal tetapi raw marker berhasil, indikasinya mengarah ke parsing atau mapping, bukan transport. Jika marker muncul terlambat, ukur selisih timestamp sender, waktu diterima collector, dan waktu tersedia di index untuk membedakan clock skew, queue delay, dan indexing delay.

6. Ambil keputusan dari tahap terakhir yang terbukti

Gejala → bukti → interpretasi → tindakan berikutnya: marker tidak ada di journal berarti periksa generation lokal; marker lokal ada tetapi tidak ada packet keluar berarti periksa selector, queue, destination, DNS/TLS, atau forwarder; packet keluar tetapi tidak tiba berarti periksa route, firewall, NAT, dan jalur jaringan; packet tiba tetapi raw intake kosong berarti periksa listener/protocol/framing; raw intake ada tetapi search kosong berarti periksa parser, routing, index, permission, retention, dan time range. Ulangi test dengan marker baru setelah satu perubahan agar hasil tidak tercampur cache atau retry lama.

Kesalahan umum

Jangan menganggap service active berarti forwarding sehat, koneksi TCP sukses berarti event sudah di-index, atau tidak ada hasil pencarian berarti packet hilang. Hindari mengganti beberapa konfigurasi sekaligus, memakai marker yang terlalu umum, mencari hanya berdasarkan field yang mungkin gagal diparse, mengabaikan timezone, serta menjalankan tcpdump tanpa pembatasan host/port dan izin yang sesuai.

Checklist verifikasi

Catat marker, waktu UTC dan timezone, hostname, aplikasi/tag, facility/severity, bukti journal lokal, status dan error forwarder, destination/protocol/port, bukti packet di sender dan collector bila diizinkan, raw intake, parser status, dataset/index, search permission, event time, receive time, serta indexing delay. Hapus capture yang tidak lagi diperlukan sesuai kebijakan data.

Pelajaran

Troubleshooting observability bukan mencari satu command ajaib, melainkan menjaga chain of evidence. Marker unik dan pemeriksaan berlapis membuat tim dapat menunjuk batas terakhir yang sehat, menghindari perubahan spekulatif, dan menyerahkan bukti yang tepat kepada pemilik aplikasi, jaringan, collector, atau SIEM.

Referensi resmi

RFC 5424 — The Syslog Protocol ↗systemd — journalctl manual ↗util-linux — logger manual ↗rsyslog — Troubleshooting documentation ↗
Pilih materi berikutnya →