Script MikroTik: Notificación de exceso de ancho de banda

Este script MikroTik enviará una notificación cuando se exceda el ancho de banda en la interfaz (superando la velocidad de descarga o carga). El script enviará un correo electrónico o un mensaje de Telegram, pero puede programar la ejecución de otros eventos.

Notificación por correo electrónico de límite de velocidad excedido
Correo electrónico de ejemplo

Es posible que tenga mucho ancho de banda de Internet, pero incluso con las políticas de control de tráfico configuradas, el ancho de banda puede estar agotado. Utilice la secuencia de comandos Bandwidth Exceeded para determinar la causa del problema a tiempo configurando el activador en 85% de ancho de banda.

El script es de diagnóstico, notificar problemas con el agotamiento del ancho del canal de comunicación, no es necesario ejecutarlo con alta frecuencia.

Contenido

  1. Descripción del guión
  2. Crear disparador
  3. Crear guion
  4. Código de secuencia de comandos
  5. Solucionar problemas

Artículo en otros idiomas:
?? – MikroTik script: Bandwidth excess notification
?? – MikroTik скрипт: Уведомление о превышении полосы пропускания
?? – Script MikroTik: Notification d’excès de bande passante
?? – MikroTik-Script: Benachrichtigung über Bandbreite Überschritten
?? – MikroTik-script: Melding van overmatige bandbreedte

Descripción del guión

El script usa las funciones:

Mensaje de telegrama: notificación de superación del límite de velocidad
Ejemplo de mensaje de telegrama

El script usa el disparador configurado en Traffic Monitor, donde especificamos la interfaz y el tráfico que excede el umbral.

El disparador se activa cada vez que se excede el umbral y puede generar una gran cantidad de notificaciones, por lo que el script controla la frecuencia con la que se envían las notificaciones. El script enviará una notificación cuando se exceda el valor de umbral, si la notificación aún no se ha enviado durante el período de tiempo especificado (NotifyPeriod).

Especificar valores en el script

  • NotifyPeriod – intervalo para enviar notificaciones;
  • Interface – comprobar la interfaz (especificar el valor del activador de Traffic Monitor);
  • Threshold – umbral de respuesta del disparador (especificar el valor del disparador de Traffic Monitor).

Crear disparador

In the example, the name of the Internet connection interface is MyInternetProvider, the full bandwidth is 40 Mbits/s, the notification when the threshold value is exceeded (above ) is 30 Mbits/s (30M).

En el ejemplo, el nombre de la interfaz de conexión a Internet es MyInternetProvider, el ancho de banda completo es 40 Mbits/s, la notificación cuando se excede el valor umbral (above) es 30 Mbits/s (30M).

[Tools] -> [Traffic Monitor] -> [+] -> [Name=MyISP, Interface=MyInternetProvider, Traffic=received, Trigger=above, Threshold=30M, OnEvents=/system script run TrafficMonitorExtIntefaceNotify;]
Crear disparador en Traffic Monitor
Creación de disparadores en Traffic Monitor

Crear guion

Se requieren los siguientes permisos para ejecutar el script: read, write, test, policy.

[System] -> [Scripts] -> [+] -> [Name: TrafficMonitorExtIntefaceNotify] -> [Policy: read, write, test, policy]
Script MikroTik: Notificación de exceso de ancho de banda
Notificación de script sobre la carga de tráfico

Código de secuencia de comandos

# Name: BandwidthExceededNotification v1
# Description: Bandwidth Exceeded Notification
# Author: Yun Sergey, MHelp.pro 2020
# License: GPL-3.0 License
# Description, purpose and questions: https://mhelp.pro/mikrotik-script-bandwidth-excess-notification/
# More scripts Mikrotik: https://mhelp.pro/tag/mikrotik-scripts/

:local NotifyPeriod [:totime "00:05:00"];
:local Interface "MyInternetProvider";
:local Threshold "30M";

