Untuk membuat Bot Telegram silahkan kunjungi artikel sebelumnya yang berjudul : Mikrotik Netwach – Monitoring Status Access Point Hotspot Dengan Menggunakan Telegram

Script ini digunakan untuk memonitoring kondisi jaringan di Mikrotik anda, anda cukup mengganti ip address, api key dan chat id bot telegram anda. Untuk langkah-langkahnya sebagai berikut:

Tambahkan Script

Caranya dengan masuk ke menu System –> Scripts, lalu pastekan Script dibawah ini di kolom Source, sebagai contoh saya memberi nama “billing”

#Ping Variables
:local avgRtt;
:local pin
:local pout
:local pingit "192.168.10.2"
 
#Capture system identity for email subject
:local sysID [/system identity get name]
 
#Capture current time for logging
:local datetime "$[/system clock get date] $[/system clock get time]"
  
#Ping it real good
/tool flood-ping $pingit count=10 do={
   
:if ($sent = 10) do={
     
:set avgRtt $"avg-rtt"
     
:set pout $sent
     
:set pin $received
  }
 
}
 
:local ploss (100 - (($pin * 100) / $pout))
 
:local logmsg ("Ping Average for $pingit - ".[:tostr $avgRtt]."ms - packet loss: ".[:tostr $ploss]."%")
 
:log info $logmsg
 
:log info message="Telegram Ping Results"
delay 2
:tool fetch url="https://api.telegram.org/botXXXXXXXXXXXXXXXXX/sendMessage?chat_id=XXXXXXXX&text=Result:$pingit %0A$logmsg Pingtest results for user $sysID $datetime " keep-result=no

Penjelasan singkat script diatas

/tool flood-ping 192.168.10.2 count=10, melakukan fungsi flood ping yang ada di mikrotik dengan melakukan pengiriman/send dengan total packet 10 ke ip address 192.168.10.2, kemudian akan menjalankan fungsi logika if ($sent = 10), dimana apabila varibel $sent sama dengan 10 akan memberikan nilai ke varibel yang diperoleh dari fungsi flood ping tadi. Ada beberapa nilai yang diperoleh dari fungsi ping flood diantaranya variabel avgRtt dari nilai avg-rtt (average – Round Trip Time), varibel pout dari nilai $sent (total packet yang dikirimkan), variabel pin dari nilai $received (total packet yang diterima). Kemudian melakukan perhitungan ke satuan persen antara packet yang dikirim dengan packet yang diterima “100 – (($pin * 100) / $pout”, nilai persen tersebut ditampilkan dengan variabel $ploss. Kemudian beberapa nilai yang diperoleh tadi dikirimkan ke log dan Bot Telegram. Baca juga : Membuat Halaman Pemberitahuan Ketika Internet Mati Untuk Pelanggan Hotspot

Netwach

Agar Script Tersebut berjalan ketika kondisi IP Address yang kita monitoring terjadi Down Time (RTO) maupun Uptime tambahkan sebuah Netwach, dan isilah di Tab Up dan Down dengan nama script yang telah dibuat tadi.

Scheduler

Agar script diatas berjalan dengan interval tertentu bisa ditambahkan ke System Scheduler

/system scheduler add interval=50s name=Monitoring billing on-event="billing" policy=read,write start-time=startup

Hasilnya

Referensi : Forum Mikrotik

9 COMMENTS

    • /tool flood-ping 192.168.10.2 count=10, melakukan fungsi flood ping yang ada di mikrotik dengan melakukan pengiriman/send dengan total packet 10 ke ip address 192.168.10.2, kemudian akan menjalankan fungsi logika if ($sent = 10), dimana apabila varibel $sent sama dengan 10 akan memberikan nilai ke varibel yang diperoleh dari fungsi flood ping tadi. Ada beberapa nilai yang diperoleh dari fungsi ping flood diantaranya variabel avgRtt dari nilai avg-rtt (average – Round Trip Time), varibel pout dari nilai $sent (total packet yang dikirimkan), variabel pin dari nilai $received (total packet yang diterima). Kemudian melakukan perhitungan ke satuan persen antara packet yang dikirim dengan packet yang diterima “100 – (($pin * 100) / $pout”, nilai persen tersebut ditampilkan dengan variabel $ploss. Kemudian beberapa nilai yang diperoleh tadi dikirimkan ke log dan Bot Telegram

  1. saya sudah menambahkan netwatch, dan kenapa script tidak berjalan setiap menit sekali?
    script hanya berjalan ketika terjadi up dan down.
    mohon solusinya.

    • Kalau di Netwach memang seperti itu, kalau ingin setiap menit sekali bisa ditambahkan ke system-scheduler, atur sesuai dengan interval yang di inginkan.. /system scheduler add interval=50s name=Monitoring billing on-event=”billing” policy=read,write start-time=startup

Leave a Reply