Pendahuluan
Saat bot mati atau website error 502, hal pertama yang diperiksa adalah log. Debian 13 memakai systemd sehingga hampir semua layanan mencatat ke jurnal terpusat yang dibaca lewat journalctl. Sementara file log klasik di /var/log dikelola oleh logrotate agar tidak memenuhi disk. Artikel ini membahas cara memantau keduanya secara praktis.
Bagian 1: Journalctl untuk Layanan Systemd
Menampilkan log layanan bot atau API:
journalctl -u bot-telegram -f
journalctl -u api-sederhana --since "1 hour ago"Opsi yang sering dipakai:
journalctl -u nginx --no-pager -n 100
journalctl -u caddy -p err --since today
journalctl --disk-usagePenjelasan:
-f— ikuti log secara live sepertitail -f.-n 100— tampilkan 100 baris terakhir.-p err— hanya level error ke atas.--since today— filter sejak hari ini.
Melihat semua log boot terakhir:
journalctl -b -p warningMencari kata kunci:
journalctl -u bot-telegram | grep -i "error\|timeout\|ECONNREFUSED"Bagian 2: Log File Klasik di /var/log
Selain jurnal systemd, banyak aplikasi menulis ke file:
ls -lh /var/log/
tail -f /var/log/syslog
tail -f /var/log/nginx/error.logContoh memantau cron:
grep CRON /var/log/syslog | tail -n 50Bagian 3: Konfigurasi Logrotate
Tanpa rotasi, file seperti /var/log/backup-bot.log bisa membesar hingga gigabyte. Logrotate memotong, mengompres, dan menghapus log lama otomatis.
Contoh konfigurasi /etc/logrotate.d/bot-telegram:
/var/log/bot-*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
dateext
}Artinya: rotasi harian, simpan 7 hari, kompres dengan gzip, abaikan jika file belum ada.
Uji konfigurasi tanpa menunggu jadwal:
sudo logrotate -d /etc/logrotate.d/bot-telegram
sudo logrotate -f /etc/logrotate.d/bot-telegramCek status rotasi:
cat /var/lib/logrotate/status | grep botContoh Nyata: Bot Telegram Mati Tiba-tiba
- Cek status layanan:bash
sudo systemctl status bot-telegram - Lihat 50 baris log terakhir:bash
journalctl -u bot-telegram -n 50 --no-pager - Jika ada
ENOMEMatauJavaScript heap out of memory, berarti RAM habis — lihat panduan optimasi VPS Debian. - Jika ada
401 Unauthorized, berarti token bot salah — periksa file.env.
Tabel Perintah Penting
| Kebutuhan | Perintah |
|---|---|
| Live log layanan | journalctl -u NAMA -f |
| 100 baris terakhir | journalctl -u NAMA -n 100 --no-pager |
| Hanya error hari ini | journalctl -u NAMA -p err --since today |
| Penggunaan disk jurnal | journalctl --disk-usage |
| Batasi ukuran jurnal | sudo journalctl --vacuum-size=500M |
| Live file log | tail -f /var/log/syslog |
Membatasi Ukuran Jurnal Systemd
Secara bawaan jurnal bisa memakan ratusan MB. Batasi di /etc/systemd/journald.conf:
SystemMaxUse=500M
RuntimeMaxUse=100MTerapkan:
sudo systemctl restart systemd-journald
sudo journalctl --vacuum-size=500MKelebihan dan Kekurangan
Kelebihan journalctl:
- Terpusat untuk semua layanan systemd.
- Bisa filter per unit, waktu, dan level.
- Tidak perlu path file manual.
Kekurangan:
- Log hilang jika jurnal corrupt dan belum diforward ke file.
- Perlu logrotate terpisah untuk aplikasi yang menulis file langsung.
Kesimpulan
Kombinasi journalctl untuk layanan systemd dan logrotate untuk file log adalah standar monitoring VPS Debian 13. Biasakan mengecek log sebelum restart layanan, batasi ukuran jurnal, dan simpan log penting minimal 7 hari agar troubleshooting lebih cepat.