Hi
These days of quarantine because of Covid-19 I started making some livestream on youtube for different matters in MikroTik since I saw that many people like to watch youtube videos for learning and not read books
One thing of interest was the topic on how to receive instant notifications for different data from MikroTik routers. Videos are at:
Scripts that I have used are from different sources on the web but tailored for Telegram notification.
Netwatch simple script for checking hosts:
:local sub1 ([/system identity get name])
:local sub2 ([/system clock get time])
{
/ tool fetch "https://api.telegram.org/bot993515477:AAGYAgl0HbUi64F0-22xElS_OMgEqpQCfY0/sendMessage?chat_id=-483537716&text=($sub1) - PING is up for XXXX at $sub2."
}
/file remove number=[find where name~"send"]
Script for board and CPU temperature for telegram. Found here: http://forum.mikrotik.com/t/script-to-monitor-temperature/115444/1 but tailored a bit the values and way of notification
:global "tempstatus"
:global "templaststatus"
:global "cputempstatus"
:global "cputemplaststatus"
:global "systemtemp" [/system health get temperature]
:global "cputemp" [/system health get cpu-temperature]
:if (systemtemp > "45") do={:set "tempstatus" "system temp is too high"}
:if (systemtemp > "60") do={:set "tempstatus" "system temp is critical"}
:if (systemtemp < "45") do={:set "tempstatus" "system temp is within spec"}
:if (cputemp > "65") do={:set "cputempstatus" "cpu temp is too high"}
:if (cputemp > "75") do={:set "cputempstatus" "cpu temp is critical"}
:if (cputemp < "64") do={:set "cputempstatus" "cpu temp is within spec"}
:if ($"tempstatus" != $"templaststatus") do {
/ tool fetch "https://api.telegram.org/bot993515477:AAGYAgl0HbUi64F0-22xElS_OMgEqpQCfY0/sendMessage?chat_id=-483537716&text=Router $[/system identity get name] has a temperature alert. $[/system clock get date] $[/system clock get time] -> $tempstatus - $systemtemp* Celsius)"
:log info "Telegram notification sent about system $tempstatus status"
:set "templaststatus" $"tempstatus"
}
:if ($"cputempstatus" != $"cputemplaststatus") do {
/ tool fetch "https://api.telegram.org/bot993515477:AAGYAgl0HbUi64F0-22xElS_OMgEqpQCfY0/sendMessage?chat_id=-483537716&text=Router $[/system identity get name] has a temperature alert. $[/system clock get date] $[/system clock get time] -> $cputempstatus - $cputemp* Celsius)"
:log info "Telegram notification sent about system $cputempstatus status"
:set "cputemplaststatus" $"cputempstatus"
}
/file remove number=[find where name~"Celsius"]
Stay safe!