Script MikroTik: Notification d’excès de bande passante

Ce script MikroTik enverra une notification lorsque la bande passante est dépassée sur l’interface (dépassant la vitesse de téléchargement ou de téléchargement). Le script enverra un e-mail ou un message Telegram, mais vous pouvez planifier l’exécution d’autres événements.

Notification par e-mail du dépassement de la limite de vitesse
Exemple d’e-mail

Vous pouvez avoir beaucoup de bande passante Internet, mais même avec des stratégies de contrôle du trafic configurées, la bande passante peut être épuisée. Détecter la source du problème en temps opportun à l’aide du script de dépassement de bande passante, en définissant le déclencheur sur 85% de la bande passante.

Le script est un diagnostic, notifiant des problèmes d’épuisement de la largeur du canal de communication, il n’est pas nécessaire de l’exécuter à haute fréquence.

Contenu

  1. Description du script
  2. Créer un déclencheur
  3. Créer un script
  4. Code de script
  5. Résolution des problèmes

Article dans d’autres langues:
?? – MikroTik script: Bandwidth excess notification
?? – Script MikroTik: Notificación de exceso de ancho de banda
?? – MikroTik скрипт: Уведомление о превышении полосы пропускания
?? – MikroTik-Script: Benachrichtigung über Bandbreite Überschritten
?? – MikroTik-script: Melding van overmatige bandbreedte

Description du script

Le script utilise les fonctions:

Message télégramme - notification de dépassement de la limite de vitesse
Exemple de message de Telegram

Le script utilise le déclencheur configuré dans Traffic Monitor, où nous spécifions l’interface et le trafic dépassant le seuil.

Le déclencheur se déclenche chaque fois que le seuil est dépassé et peut générer un grand nombre de notifications, de sorte que le script contrôle la fréquence à laquelle les notifications sont envoyées. Le script enverra une notification lorsque la valeur de seuil est dépassée, si la notification n’a pas encore été envoyée pendant la période spécifiée (NotifyPeriod).

Spécifiez les valeurs dans le script:

  • NotifyPeriod – intervalle d’envoi des notifications;
  • Interface – vérifier l’interface (spécifier la valeur du déclencheur de Traffic Monitor);
  • Threshold – seuil de réponse de déclenchement (spécifiez la valeur du déclencheur de Traffic Monitor).

Créer un déclencheur

Dans l’exemple, le nom de l’interface de connexion Internet est MyInternetProvider, la bande passante complète est de 40 Mbits/s, la notification lorsque la valeur de seuil est dépassée (above) est de 30 Mbits/s (30M).

[Tools] -> [Traffic Monitor] -> [+] -> [Name=MyISP, Interface=MyInternetProvider, Traffic=received, Trigger=above, Threshold=30M, OnEvents=/system script run TrafficMonitorExtIntefaceNotify;]
Créer un déclencheur dans Traffic Monitor
Création de déclencheurs dans Traffic Monitor

Créer un script

Les autorisations suivantes sont requises pour exécuter le script: read, write, test, policy.

[System] -> [Scripts] -> [+] -> [Name: TrafficMonitorExtIntefaceNotify] -> [Policy: read, write, test, policy]
Script MikroTik: notification d'excès de bande passante
Notification de script sur la charge du trafic

Code de script

# 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.";

Résolution des problèmes

Le script ne fonctionne pas au démarrage

Vérifiez les droits de lancement du script, ils doivent correspondre à ceux spécifiés dans l’article (une erreur a été constatée dans ROS 6.47.8 – les droits maximum définis par défaut peuvent provoquer une erreur d’accès).

Diagnostics du script

Uncomment the lines :log info (remove the # at the beginning of the line).

Décommenter les lignes :log info (supprimer le # au début de la ligne).

  1. « Script BandwidthExceededNotification – start. » – le script a été lancé avec succès;
  2. « Script BandwidthExceededNotification – Bandwidth excess, send message. » -limitation détectée, délai de notification expiré, envoi de notifications;
  3. « Script BandwidthExceededNotification – end. » – travail de script terminé avec succès.

Si vous recevez les messages 1 et 3, le script fonctionne correctement, l’intervalle de notification n’a pas expiré.

Si vous avez reçu les notifications 1 et 2, mais que vous n’en avez pas reçu 3, il y a un problème avec le texte du message envoyé (l’utilisation de caractères spéciaux dans le nom de l’appareil ou le texte du message).


? Script MikroTik – notification de bande passante dépassée (vitesse de téléchargement, vitesse de téléchargement), discuté dans cet article. J’espère que contrôler l’utilisation du canal Internet vous aidera à améliorer les performances de vos appareils MikroTik. Cependant, si vous rencontrez des problèmes lors de la configuration, n’hésitez pas à écrire dans les commentaires. J’essaierai d’aider.

✅ Le script est vérifié: MikroTik hAP ac lite (RouterBOARD 952Ui-5ac2nD), RouterOS 6.48 (stable).

1 réflexion au sujet de « Script MikroTik: Notification d’excès de bande passante »

  1. Salut MHelp Pro

    Merci, pour ces tutoriels riches en MikroTik.

    Je cherche des tutos sur les filtrages par adresse mac, c’est-à-dire possibilité de donner accès aux ressources qu’aux ordinateurs dont les adresses mac sont connues, les autres seront refusés.
    Puis-j’avoir un tel tuto?

    Merci de votre assistance

    Répondre

Laisser un commentaire