Ilustrasi digital tentang monitoring Docker menggunakan Crontab dan notifikasi Telegram, dengan ikon Docker, kalender, jam, komputer, dan logo Telegram.

Monitoring Docker Container Pakai Crontab & Kirim Notifikasi ke Telegram

Dalam beberapa situasi, kita membutuhkan metode monitoring ringan untuk memastikan container Docker tetap berjalan. Tidak selalu harus menggunakan Prometheus atau Grafana. Yang terpenting adalah mendapatkan notifikasi jika ada container yang berhenti atau exited secara tiba-tiba. Pada artikel ini, saya akan membagikan cara membuat sistem monitoring sederhana menggunakan crontab dan Telegram.


1. Membuat Script Bash

Pertama, kita buat file bernama docker-monitor.sh yang akan mengecek container yang berhenti/exited dan mengirimkan notifikasi ke Telegram.

#!/bin/bash

# Konfigurasi Telegram
BOT_TOKEN="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
CHAT_ID="987654321"
HOSTNAME=$(hostname)

# Cek container yang statusnya exited
DOWN_CONTAINERS=$(docker ps --filter "status=exited" --format "{{.ID}} | {{.Image}} | {{.Status}}")

if [[ ! -z "$DOWN_CONTAINERS" ]]; then
  MESSAGE="[$HOSTNAME] Container yang berhenti:\n$DOWN_CONTAINERS"
  curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
    -d chat_id="$CHAT_ID" \
    -d text="$MESSAGE"
fi

Agar script ini dapat dijalankan, beri izin eksekusi dengan perintah berikut:

chmod +x docker-monitor.sh

Simpan file ini di direktori seperti /opt/scripts/docker-monitor.sh.


2. Menambahkan ke Crontab

Selanjutnya, buka crontab:

crontab -e

Tambahkan baris berikut untuk menjalankan script setiap 5 menit:

*/5 * * * * /opt/scripts/docker-monitor.sh

3. Uji Coba Notifikasi

Untuk pengujian, coba hentikan salah satu container secara manual:

docker stop <nama_container>

Tunggu sekitar 5 menit, dan periksa apakah notifikasi masuk ke Telegram kita.


Solusi ini cukup sederhana namun efektif untuk memastikan container tetap aktif. Kita dapat mengembangkan lebih lanjut, misalnya menambahkan fitur auto-restart, menggunakan bahasa Python agar lebih fleksibel, atau mengintegrasikannya ke dalam sistem monitoring yang lebih kompleks.

Jika kamu punya solusi lain, coba komentar di bawah dong.. kita sharing…

Semoga bermanfaat…

Leave a Reply