MikroTik-script: Melding van overmatige bandbreedte

Dit MikroTik-script stuurt een melding wanneer de bandbreedte op de interface wordt overschreden (overschrijding van de download- of uploadsnelheid). Het script stuurt een e-mail of Telegram-bericht, maar u kunt plannen dat andere evenementen worden uitgevoerd.

E-mail melding over snelheidslimiet overschreden
Voorbeeld e-mail

Mogelijk hebt u veel internetbandbreedte, maar zelfs als het verkeersregelingsbeleid is geconfigureerd, kan de bandbreedte uitgeput raken. Gebruik het Bandwidth Exceeded-script om de oorzaak van het probleem tijdig te achterhalen door de trigger in te stellen op 85% bandbreedte.

Het script is diagnostisch en informeert over de uitputting van de communicatiekanaalbreedte, het is vaak niet nodig om het uit te voeren.

Inhoud

  1. Script beschrijving
  2. Creëer een trigger
  3. Maak een script
  4. Script code
  5. Problemen oplossen

Artikel in andere talen:
?? – 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: Benachrichtigung über Bandbreite Überschritten

Script beschrijving

Het script gebruikt de functies:

Telegram Bericht - melding van overschrijding van de maximumsnelheid
Voorbeeld van een Telegram-bericht

Het script gebruikt de geconfigureerde trigger in Traffic Monitor, waar we de interface specificeren en het verkeer dat de drempel overschrijdt.

De trigger wordt geactiveerd elke keer dat de drempel wordt overschreden en kan een groot aantal meldingen genereren, dus het script bepaalt hoe vaak meldingen worden verzonden. Het script stuurt een notificatie wanneer de drempelwaarde wordt overschreden, als de notificatie nog niet is verzonden gedurende de opgegeven periode (NotifyPeriod).

Geef waarden op in het script:

  • NotifyPeriod – interval voor het verzenden van meldingen;
  • Interface – controleer interface (specificeer waarde van Traffic Monitor-trigger);
  • Threshold – trigger respons drempel (specificeer waarde van Traffic Monitor trigger).

Creëer een trigger

In het voorbeeld is de naam van de internetverbindingsinterface MyInternetProvider, de volledige bandbreedte is 40 Mbits/s, de melding bij overschrijding van de drempelwaarde (above) is 30 Mbits/s (30M).

[Tools] -> [Traffic Monitor] -> [+] -> [Name=MyISP, Interface=MyInternetProvider, Traffic=received, Trigger=above, Threshold=30M, OnEvents=/system script run TrafficMonitorExtIntefaceNotify;]
Maak een trigger in Traffic Monitor
Trigger maken in Traffic Monitor

Maak een script

De volgende machtigingen zijn vereist om het script uit te voeren: read, write, test, policy.

[System] -> [Scripts] -> [+] -> [Name: TrafficMonitorExtIntefaceNotify] -> [Policy: read, write, test, policy]
MikroTik-script: Melding van overmatige bandbreedte
Scriptmelding over de verkeersbelasting

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

Problemen oplossen

Het script werkt niet bij het opstarten

Controleer de startrechten voor het script, deze moeten overeenkomen met de rechten die in het artikel zijn gespecificeerd (een fout werd opgemerkt in ROS 6.47.8 – de maximale rechten die standaard zijn ingesteld, kunnen een toegangsfout veroorzaken).

Diagnostiek van het script

Uncomment de regels :log info (verwijder de # aan het begin van de regel).

  1. Script BandwidthExceededNotification – start.” – het script is met succes gestart;
  2. Script BandwidthExceededNotification – Bandwidth excess, send message.” – beperking gedetecteerd, meldingsperiode verstreken, meldingen verzonden;
  3. Script BandwidthExceededNotification – end.” – scriptwerk succesvol voltooid.

Als u berichten 1 en 3 ontvangt, werkt het script prima, het meldingsinterval is niet verstreken.

Als u meldingen 1 en 2 hebt ontvangen, maar geen 3, is er een probleem met de tekst van het verzonden bericht (het gebruik van speciale tekens in de apparaatnaam of de tekst van het bericht).


? MikroTik-script – bandbreedte overschreden (downloadsnelheid, uploadsnelheid) melding, besproken in dit artikel. Ik hoop dat het beheren van het internetkanaal u zal helpen de prestaties van uw MikroTik-apparaten te verbeteren. Als u echter problemen ondervindt bij het instellen, kunt u dit in de opmerkingen schrijven. Ik zal proberen te helpen.

✅ Het script is geverifieerd: MikroTik hAP ac lite (RouterBOARD 952Ui-5ac2nD), RouterOS 6.48 (stable).

Plaats een reactie