:local DeviceName [/system identity get name];
:local Time [/system clock get time];
:local Date [/system clock get date];
:global TMonExtIntefaceNotifyLastTime;
:local CurrentTime [/system clock get time];
:local TimeShift ($CurrentTime - $TMonExtIntefaceNotifyLastTime);

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

:if ($TimeShift > $NotifyPeriod) do={

    #:log info "Script BandwidthExceededNotification - Bandwidth excess, send message.";

    :local EmailMessageText "Interface: $Interface - bandwidth exceeded ($Threshold). See Traffic Monitor";
    :local TelegramMessageText "Interface: $Interface - bandwidth exceeded ($Threshold). See Traffic Monitor";

    # START SEND EMAIL
    :local SendTo "notify@mhelp.pro";
    :local Subject "\F0\9F\93\88 Bandwidth Exceeded: $DeviceName [$Date $Time]";
    :local MessageText "$EmailMessageText";
    :local FileName "";
    :local SendEmail [:parse [/system script get EMailSendMessageFunction source]];
    $SendEmail SendTo=$SendTo TextMail=$MessageText Subject=$Subject FileName=$FileName;
    # END SEND EMAIL

    # START SEND TELEGRAM
    :local MessageText "\F0\9F\93\88 <b>$DeviceName: Bandwidth Exceeded</b> %0D%0A $TelegramMessageText";
    :local SendTelegramMessage [:parse [/system script  get TGBotSendMessageFunction source]];
    $SendTelegramMessage MessageText=$MessageText;
    # END SEND TELEGRAM

    :set TMonExtIntefaceNotifyLastTime $CurrentTime;
};
#:log info "Script BandwidthExceededNotification - end.";

Solucionar problemas

El script no funciona al inicio

Verifique los derechos de ejecución del script, deben corresponder a los especificados en el artículo (se notó un error en ROS 6.47.8 – los derechos máximos establecidos por defecto pueden causar un error de acceso).

Diagnóstico del guión

Quite el comentario de las líneas :log info (elimine el # al principio de la línea).

  1. «Script BandwidthExceededNotification – start.» – el script se lanzó con éxito;
  2. «Script BandwidthExceededNotification – Bandwidth excess, send message.» – limitación detectada, plazo de notificación vencido, envío de notificaciones;
  3. «Script BandwidthExceededNotification – end.» – trabajo de guión completado con éxito.

Si recibe los mensajes 1 y 3, el script está funcionando bien, el intervalo de notificación no ha expirado.

Si recibe las notificaciones 1 y 2, pero no recibe 3, hay un problema con el texto del mensaje enviado (el uso de caracteres especiales en el nombre del dispositivo o el texto del mensaje).


? Secuencia de comandos MikroTik: notificación de ancho de banda excedido (velocidad de descarga, velocidad de carga), discutido en este artículo. Espero que controlar el uso del canal de Internet le ayude a mejorar el rendimiento de sus dispositivos MikroTik. Sin embargo, si tiene algún problema durante la configuración, no dude en escribir en los comentarios. Trataré de ayudar.

✅ El guión está verificado: MikroTik hAP ac lite (RouterBOARD 952Ui-5ac2nD), RouterOS 6.48 (stable).

4 comentarios en «Script MikroTik: Notificación de exceso de ancho de banda»

  1. Hola,
    Estaba revisando su sitio web en http://www.mhelp.pro   y encontré una publicación útil https://mhelp.pro/es/como-borrar-la-cache-de-un-sitio-o-una-pagina-especifica/ . Puedo escribir de la misma forma un artículo informativo junto con la url, lo que agregará un valor significativo para su audiencia (visitantes). YO TAMBIÉN LE PAGARÉ por publicar este contenido en su sitio web.
    Por favor, hágame saber las opciones posibles y los precios.
    Saludos
    anto desouza

    Responder
  2. Hola mira tengo problemas para crear este bot no tendrás un paso a paso desde la integración con telegram y hacer el scripts, yo no e podido incluso viendo tus scripts de la integración de solo telegram y mikrotik

    Responder

Deja un comentario