Guten Tag an alle!
Dieses Mal habe ich beschlossen, die Situation zu beschreiben, die im Internet nicht besonders beschrieben zu sein scheint, obwohl es einige Hinweise darauf gibt, aber das meiste davon ging nur auf ein langes methodisches Ausgraben des Codes und des Wikis von Mikrotik selbst zurück.
Eigentlich die Aufgabe: Die Verwendung der SMS-Steuerung mehrerer Geräte am Beispiel des Ein- und Ausschaltens von Ports zu implementieren.
Es gibt:
- Minor Router CRS317-1G-16S +
- Zugangspunkt Mikrotik NETMETAL 5
- LTE-Modem R11e-LTE
Der wunderbare Netmetal 5 Access Point verfügt zunächst über einen Lötanschluss für eine SIM-Karte und einen Anschluss für die Installation eines LTE-Modems. Daher wurde für diesen Punkt tatsächlich das beste Modem von dem gekauft, was verfügbar war und vom Betriebssystem des Punktes selbst unterstützt wurde, nämlich R11e-LTE. Der Punkt wurde zerlegt, alles wurde eingerichtet (obwohl Sie wissen müssen, dass sich die SIM-Karte unter dem Modem befindet und es nicht möglich ist, sie zu erhalten, ohne die Hauptplatine zu entfernen). Überprüfen Sie daher die SIM-Karte auf Funktion, da Sie den Zugangspunkt sonst mehrmals zerlegen müssen.
Dann bohrten wir ein paar Löcher in das Gehäuse, installierten 2 Pigtails und befestigten die Enden am Modem. Leider ist das Foto des Prozesses nicht erhalten geblieben. Andererseits wurden Universalantennen mit einer Magnetbasis an den Pigtails angebracht.
Die Hauptkonfigurationsschritte sind im Internet recht gut beschrieben, mit Ausnahme kleiner Interaktionsstaus. Beispielsweise empfängt das Modem keine SMS-Nachrichten mehr, wenn 5 Teile aus dem Posteingang stammen. Das Löschen von Nachrichten und der Neustart des Modems lösen das Problem nicht immer. In Version 6.44.1 arbeitet der Empfang jedoch stabiler. Der Posteingang zeigt die letzten 4 SMS an, der Rest wird automatisch gelöscht und das Leben stört nicht.
Das Hauptziel des Experiments ist das Löschen und Erhöhen von Schnittstellen auf zwei Routern in einem physischen Netzwerk. Die Hauptschwierigkeit bestand darin, dass Mikrotik die Verwaltung über SNMP nicht unterstützt, sondern nur das Lesen von Werten ermöglicht. Deshalb musste ich in die andere Richtung graben, nämlich die Mikrotik API.
Es gibt keine klare Dokumentation zur Verwaltung, daher musste ich experimentieren und diese Anweisung wurde für zukünftige Versuche erstellt.
Um mehrere Geräte zu verwalten, benötigen Sie einen zugänglichen und funktionierenden WEB-Server im lokalen Netzwerk. Sie müssen ihn mit Mikrotik-Befehlen verwalten.
1. In Netmetal 5 müssen Sie einige Skripte erstellen, um sie ein- und auszuschalten
system script add dont-require-permissions=no name=disableiface owner=admin policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\ "/tool fetch http://WEB_SERVER_IP/di.php " add dont-require-permissions=no name=enableiface owner=admin policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\ "/tool fetch http://WEB_SERVER_IP/en.php "
2. Erstellen Sie 2 Skripte auf dem Webserver (in diesem Fall muss natürlich PHP auf dem System installiert sein):
<?php
<?php
3. Laden Sie aus dem Forum Mikrotik routeros_api.class.php herunter und legen Sie es in einem zugänglichen Verzeichnis auf dem Server ab.
Anstelle von sfp-sfpplus16 müssen Sie den Namen der getrennten / enthaltenen Schnittstelle angeben.
Jetzt beim Senden einer Nachricht an eine Nummer im Formular
:cmd script enableiface :cmd script disableiface
NETMETAL führt das entsprechende Skript aus und führt den Befehl auf dem WEB-Server aus.
Die Betriebsgeschwindigkeit beim Empfang von SMS-Bruchteilen einer Sekunde. Es funktioniert stabil.
Darüber hinaus besteht die Möglichkeit, SMS über das Zabbix-Überwachungssystem an Telefone zu senden und eine Backup-Internetverbindung zu öffnen, wenn die Optik ausfällt. Vielleicht würde dies den Rahmen dieses Artikels sprengen, aber ich werde sofort sagen, dass ihre Länge beim Senden von SMS in die Standardgröße einer Nachricht passen sollte, weil Mikrotik unterteilt sie nicht in Teile, und wenn eine lange Nachricht eintrifft, wird sie einfach nicht gesendet. Außerdem müssen Sie die an Nachrichten gesendeten Zeichen filtern, da sonst keine SMS gesendet werden.
PS Ich ergänze jetzt die Pfosten in früheren Versionen von RouterOS, die es gab, und wie man damit umgeht.
1. Die maximale Länge der Nachricht und die in den Nachrichten verwendeten Zeichen sind begrenzt, daher musste ich auf Zabbix-Ebene kämpfen, um die Vorlage für das Senden von Nachrichten zu korrigieren, sodass kurz gesagt klar war, worum es in der Nachricht ging.
Einstellungen - Aktionen - Bericht an SMS - Operationen - Betreff: Problem: {HOST.NAME} {TRIGGER.NAME}
Und zur Wiederherstellung Bericht an SMS - Wiederherstellungsvorgänge Betreff: Gelöst: {HOST.NAME} {TRIGGER.NAME}
2. Zusätzlich verkürzt das Skript selbst, das Daten an das Modem sendet, die maximale Länge der gesendeten Nachricht, weil Wenn es zu lang ist, wird die Nachricht nicht gesendet.
PHP-Skript sendet Daten
<?php require('/usr/lib/zabbix/alertscripts/routeros_api.class.php'); $API = new RouterosAPI(); $API->debug=true; if ($API->connect('IP ', ' ', ' ')) { $API->comm("/tool/sms/send", array( "port"=>"lte1", "phone-number"=>$argv[1], "message"=>$argv[2],)); } $API->disconnect(); echo $argv[1]; echo $argv[2]; ?>
3. Reinigen des Posteingangs für RouterOS <6.44
System-Sheduler
/system scheduler
add disabled=yes interval=1m name=removeSMS on-event="/system script run 7" \
policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
start-date=nov/01/2018 start-time=19:32:00
Wenn das folgende Skript eine andere Seriennummer hat, müssen Sie im Scheduler Lauf 7 in die entsprechende Nummer ändern
Systemskript
/system script
add dont-require-permissions=no name=removeSMS owner=admin policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\
tool sms inbox remove 0\r\
\n/delay 1\r\
\n/tool sms inbox remove 0\r\
\n/delay 1\r\
\n/tool sms inbox remove 0\r\
\n/delay 1\r\
\n/tool sms inbox remove 0\r\
\n/delay 1\r\
\n/tool sms inbox remove 0\r\
\n/delay 1\r\
\n/tool sms inbox remove 0\r\
\n/delay 1\r\
\n/tool sms inbox remove 0\r\
\n/delay 1\r\
\n/tool sms inbox remove 0\r\
\n/delay 1\r\
\n"
Skript mit Seriennummer 7
4. In Versionen unter 6.38 half es, das Modem auch mit integrierten Skripten und einem Scheduler neu zu starten
/system script
add dont-require-permissions=no name=rebootLTE owner=admin policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\
interface lte disable 0\r\
\ndelay 10\r\
\n/interface lte enable 0\r\
\n/tool sms set receive-enabled=false\r\
\ndelay 10\r\
\n/tool sms set receive-enabled=true\r\
\n"
5. Und ein wenig über das Auffüllen von Teams. Um eine SMS zu senden, ist es zulässig, auf einem Host mit Zabbix zu sagen, dass eine RSC-Datei generiert werden soll, und diese dann mit einem Skript an FTP auf Mikrotik zu senden. Im Modem selbst werden die Befehle vom Skript im Scheduler ausgeführt, um die erforderliche Datei auszuführen. Es schien mir jedoch bequemer, den obigen Mechanismus zu verwenden.
Im Falle eines solchen Sendens ist der generierte Code recht einfach.
/tool sms send lte1 +7926xxxxxxx message "Problem: High ICMP ping response time Problem started at 17:08:04 on 2018.07.10 Problem name: High ICMP ping response time Host: Netgear7212 Severity: Warning Original problem ID: 5403803"
In diesem Beispiel wurden zusätzliche Zeichen bereits entfernt und die Länge ist unbegrenzt. Das Skript, das den Start nach dem Training nach dieser Methode verarbeitet, sollte eine leere RSC-Datei in die vorhandene Mikrotik-Datei kopieren.
Diese Methode hat mir nicht gefallen, da es grundsätzlich keinen Schutz vor Störungen gibt und unkontrollierte nicht gesendete Nachrichten möglich sind.
In der Version von RouterOS 6.44.1 wurden die Probleme des Überlaufs eingehender eingehender Geräte bereits behoben, sodass Sie nicht auf kollektive Reinigungsmethoden für landwirtschaftliche Betriebe zurückgreifen können