Membuat Bot Telegram Untuk Monitoring Jaringan

Tutorial kali ini saya akan membuat sistem monitoring jaringan menggunakan telegram.
Untuk bisa membuat monitoring jaringan dengan telegram kita bisa memanfaat fitur Netwatch dan Fetch yang ada di MikroTik

Membuat bot dan mendapatkan token

Cari nama akun pembuat bot yang bernama BotFather

Ketikkan perintah

/start

Membuat bot baru, ketikkan perintah

/newbot

Ketika muncul pertanyaan “Alright, a new bot. How are we going to call it? Please choose a name for your bot.” Berikan nama untuk bot yang akan kita buat

Bot Monitoring Jaringan

Ketika muncul pertanyaan “Good. Now let’s choose a username for your bot. It must end in bot. Like this, for example: TetrisBot or tetris_bot.” Berikan username dengan akhiran kata bot

example_monitoringbot

Lalu akan muncul hasil pembuatan bot. Salin dan simpen token untuk kebutuhan selanjutnya

Done! Congratulations on your new bot. You will find it at t.me/example_monitoringbot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.

Use this token to access the HTTP API:
5924150328:AAGx5btHZtACmbzQpj786wIyv3AJZbxYqmQ
Keep your token secure and store it safely, it can be used by anyone to control your bot.

For a description of the Bot API, see this page: https://core.telegram.org/bots/api

Salin dan simpan Token yang saya tandai warna orange

Mendapatkan chat ID

Buka web browser lalu ketikkan URL dengan format berikut

https://api.telegram.org/botTokenBot/getUpdates

Sehingga menjadi seperti berikut

https://api.telegram.org/bot5924150328:AAGx5btHZtACmbzQpj786wIyv3AJZbxYqmQ/getUpdates

*Catatan: Ganti text yang berwarna orange sesuai dengan token yang kamu dapatkan saat membuat bot

Lalu, Kirim sembarang pesan ke bot kita yang barusan dibuat dengan cara melakukan pencarian terlebih dahulu menggunakan username bot yang telah kita buat.

Refresh halaman yang sudah kita buka tadi

Akan muncul tampilan seperti berikut

{"ok":true,"result":[{"update_id":964965732,
"message":{"message_id":3,"from":{"id":457209685,"is_bot":false,"first_name":"Fariz","last_name":"Anwar (Axis)","username":"fariz_anwar","language_code":"en"},"chat":{"id":457209685,"first_name":"Fariz","last_name":"Anwar (Axis)","username":"fariz_anwar","type":"private"},"date":1674522649,"text":"HAI BOT"}}]}

Perhatikan chat yang kita kirim dengan text yang saya tandai warna hijau

Salin bagian chat ID yang saya tandai warna orange

Percobaan kirim pesan

Buka browser, lalu ketikkan URL dengan format berikut

https://api.telegram.org/botTokenBot/sendMessage?chat_id=ChatID&text=isi pesan

Sehingga menjadi seperti berikut

https://api.telegram.org/bot5924150328:AAGx5btHZtACmbzQpj786wIyv3AJZbxYqmQ/sendMessage?chat_id=457209685&text=tes pesan 123

Hasilnya adalah bot berhasil mengirim pesan kepada kita seperti berikut

Konfigurasi mikrotik netwach

Setelah kita mendapatkan token dan chat ID, langkah selanjutnya adalah mengkonfigurasi mikrotik dengan netwatch.

Buka winbox, dan pergi ke menu Tool > Netwatch. lalu isikan seperti berikut

Keterangan:

Host: IP/Domain mesin/perangkat yang akan kita monitoring

Interval: Jarak melakukan ping (netwatch bekerja dengan cara melakukan ping)

Timeout: Lamanya waktu ping tidak ada balasan, Contoh: Jika ping dilakukan dan tidak ada balasan selama 1000ms maka akan dinyatakan down

Menambahkan script perintah pada saat status Up dan down

Simple Script

Format

/tool fetch url="https://api.telegram.org/botTokenBot/sendmessage\?chat_id=ChatID&text=IsiText";

Sehingga menjadi seperti berikut

/tool fetch url="https://api.telegram.org/bot5924150328:AAGx5btHZtACmbzQpj786wIyv3AJZbxYqmQ/sendmessage\?chat_id=457209685&text=Router rumah= DOWN";

Advance Script

#MENAMBAHKAN VARIABEL

:local CHID "ChatID";
:local BotID "TokenBot";
:local Device "NamaPerangkatSembarangText";
:local HostStatus "Up/DownSembarangText";


#Untuk menambahkan Enter pada isi text tambahkan %0A

:local message "Nama Perangkat: $Device %0AIP: $host %0AStatus: $HostStatus";

#PERINTAH EKSEKUSI

/tool fetch url="https://api.telegram.org/bot$BotID/sendmessage\?chat_id=$CHID&text=$message";

Sehingga menjadi seperti berikut

#MENAMBAHKAN VARIABEL

:local CHID "457209685";
:local BotID "5924150328:AAGx5btHZtACmbzQpj786wIyv3AJZbxYqmQ";
:local Device "Router Rumah";
:local HostStatus "Up/Down";


#Untuk menambahkan Enter pada isi text tambahkan %0A

:local message "Nama Perangkat: $Device %0AIP: $host %0AStatus: $HostStatus";

#PERINTAH EKSEKUSI

/tool fetch url="https://api.telegram.org/bot$BotID/sendmessage\?chat_id=$CHID&text=$message";

Penutup

Selain mendapatkan laporan langsung dari bot kamu juga bisa mendapatkan laporan melalui sebuah grup dengan menambahkan bot yang telah dibuat sebagai anggota.
Untuk mendapatkan chat ID dari sebuah grup kamu bisa melakukan hal yang sama dengan cara mendapatkan chat ID obrolan biasa. chat id grup dibedakan dengan tand didepan nya

Troubleshoot

TIDAK BISA MENAMBAHKAN TANDA (?) DIDALAM TERMINAL MIKROTIK
Ketika membuat script dan didalam script ada tanda ? untuk menambahkan symbol ? gunakan symbol \ (back slash) terlebih dahulu, jika kita memasukkan ? tanpa \ maka yang keluar adalah whats next command. 

\?

Keterangan

Sumber/referensi: 
https://labkom.co.id/mikrotik/mikrotik-netwach-monitoring-status-access-point-hotspot-dengan-menggunakan-telegram