MikroTik Scripts: Notificación de sobrecalentamiento del dispositivo

Notificación cuando la temperatura del dispositivo supera el umbral. Envía notificación por correo electrónico o mensaje de Telegram.

El script envía la temperatura del dispositivo MikroTik y la carga de la CPU. Si la temperatura del dispositivo ha superado el valor de umbral y la carga del procesador del dispositivo es mínima, puede haber un problema en el entorno externo (por ejemplo, la falla de un aire acondicionado en una sala de servidores).

Ejemplo de correo electrónico sobre el sobrecalentamiento del dispositivo MikroTik. Obtenga la temperatura del dispositivo y la carga de la CPU
Ejemplo de correo electrónico sobre el sobrecalentamiento del dispositivo MikroTik

Funciones utilizadas:

El script MikroTik es adecuado para dispositivos equipados con un sensor de temperatura. Probado en Mikrotik RB3011UiAS-RM, RouterOS 6.46.4 (estable).

El valor seguro de la temperatura de la CPU será diferente para cada modelo de dispositivos MikroTik, establezca el valor de la temperatura de activación del script (MaxCPUTemp) según el modelo de su dispositivo (consulte la especificación).

Artículo en otros idiomas:
?? – MikroTik Scripts: Device overheating notification
?? – MikroTik Скрипты: Уведомление о перегреве устройства
?? – Scripts MikroTik: Notification de surchauffe de l’appareil
?? – MikroTik-Scripts: Benachrichtigung über Überhitzung des Geräts
?? – MikroTik-scripts: Melding over oververhitting van het apparaat

Crear guión

El parámetro MaxCPUTemp es el umbral de temperatura del dispositivo, después del cual se enviará una notificación.

El script de verificación de temperatura del dispositivo requiere los siguientes permisos: read, write, test, policy.

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

Código de secuencia de comandos:

# 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.";
Notificación de sobrecalentamiento del dispositivo de script MikroTik

Agregar secuencia de comandos al programador

Para ejecutar el script para verificar la temperatura del dispositivo MikroTik, se requieren permisos: read, write, test, policy.

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

O ingrese en una terminal:

/system scheduler add name=CheckDeviceOverheating policy=read,write,policy,test on-event="/system script run DeviceOverheatingScript" interval=1m comment="Checking device overheating"
Agregue un script para verificar el sobrecalentamiento del dispositivo a la programación

Ahora puede aumentar el control sobre su dispositivo monitoreando un parámetro importante: ¡la temperatura del dispositivo!


? En este artículo se ha discutido cómo crear un script para verificar el sobrecalentamiento de un dispositivo MikroTik y enviar una notificación a un correo electrónico o mensaje de Telegram. Espero que ahora pueda recibir una notificación sobre el sobrecalentamiento del dispositivo MikroTik y la carga de la CPU a tiempo. Sin embargo, si tiene algún problema al configurar el script, no dude en escribir en los comentarios. Trataré de ayudar.

Deja un comentario