Zabbix - intelligent, flexibel, anpassbar - kann alles. Oder fast alles. Es wäre seltsam, wenn er sich nicht mit Cloud-Telefonie anfreunden könnte, insbesondere wenn diese über eine praktische HTTP-API verfügt - nutzen Sie Ihre Gesundheit. Heute werden wir zeigen, wie Zabbix für Benachrichtigungsanrufe über Voximplant konfiguriert wird, was im Notfall sehr nützlich sein kann („Es gibt keine Zeit zu erklären, Sie müssen anrufen - der Kampfserver ist gerade gefallen“).
Basierend auf dem Rahmen aus dem Film "The Matrix" (The Matrix (1999), Warner Bros.)Hinweis: Im Lernprogramm wird davon ausgegangen, dass Sie bereits über ein funktionierendes Zabbix und ein konfiguriertes Zabbix-Frontend verfügen. Die Erstinstallation von Zabbix ist nicht der Zweck dieses Artikels. Neugierige / die einen solchen Leitfaden benötigen, können sich die offizielle Dokumentation und / oder Google ansehen.
Womit wir arbeiten werden
In unserem Beispiel wird VDS mit CentOS 7 verwendet, auf dem Zabbix 4.2.6 installiert ist (die neueste stabile Version zum Zeitpunkt des Schreibens). Wir werden denselben Server überwachen, auf dem Zabbix arbeitet. Voximplant benötigt ein Konto auf der Plattform und ein Anrufbearbeitungsskript für JS. Und jetzt noch ein bisschen mehr.
Was machen wir
Keine Raketenwissenschaft, lassen Sie uns eine sehr einfache Überwachung durchführen, die auf das Erscheinungsbild der
Datei / tmp / habrTriggerFile reagiert : Wenn eine solche Datei angezeigt wird, kontaktiert Zabbix Voximplant über die HTTP-API. Ein Skript funktioniert, das die angegebene Telefonnummer anruft, z. Auf dem Server wurde eine Datei erstellt. “ und auflegen. Wenn Sie die Datei löschen / umbenennen und dann zurückgeben, wird erneut ein Anruf ausgeführt. Wenn Sie nichts tun, gibt es nur einen Anruf.
Voximplantat
Melden Sie sich in Ihrem Konto an (oder
registrieren Sie sich ) und erstellen Sie
die habr- App . Wechseln Sie in der Anwendung zur Registerkarte "Szenarien" und erstellen Sie ein
Benachrichtigungsskript mit folgendem Code:
VoxEngine.addEventListener(AppEvents.Started, () => { const call = VoxEngine.callPSTN(" ", " ") call.addEventListener(CallEvents.PlaybackFinished, () => { VoxEngine.terminate() }) call.addEventListener(CallEvents.Connected, () => { setTimeout( () => call.say(". .", Language.RU_RUSSIAN_FEMALE), 1000 ) }) })
Sie können dieses Skript mit einer HTTP-Anfrage ausführen (und müssen keine Telefonnummer kaufen). Vergessen Sie nicht,
Telefonnummern in
callPSTN zu ersetzen : Die erste ist, wen die Plattform anruft, die zweite ist callerid, die auf dem angerufenen Teilnehmer angezeigt wird. Dies kann entweder Ihre persönliche Nummer sein, die auf der Plattform überprüft wurde, oder eine zuvor bei Voximplant gekaufte Nummer (Hinweis, virtuelle Nummern können nicht verwendet werden). Das Skript ruft die Nummer auf und meldet nach der Verbindung, dass eine Datei erstellt wurde und legt auf.
Speichern Sie das Skript und wechseln Sie zur Registerkarte Routing, um eine Regel zu erstellen:
Speichern Sie die Regel und kopieren Sie ihre ID.
Als nächstes benötigen Sie API-Schlüssel. Nehmen Sie diese
in den entsprechenden Abschnitt des Hauptmenüs.
Wenn Sie die API-Schlüssel und die Regel-ID kennen, können Sie sie in die
StartScenarios- Methode unserer HTTP-API einsetzen. Sie sieht
ungefähr so aus:
https://api.voximplant.com/platform_api/StartScenarios/?account_id=1&api_key=4ed5695e-4690-448r-95e8-3f8f0001287c&rule_id=28
Wenig später verwenden wir diese Anforderung beim Einrichten der Überwachung, die bereits gestartet werden kann.
Zabbix
Geben Sie Ihr Zabbix-Frontend als Benutzer (oder Administrator) ein und klicken Sie dann im Abschnitt Konfiguration - Hosts auf Host erstellen. Schreiben Sie im Namen
localhost , geben Sie in Gruppen die
Testgruppe an und klicken Sie unten auf Hinzufügen.
In der Liste der Hosts sehen Sie nun sowohl den Standard-Zabbix-Server als auch den lokalen Host. Von hier aus werden wir weiter konfigurieren.
Die Zabbix-Überwachung basiert auf einer Kette von 3 Entitäten: Item - Trigger - Action. Alle drei Links sind obligatorisch, daher müssen Sie sie nacheinander erstellen.
Artikel
Item ist ein Datenakkumulator, und ohne Daten reagiert die Überwachung auf nichts. Um ein Element zu erstellen, klicken Sie in der Liste der Hosts rechts neben dem Namen des lokalen Hosts auf Elemente. Sie können auch auf den Hostnamen selbst klicken und auf dem sich öffnenden Bildschirm zur Registerkarte Elemente wechseln - die Essenz ist dieselbe. Klicken Sie auf der Registerkarte Elemente in der oberen rechten Ecke auf Element erstellen. Geben Sie den Namen ein -
habr Element , und klicken Sie dann neben dem Feld Schlüssel auf
Hinzufügen. Scrollen Sie nach unten. Wir benötigen den Standardschlüssel
vfs.file.exists. Wählen Sie ihn aus und er wird im Feld Schlüssel ersetzt. Ersetzen Sie die Datei durch den aktuellen Pfad. In unserem Fall
lautet der Schlüssel wie
folgt :
vfs.file.exists [/ tmp / habrTriggerFile] . Stellen Sie im Feld Aktualisierungsintervall 5s ein, damit die Überwachung schneller reagiert, wenn wir die Datei auf dem Host erstellen. Klicken Sie unten auf der Seite auf Hinzufügen und sehen Sie sofort das neue Element.
Auslöser
Trigger werten die gesammelten Daten aus und reagieren, wenn sie den angegebenen Schwellenwert erreichen - sie starten die Aktion. Wechseln Sie auf dem Bildschirm mit dem erstellten Element zur Registerkarte Auslöser:
Klicken Sie auf Trigger erstellen und nennen Sie ihn
habr-Trigger . Der Wert für das Feld Ausdruck wird bequem mit dem Konstruktor erfasst - der Schaltfläche Hinzufügen. Stellen Sie die Einstellungen wie im Screenshot ein und klicken Sie auf Einfügen:
Klicken Sie unten auf der Seite auf Hinzufügen. Fertig, der Trigger wird erstellt.
Aktion
Aktion ist eine Aktion, die einen ausgelösten Trigger auslöst. Öffnen Sie die Registerkarte Konfiguration - Aktionen und klicken Sie auf Aktion erstellen. Der Name ist plötzlich -
habr Aktion . Lassen Sie unten im Block Neue Bedingung alles als Standard und fügen Sie
habr hinzu . Infolgedessen wird der
Triggername mit habr- Bedingung erhalten. Klicken Sie auf Hinzufügen, um eine Bedingung hinzuzufügen. Sie wird sofort im Block Bedingungen angezeigt (siehe Abbildung):
Wechseln Sie hier zur Registerkarte Vorgänge, und klicken Sie im Block Vorgänge auf Neu, um eine Aktion hinzuzufügen. Wählen Sie im Operationstyp die Option Remote-Befehl aus. Der Listenblock Ziel und das Eingabefeld Befehle werden angezeigt. Klicken Sie im Block Zielliste auf Neu. Ihnen wird das Standardziel angeboten. Aktueller Host, Sie benötigen es. Klicken Sie auf Hinzufügen. Das Ziel wird in der Liste angezeigt. Fügen Sie im Eingabefeld curl + eine zuvor generierte Anforderung an Voximplant ein:
curl "https://api.voximplant.com/platform_api/StartScenarios/?account_id=1&api_key=4ed5695e-4690-448r-95e8-3f8f0001287c&rule_id=28"
Fügen Sie dann diese Aktion hinzu (Als Link hinzufügen) und klicken Sie erst dann auf die Schaltfläche Hinzufügen, um die Erstellung der Aktion abzuschließen.
Ein wichtiger Punkt: Wir haben den Typ der Remote-Befehlsaktion ausgewählt, der in der Zabbix-Agentenkonfiguration standardmäßig deaktiviert ist. Um dies zu beheben, öffnen Sie auf dem Host die Konfiguration und geben Sie für EnableRemoteCommands den Wert 1 ein:
vi /etc/zabbix/zabbix_agentd.conf // EnableRemoteCommands = 1
Starten Sie danach den Agentendienst neu:
service zabbix-agent restart
Wir starten die Aktionskette
Wechseln Sie im Zabbix-Bedienfeld zum Abschnitt Überwachung - Probleme. Bald sehen wir hier eine Warnung, dass der Auslöser funktioniert hat.
Erstellen Sie auf dem Host eine Datei:
touch /tmp/habrTriggerFile
Nach 5 Sekunden im Problemfenster wird eine neue Meldung angezeigt. PROBLEM blinkt in der Spalte Status. Wenn Sie auf das Symbol in der Spalte Aktionen klicken, werden die Details der Aktion angezeigt (der Screenshot kann angeklickt werden):
Unterwegs wird die im Voximplant-Skript angegebene Telefonnummer angerufen.
Basierend auf dem Rahmen aus dem Film "The Matrix" (The Matrix (1999), Warner Bros.)Wenn Sie die Datei umbenennen,
mv /tmp/habrTriggerFile /tmp/habrTriggerFile_
Nach 5 Sekunden wird der Status des Problems behoben.
Fertig! Sie sind großartig, weil Sie die Interaktionskette Host - Zabbix - Voximplant eingerichtet haben und nach demselben Prinzip eine beliebig komplexe Logik für Benachrichtigungsaufrufe einrichten können.