Netwatch adalah salah satu fitur Mikrotik yang biasa digunakan untuk monitoring. Netwatch umumnya menggunakan protokol ICMP untuk memeriksa alamat IP yang hendak dimonitor, namun pada RouterOS versi terbaru sudah ditambahkan beberapa metode selain ICMP. Terlepas dari metode yang digunakan, fungsi monitoring ini (bisa diakses dari Tools-Netwatch) akan memeriksa alamat IP pada host netwatch secara berkala sesuai interval yang diset, kemudian apabila terjadi perubahan status pada target, akan menjalankan script pada tab UP (saat target terhubung) atau DOWN (saat target terputus).
Telegram adalah salah satu aplikasi untuk komunikasi yang mendukung adanya BOT, dan dengan memanfaatkan fitur /tool fetch di mikrotik, bot ini bisa digunakan untuk mengirim pesan dari script Mikrotik, termasuk script pada Netwatch untuk mengirim perubahan status.
Di internet sudah banyak tersedia tutorial untuk mengirim perubahan status netwatch melalui telegram ini, misalnya di sini, Namun pada kenyataannya proses menyalin dan mengubah isi dari pesan telegram pada netwatch adalah proses yang sangat melelahkan, apalagi kalau host yang hendak dimonitor ada banyak. Artikel kali ini akan membahas tentang penyederhanaan proses menambah host netwatch secara otomatis menggunakan nama yang tercantum di queue simple menggunakan script sehingga tidak perlu repot mengubah isi pesan pada script Up dan Down pada netwatch sekaligus mengurangi kemungkinan kesalahan pada script.
Langkah pertama adalah membuat Bot Telegram. Untuk ini anda bisa mengikuti tutorial di sini, yang mana intinya antara lain:
- Mengirim pesan /start ke @botfather di Telegram, kemudian perintah /newbot untuk membuat bot baru. Di sini kita disuruh memberi nama bot dan username bot yang mana harus berakhiran _bot.
- Setelah berhasil membuat bot, kita akan diberikan token bot. Simpan token bot ini untuk kita gunakan pada script kita dan juga untuk mengambil info chat ID.
- Buat sebuah grup di Telegram, undang Bot yang tadi dibuat ke grup tersebut, dan jadikan Bot sebagai Admin. Kirim sembarang pesan untuk mengambil chat ID
- Buka API telegram di browser dengan format https://api.telegram.org/bot(TOKEN_BOT)/getUpdates yang akan membuka update terakhir dari bot kita. Dari pesan terakhir kita ambil Chat ID dari grup yang kita buat.
Setelah itu kita beralih ke Mikrotik. Masuk ke System->Script, klik tombol add (+), kasih nama misalnya add-netwatch, kemudian pada kotak source isikan script berikut ini:
:local noque <masukkan urutan yang akan ditambahkan di simple queue>
:local botToken "<masukkan Token Bot>"
:local chatID "<masukkan chat id>"
:local interval 20s
:local nama [/queue simple get $noque name]
:local ipnya [/queue simple get $noque target]
:local ipne [put [:pick [:tostr $ipnya] 0 [:find [:tostr $ipnya] "/"]]]
:local namaencoded
:for i from=0 to=([:len $nama] - 1) do={
:local char [:pick $nama $i]
:if ($char = " ") do={
:set $char "%20"
}
:if ($char = "-") do={
:set $char "%2D"
}
:set namaencoded ($namaencoded . $char)
}
/tool netwatch add comment=$nama down-script="/tool fetch url=\"https://api.telegram.org/bot$botToken/sendMessage\\\?chat_id=\
$chatID&text=$namaencoded%20DOWN%20%F0%9F%99%81\" keep-result=no" host=\
$ipne interval=$interval up-script="/tool fetch url=\"https://api.telegram.org/bot$botToken/sendMessage\\\?chat_id=\
$chatID&text=$namaencoded%20UP\" keep-result=no"
Setelah itu masukkan Token dari bot ke variabel di atas, menggantikan <masukkan Token Bot>, dan masukkan juga Chat ID menggantikan <masukkan chat ID> di script tersebut. Sesuaikan interval pengecekan sesuai yang dikehendaki, dan script kita siap digunakan.
Untuk menggunakan script kita, ubah nomor pada variabel noque dalam script menjadi nomor urut pada simple queue, klik apply, kemudian klik Run Script. Cek di tools->netwatch dan pastikan parameter sudah benar, cek juga di grup telegram kita, pastikan script berjalan dengan baik. Happy Scripting.
Tidak ada komentar:
Posting Komentar