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.
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
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:
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 script
Les autorisations suivantes sont requises pour exécuter le script: read, write, test, policy.
[System] -> [Scripts] -> [+] -> [Name: TrafficMonitorExtIntefaceNotify] -> [Policy: read, write, test, policy]
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).
- « Script BandwidthExceededNotification – start. » – le script a été lancé avec succès;
- « Script BandwidthExceededNotification – Bandwidth excess, send message. » -limitation détectée, délai de notification expiré, envoi de notifications;
- « 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).
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