MikroTik-scripts: Melding over oververhitting van het apparaat

Melding wanneer de temperatuur van het apparaat boven de drempel komt. Stuurt een melding naar e-mail of Telegram-bericht.

Het script verzendt de temperatuur van het MikroTik-apparaat en de CPU-belasting. Als de temperatuur van het apparaat de drempelwaarde heeft overschreden en de processorbelasting van het apparaat minimaal is, kan er een probleem zijn in de externe omgeving (bijvoorbeeld het uitvallen van een airconditioner in een serverruimte).

Voorbeeld-e-mail oververhitting van het MikroTik-apparaat. Krijg apparaat temperatuur en CPU-belasting
Sample email about MVoorbeeld-e-mail oververhitting van het MikroTik-apparaat

Gebruikte functies:

MikroTik-script is geschikt voor apparaten die zijn uitgerust met een temperatuursensor. Getest op Mikrotik RB3011UiAS-RM, RouterOS 6.46.4 (stabiel).

De veilige waarde van de CPU-temperatuur zal verschillen voor elk model MikroTik-apparaten, stel de waarde van de scripttrigger-temperatuur (MaxCPUTemp) in afhankelijk van het model van uw apparaat (zie de specificatie).

Artikel in andere talen:
?? – MikroTik Scripts: Device overheating notification
?? – MikroTik Scripts: Notificación de sobrecalentamiento del dispositivo
?? – MikroTik Скрипты: Уведомление о перегреве устройства
?? – Scripts MikroTik: Notification de surchauffe de l’appareil
?? – MikroTik-Scripts: Benachrichtigung über Überhitzung des Geräts

Maak een script

De parameter MaxCPUTemp is de temperatuurdrempel van het apparaat waarna een melding wordt verzonden.

Om het script te laten werken, heeft het controleren van de apparaattemperatuur machtigingen nodig: read, write, test, policy.

[System] -> [Scripts] -> [+] -> [Name: DeviceOverheatingScript] -> [Policy: read, write, test, policy]

Script code:

# Name: DeviceOverheatingNotification v1
# Description: Notification when the device temperature rises above the threshold. Sends notification to email or Telegram message.
# Author: Yun Sergey, MHelp.pro 2020
# License: GPL-3.0 License
# Description, purpose and questions: https://mhelp.pro/mikrotik-scripts-device-overheating-notification/
# More scripts Mikrotik: https://mhelp.pro/tag/mikrotik-scripts/
# Verified: RouterBOARD 3011UiAS, RouterOS 6.47.8 (stable)

:local MaxCPUTemp 65;
:local CurrentTemp [/system health get temperature];
:local CurrentCPULoad [/system resource get cpu-load];
:local DeviceName [/system identity get name ];
:local Time [/system clock get time];
:local Date [/system clock get date];

#:log info "Script DeviceOverheatingNotification - start.";

:if ($CurrentTemp > $MaxCPUTemp) do={

    #:log info "Script DeviceOverheatingNotification - Temperature threshold exceeded! Send Telegram message.";

    # START Send Telegram Message
    :local MessageText "\F0\9F\94\B4 <b>CRITICAL: $DeviceName Device Overheating!</b> %0D%0A Device Temperature: $CurrentTemp %C2%B0 C  %0D%0A CPU Load: $CurrentCPULoad %";
    :local SendTelegramMessage [:parse [/system script  get MyTGBotSendMessage source]];
    $SendTelegramMessage MessageText=$MessageText;
    # END Send Telegram Message

    #:log info "Script DeviceOverheatingNotification - Temperature threshold exceeded! Send Email.";

    # START Send Email
    :local SendTo "notify@mhelp.pro";
    :local Subject "\F0\9F\94\B4 CRITICAL: $DeviceName [$Date $Time]";
    :local MessageText "Device Temperature: $CurrentTemp °C, CPU Load: $CurrentCPULoad %";
    :local FileName "";
    :local SendEmail [:parse [/system script get SendEmailFunction source]];
    $SendEmail SendTo=$SendTo TextMail=$MessageText Subject=$Subject FileName=$FileName;
    # END Send Email
}

#:log info "Script DeviceOverheatingNotification - end.";
Melding Script voor oververhitting van MikroTik-apparaat

Voeg script toe aan Scheduler

To run the script to check the temperature of the MikroTik device, permissions are required: read, write, test, policy.

[System] -> [Schedule] -> [+] -> [Name:CheckDeviceOverheating] —>  [Interval: 00:01:00] -> [Policy: read, write, policy, test]

Of ren in terminal:

/system scheduler add name=CheckDeviceOverheating policy=read,write,policy,test on-event="/system script run DeviceOverheatingScript" interval=1m comment="Checking device overheating"
Voeg een script toe om oververhitting van het apparaat te controleren volgens het schema

Nu kunt u de controle over uw apparaat vergroten door een belangrijke parameter te bewaken: apparaattemperatuur!


? In dit artikel wordt besproken hoe je een script maakt om de oververhitting van een MikroTik-apparaat te controleren en een melding naar een e-mail of Telegram-bericht stuurt. Ik hoop dat je nu op tijd een melding kunt krijgen over oververhitting van het MikroTik-apparaat en de CPU-belasting. Mocht u echter problemen ondervinden bij het configureren van het script, schrijf dan gerust in de commentaren. Ik zal proberen te helpen.

Plaats een reactie