MikroTik-Script: Benachrichtigung über Bandbreite Überschritten

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.

Geschwindigkeitsbegrenzung überschritten E-Mail-Benachrichtigung
Beispiel E-Mail

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

  1. Skript beschreibung
  2. Trigger erstellen
  3. Skript erstellen
  4. Skript code
  5. Probleme beheben

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:

Telegram nachricht - Benachrichtigung über das Überschreiten des Tempolimits
Beispiel für eine Telegram nachricht

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;]
Erstellen Sie einen Trigger in Traffic Monitor
Triggererstellung in Traffic Monitor

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]
MikroTik-Script: Benachrichtigung über Bandbreite Überschritten
Skript Benachrichtigung über die Verkehrslast

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).

  1. Script BandwidthExceededNotification – start.“ – Das Skript wurde erfolgreich gestartet;
  2. Script BandwidthExceededNotification – Bandwidth excess, send message.“ – Einschränkung erkannt, Benachrichtigungszeitraum abgelaufen, Benachrichtigung Versand;
  3. 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).

📒 Wenn Sie Materialien von der Seite kopieren, müssen Sie den Autor (Yun Sergey) und einen Hyperlink zur Quelle (MHelp.pro) angeben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.