Wir werden uns weiterhin mit den wichtigsten Fragen der Integration mit externen Diensten befassen.
Teil Zwei Integration mit Zabbix
Im zweiten Teil der Geschichte über die Integration von mattermost werden wir über das Senden von Unfallberichten von zabbix an mattermost sprechen. Als Ergebnis von Suchanfragen im Internet,
dieses Skript . Der Code ist in Perl geschrieben, daher müssen Sie möglicherweise Pearl-Pakete installieren. Bevor wir mit der Beschreibung des Codes fortfahren (er ist geringfügig gegenüber der ursprünglichen geändert), nehmen wir zunächst wie üblich einige Einstellungen vor.
Das Wichtigste
Um den Mechanismus zum Empfangen von Nachrichten von Diensten von Drittanbietern zu verwenden, müssen Sie eine Aufzeichnung eingehender "Hooks" hinzufügen. Wir gehen zu den Einstellungen "Integrationen" -> "Eingehende Webhooks" und fügen den Eintrag hinzu:

Kopieren Sie anschließend den unterstrichenen Link, um ihn in das Skript einzufügen.

Zabbix
Fügen Sie in der zabbix-Verwaltungsoberfläche über das Menü "Administration" -> "Benachrichtigungsmethoden" eine neue Benachrichtigungsmethode hinzu:

Wo im Skript sollten Parameter angegeben werden:
- {ALERT.SENDTO}
- Link zum wichtigsten Webhook (der zuvor kopiert wurde)
- Benutzername, von dem aus die Nachrichten kommen
- Link zum Avatar (Datei muss über http zugänglich sein)
- {ALERT.MESSAGE}
Fügen Sie dann in den Benutzereinstellungen eine neue Benachrichtigungsmethode hinzu:

Wenn Sie im Feld "Senden an" den Namen des Kanals angeben müssen, in dem die Nachrichten gestreamt werden, in unserem Fall "es" (es ist zu beachten, dass der Systemname des Kanals verwendet wird). Dieser Wert ersetzt das Makro {ALERT.SENDTO}, das in den Parametern der neu erstellten Benachrichtigungsmethode angezeigt wird. {ALERT.MESSAGE} - Dies ist in der Tat die Nachricht selbst.
Das ursprüngliche Skript hat einige Änderungen erfahren. Dies liegt an der Tatsache, dass die verwendete Version von zabbix die Nachricht nicht an json sendet (möglicherweise ist dies irgendwo konfiguriert). Daher musste der Code geändert werden. Der Code enthält Kommentare und sollte keine Verständnisschwierigkeiten verursachen.
Erstellen Sie auf dem Server, auf dem Zabbix installiert ist, die Datei /usr/lib/zabbix/alertscripts/zabbixMatterBot.pl (ich habe Debian und zabbix aus dem offiziellen Repository installiert) mit den folgenden Inhalten:
Jetzt warten wir entweder darauf, dass der Auslöser funktioniert, oder wir simulieren einen Unfall in zabbix und erhalten eine Nachricht

Das ist die ganze Integration.