Salah satu tantangan utama dalam mengelola jaringan adalah mengetahui adanya gangguan sesegera mungkin, bukan setelah pengguna mengeluh. Artikel ini membahas cara membangun bot Telegram MikroTik untuk notifikasi otomatis, sehingga tim jaringan bisa mendapat peringatan real-time dari router MikroTik (RouterOS) saat terjadi tiga jenis kondisi: trafik WAN yang tidak wajar tinggi, koneksi internet terputus, dan status naik-turunnya sebuah link.

Membuat Bot Telegram MikroTik
Langkah pertama adalah membuat “bot” — akun otomatis di Telegram yang nantinya mengirim pesan atas nama sistem, bukan manusia.
- Buka aplikasi Telegram, cari kontak @BotFather (bot resmi bawaan Telegram untuk mengelola bot lain)
- Kirim perintah
/newbot - Ikuti instruksi: beri nama tampilan bot (misal
NOC Lab Alert), lalu username unik yang harus diakhiri katabot(misalTKJ_ALERT_BOT) - BotFather akan membalas dengan sebuah Bot Token — deretan angka dan huruf seperti
123456789:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Simpan ini baik-baik, karena token inilah “kunci” yang dipakai router untuk mengirim pesan atas nama bot.
Membuat Grup dan Mendapatkan Chat ID
Bot perlu tahu ke mana pesan harus dikirim. Untuk itu dibutuhkan Chat ID dari grup tujuan.
- Buat grup Telegram baru, beri nama sesuai kebutuhan (misal
TKJ_ALERT) - Tambahkan bot yang baru dibuat ke dalam grup tersebut
- Kirim satu pesan apa saja ke grup (misal “test”)
- Buka browser, akses:
https://api.telegram.org/bot<TOKEN>/getUpdates(ganti<TOKEN>dengan Bot Token dari langkah sebelumnya) - Pada hasil JSON yang muncul, cari bagian
"chat":{"id": ...}— angka tersebut adalah Chat ID. Untuk grup, angkanya biasanya diawali tanda minus (-), menandakan itu ID grup, bukan chat pribadi.
Menguji Koneksi Bot Telegram MikroTik Sebelum Masuk ke Router
Sebelum menulis script di RouterOS, sebaiknya dites dulu dari komputer menggunakan curl, supaya kalau ada kesalahan, lebih mudah dibedakan: masalah di bot/token, atau masalah di router.
curl -s -X POST "https://api.telegram.org/bot<TOKEN>/sendMessage" \
-d chat_id="<CHAT_ID>" \
-d text="Ini pesan uji coba"Jika berhasil, Telegram Bot API akan mengembalikan balasan JSON dengan "ok":true, dan pesan langsung terlihat di grup Telegram.
Struktur Dasar Perintah di RouterOS
RouterOS memiliki perintah /tool fetch yang berfungsi seperti curl — dipakai untuk mengakses sebuah alamat web dari dalam router. Berikut struktur dasar untuk mengirim pesan Telegram:
/tool fetch tls=yes check-certificate=no http-method=post url="https://api.telegram.org/bot<TOKEN>/sendMessage" http-data="chat_id=<CHAT_ID>&text=<PESAN>" output=nonePenjelasan parameter penting:
-
tls=yes check-certificate=no— memastikan koneksi HTTPS berjalan tanpa terhambat validasi sertifikat yang kadang bermasalah di RouterOS CHR -
http-method=post— mengirim data menggunakan metode POST, sesuai yang diminta API Telegram -
http-data— isi data yang dikirim, berisi tujuan (chat_id) dan isi pesan (text) - Spasi pada teks pesan sebaiknya diganti dengan tanda
+(URL encoding), untuk menghindari kegagalan pengiriman akibat format URL yang tidak valid -
output=none— hasil balasan dari Telegram tidak perlu disimpan sebagai file
Studi Kasus: Alert Trafik WAN Tinggi
Tujuan: mengirim peringatan otomatis jika trafik WAN melebihi ambang batas tertentu (misal 80% dari kapasitas bandwidth langganan).
:local rxBytes1 [/interface get [find name=ether1] rx-byte]
:delay 1s
:local rxBytes2 [/interface get [find name=ether1] rx-byte]
:local rxRate (($rxBytes2 - $rxBytes1) * 8)
:if ($rxRate > 24000000) do={
/tool fetch url="https://api.telegram.org/bot<token>/sendMessage" http-method=post http-data="chat_id=-5509931867&text=ALERT [NOC]: Trafik WAN tinggi terdeteksi" keep-result=no
}Cara kerja: router mengukur jumlah byte yang diterima interface WAN pada dua titik waktu berjarak 1 detik, lalu menghitung selisihnya untuk mendapatkan kecepatan trafik saat ini (dalam bit per detik). Jika angka ini melebihi ambang batas yang ditentukan, pesan alert dikirim.
Nilai ambang batas dihitung dari persentase bandwidth langganan, contoh untuk langganan 30 Mbps dengan ambang 80%:
30.000.000 bps × 0,8 = 24.000.000 bpsStudi Kasus: Alert Ping Internet Gagal Berturut Turut
Tujuan: mengetahui saat koneksi internet benar-benar terputus, bukan sekadar gangguan sesaat.
:local target "8.8.8.8"
:local token "123456789:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
:local chatid "-111199992"
:for i from=1 to=3 do={
:local pingResult [/ping $target count=1]
:local status "DOWN"
:if ($pingResult > 0) do={
:set status "UP"
}
:log info ("NOC PING #".$i." = ".$status)
:local message ("ALERT [NOC]: Ping #".$i." = ".$status)
/tool fetch url=("https://api.telegram.org/bot".$token."/sendMessage") \
http-method=post \
http-data=("chat_id=".$chatid."&text=".$message) \
output=none
:if ($i < 3) do={
:delay 10s
}
}Script ini mengirim lima kali ping ke server publik (8.8.8.8) yang jarang mengalami gangguan. Alert baru dikirim jika seluruh lima ping gagal — pendekatan ini sengaja dipilih untuk menghindari alarm palsu akibat gangguan sesaat yang wajar terjadi di jaringan.
Konfigurasi Up sama Down Untuk Sceduler
Kedua script ini tidak berjalan sendiri secara terjadwal — keduanya baru bekerja setelah dipanggil oleh fitur Netwatch, yang tugasnya memantau status hidup-mati suatu host (dalam hal ini 8.8.8.8) secara terus-menerus.
/system script add name="noc_alert_down" source={
/tool fetch url="https://api.telegram.org/bot<token>/sendMessage" http-method=post http-data="chat_id=-1119199127&text=ALERT [NOC]: CEK DOWN" keep-result=no
}
/system script add name="noc_alert_up" source={
/tool fetch url="https://api.telegram.org/bot<token>/sendMessage" http-method=post http-data="chat_id=-1119199127&text=ALERT [NOC]: CEK UP" keep-result=no
}Penjelasannya:
- Selama koneksi normal, Netwatch mencatat status host sebagai
up— tidak ada aksi apa pun yang dijalankan - Begitu Netwatch mendeteksi host tidak lagi bisa dihubungi (status berubah jadi
down), otomatis memanggilnoc_alert_down, yang isinya cuma satu baris: mengirim pesan “CEK DOWN” ke grup Telegram - Saat koneksi kembali normal (status berubah dari
downkeup), Netwatch memanggilnoc_alert_up, mengirim pesan “CEK UP”
Menjadwalkan Pengecekan Otomatis
Kedua script di atas perlu dijalankan secara berkala, bukan sekali saja. Untuk itu digunakan fitur Scheduler di RouterOS:
/system scheduler add name="SCHED_BW" interval=1m on-event="/system script run noc_check_bandwidth"
/system scheduler add name="SCHED_PING" interval=1m on-event="/system script run noc_check_ping"
Dengan ini, kedua script otomatis dijalankan setiap 1 menit tanpa perlu campur tangan manual.
Studi Kasus: Netwatch untuk Deteksi Link Naik/Turun
Selain pengecekan berkala, RouterOS memiliki fitur Netwatch yang secara aktif memantau status hidup-matinya sebuah host, dengan interval yang bisa jauh lebih singkat (misal 10 detik):
/system script add name="noc_alert_down" source={
/tool fetch tls=yes check-certificate=no http-method=post url="https://api.telegram.org/bot<TOKEN>/sendMessage" http-data="chat_id=<CHAT_ID>&text=ALERT+NOC+Gateway+Link+Upstream+DOWN" output=none
}
/system script add name="noc_alert_up" source={
/tool fetch tls=yes check-certificate=no http-method=post url="https://api.telegram.org/bot<TOKEN>/sendMessage" http-data="chat_id=<CHAT_ID>&text=INFO+NOC+Gateway+Link+Upstream+kembali+UP" output=none
}
/tool netwatch add host=8.8.8.8 interval=10s timeout=1s down-script="/system script run noc_alert_down" up-script="/system script run noc_alert_up"Kelebihan Netwatch dibanding scheduler biasa: notifikasi dikirim otomatis begitu ada perubahan status, tanpa harus menunggu jadwal berikutnya — dan mengirim dua jenis notifikasi berbeda (saat mati dan saat kembali normal), sehingga tim tahu bukan hanya kapan masalah mulai, tapi juga kapan sudah selesai.
Menguji Sistem Sebelum Insiden Sungguhan Terjadi
Sebelum mengandalkan sistem ini dalam kondisi nyata, setiap jenis alert perlu diuji secara manual:
- Uji alert trafik tinggi: jalankan unduhan berkapasitas besar dari perangkat klien sambil menjalankan script secara manual
-
Uji alert ping gagal: tambahkan aturan firewall sementara yang memblokir ICMP ke
8.8.8.8, tunggu hingga scheduler berjalan, lalu hapus kembali aturan tersebut - Uji Netwatch: nonaktifkan sementara interface WAN, amati perubahan status dan notifikasi yang masuk, lalu aktifkan kembali
Kesimpulan: Bot Telegram MikroTik untuk Notifikasi Jaringan
Sistem alert bot Telegram MikroTik di atas memberikan lapisan pemantauan otomatis yang ringan namun efektif untuk jaringan skala kecil-menengah, tanpa memerlukan perangkat monitoring tambahan yang kompleks. Kombinasi antara pengecekan berkala (scheduler) dan pemantauan aktif (Netwatch) memastikan gangguan jaringan — baik berupa trafik tidak wajar maupun putusnya koneksi — dapat diketahui dalam hitungan detik hingga menit, jauh lebih cepat dibandingkan menunggu laporan manual dari pengguna.





