Dieses MikroTik-Skript sendet eine Benachrichtigung, wenn die Bandbreite auf der Schnittstelle überschritten wird (Überschreitung der Download- oder Upload-Geschwindigkeit). Das Skript sendet eine E-Mail oder eine Telegram nachricht, Sie können jedoch auch andere auszuführende Ereignisse planen.
Möglicherweise verfügen Sie über eine große Internetbandbreite, aber selbst wenn die Richtlinien zur Verkehrssteuerung konfiguriert sind, ist die Bandbreite möglicherweise erschöpft.Ermitteln Sie die Ursache des Problems rechtzeitig mithilfe des Bandbreite Überschritten Skripts, indem Sie den Auslöser auf 85% der Bandbreite setzen.
Das Skript ist diagnostisch und benachrichtigt über Probleme mit mangelnder Kommunikationsbandbreite. Ein häufiger Start ist nicht erforderlich.
Inhalt
Artikel in anderen Sprachen:
🇺🇸 – MikroTik script: Bandwidth excess notification
🇪🇸 – Script MikroTik: Notificación de exceso de ancho de banda
🇷🇺 – MikroTik скрипт: Уведомление о превышении полосы пропускания
🇫🇷 – Script MikroTik: Notification d’excès de bande passante
🇳🇱 – MikroTik-script: Melding van overmatige bandbreedte
Skript beschreibung
Das Skript verwendet die folgenden Funktionen:
Das Skript verwendet den konfigurierten Trigger in Traffic Monitor, in dem die Schnittstelle und der Datenverkehr den Schwellenwert überschreiten.
Der Trigger wird jedes Mal ausgelöst, wenn der Schwellenwert überschritten wird, und kann eine große Anzahl von Benachrichtigungen generieren. Das Skript steuert daher, wie oft Benachrichtigungen gesendet werden. Das Skript sendet eine Benachrichtigung, wenn der Schwellenwert überschritten wird, wenn die Benachrichtigung für den angegebenen Zeitraum noch nicht gesendet wurde (NotifyPeriod).
Geben Sie Werte im Skript an:
- NotifyPeriod – Intervall zum Senden von Benachrichtigungen;
- Interface – Schnittstelle überprüfen (Wert vom Traffic Monitor-Trigger angeben);
- Threshold – Trigger-Antwortschwelle (Wert vom Traffic Monitor-Trigger angeben).
Trigger erstellen
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).
Im Beispiel lautet der Name der Internetverbindungsschnittstelle MyInternetProvider, die volle Bandbreite beträgt 40 Mbit/s, und die Benachrichtigung bei Überschreitung des Schwellenwerts (above) beträgt 30 Mbit/s (30M).
[Tools] -> [Traffic Monitor] -> [+] -> [Name=MyISP, Interface=MyInternetProvider, Traffic=received, Trigger=above, Threshold=30M, OnEvents=/system script run TrafficMonitorExtIntefaceNotify;]
Skript erstellen
Die folgenden Berechtigungen sind erforderlich, um das Skript ausführen: read, write, test, policy.
[System] -> [Scripts] -> [+] -> [Name: TrafficMonitorExtIntefaceNotify] -> [Policy: read, write, test, policy]
Skript code
# 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.";
Probleme beheben
Das Skript funktioniert beim Start nicht
Check the script launch rights, they must correspond to those specified in the article (an error was noticed in ROS 6.47.8 – the maximum rights set by default may cause an access error).
Diagnose des Skripts
Kommentieren Sie die Zeilen : log info aus (entfernen Sie das # am Zeilenanfang).
- „Script BandwidthExceededNotification – start.“ – Das Skript wurde erfolgreich gestartet;
- „Script BandwidthExceededNotification – Bandwidth excess, send message.“ – Einschränkung erkannt, Benachrichtigungszeitraum abgelaufen, Benachrichtigung Versand;
- „Script BandwidthExceededNotification – end.“ – Skriptarbeit erfolgreich abgeschlossen.
Wenn Sie die Nachrichten 1 und 3 erhalten, funktioniert das Skript einwandfrei und das Benachrichtigungsintervall ist nicht abgelaufen.
Wenn Sie die Benachrichtigungen 1 und 2 erhalten haben, aber nicht 3, liegt ein Problem mit dem Text der gesendeten Nachricht vor (Verwendung von Sonderzeichen im Gerätenamen oder im Text der Nachricht).
🟢 MikroTik-Script – Benachrichtigung über Bandbreite überschritten (Download-Geschwindigkeit, Upload-Geschwindigkeit), in diesem Artikel diskutiert. Ich hoffe, dass Sie durch die Steuerung der Nutzung des Internetkanals die Leistung Ihrer MikroTik-Geräte verbessern können. Wenn Sie jedoch beim Einrichten auf Probleme stoßen, können Sie diese gerne in die Kommentare eintragen. Ich werde versuchen zu helfen.
✅ Das Skript wird überprüft: MikroTik hAP ac lite (RouterBOARD 952Ui-5ac2nD), RouterOS 6.48 (stable).