Zusammenarbeit mit mehreren Bereitschaftsteams über Zabbix und ilert
Hinweis: Dies ist eine Neuveröffentlichung des Originalartikels im Zabbix-Blog.
Dieser Beitrag zeigt, wie Sie Zabbix und iLert mit mehreren Bereitschaftsteams verwenden können, wobei jedes Team für eine Reihe von Hostgruppen in Zabbix verantwortlich ist und daher nur Benachrichtigungen für die von ihm verantworteten Dienste erhält. Aber zuerst wollen wir mit den grundlegenden Bedürfnissen beim Bereitschaftsdienst beginnen.
Die Bedürfnisse eines Bereitschaftsingenieurs
Als Wächter von Produktionsanlagen ist das grundlegendste Bedürfnis eines Bereitschaftsingenieurs die Fähigkeit, festzustellen, dass etwas defekt ist oder kurz davor steht, und eine effektive Möglichkeit, menschliche Aufmerksamkeit auf die Systeme zu lenken. Ein wesentlicher Vorteil eines Überwachungstools wie Zabbix besteht darin, dass es Ihnen ermöglicht, sich von den Systemen zu lösen, die Sie überwachen, und vom Überwachungssystem selbst. Sobald Sie die Bedingungen definiert haben, die sofortige Aufmerksamkeit eines Menschen erfordern, können Sie sich auf die passive Überwachung Ihres Netzwerks, Ihrer Hosts und Anwendungen verlassen, um sich ändernde Bedingungen zu überwachen und die richtige Person zu benachrichtigen. Während Zabbix sich im Überwachungsteil auszeichnet, überlässt es die Verantwortung, die richtigen Personen zu alarmieren, dedizierten Alarmierungslösungen durch Out-of-the-Box-Integrationen. Wie jedes Überwachungstool bietet Zabbix keine Fähigkeiten, die erforderlich sind, um Bereitschaftsingenieure zu alarmieren, wie z. B. Alarmierung per Sprachanruf, reibungslose Bestätigung von Alarmen, Verwaltung von Bereitschaftsplänen, automatische Eskalationen. Einige Organisationen senden einfach E-Mails an das gesamte Team für dringende Alarme, was oft dazu führt, dass niemand die Verantwortung übernimmt und die E-Mails ignoriert. Außerdem ist E-Mail der schlechteste Alarmierungsmechanismus und sollte niemals als primäre Alarmierungsmethode verwendet werden.
Dedizierte Alarmierungssysteme erweitern Überwachungstools um erweiterte Alarmierung und Bereitschaftsverwaltungsfunktionen. Ein Tool, das out-of-the-box mit Zabbix funktioniert, ist ilert. Es ist als Medientyp in Zabbix 5.x enthalten. Und für Zabbix 4.4+ kann es als Medientyp aus dem Zabbix GitHub-Repository importiert werden.
Was ist ilert?
ilert ist eine Alarmierungs- und Bereitschaftsverwaltungslösung für Betriebsteams und hilft Ihnen, auf Vorfälle schneller zu reagieren. Es erweitert Überwachungstools wie Zabbix durch erweiterte Alarmierung über SMS, Telefonanrufe und Push-Benachrichtigungen und ermöglicht es Ihnen, Bereitschaftsdienste mit Zeitplänen und Eskalationen zu verwalten.
Mit der Zabbix-Integration von ilert können Sie automatisch Vorfälle in ilert erstellen, basierend auf Triggern in Zabbix, und die Bereitschaftsperson durch mehrere Kanäle benachrichtigen, wie z. B. Telefonanrufe, SMS, Push-Benachrichtigungen, Slack, Microsoft Teams und mehr. Zu den Kernfunktionen von ilert gehören:
- Aktionsfähige Alarme: Sie können einen Vorfall auf dem gleichen Kanal bestätigen oder eskalieren, über den Sie den Alarm erhalten, z. B. durch Beantworten einer SMS.
- Bereitschaftspläne und automatische Eskalationen: Benachrichtigen Sie immer die richtige Person und teilen Sie die Bereitschaftsverantwortung über Ihr Team mit Bereitschaftsplänen und automatischen Eskalationen.
- Definieren von Alarmierungsregeln basierend auf Supportzeiten und Verzögerung von Alarmen bis zum Beginn der Supportzeiten.
Einrichten der Alarmierung mit mehreren Teams
Angenommen, wir haben zwei Teams, A und B, die für eine Vielzahl von Hosts und Anwendungen verantwortlich sind, die auf diesen Hosts ausgeführt werden. Wir werden alle Hosts eines Teams in Hostgruppen gruppieren, für jedes Team eine Benutzergruppe erstellen und sowohl Host- als auch Benutzergruppen verwenden, um Berechtigungen für Hosts für verschiedene Teams zuzuweisen. Da die einzelnen Teammitglieder zusammen mit ihren Kontaktdaten, ihren Bereitschaftsplänen und Eskalationsregeln in ilert definiert und verwaltet werden, werden wir nicht für jedes Teammitglied einen Zabbix-Benutzer erstellen. Stattdessen werden wir für jedes Team einen einzelnen Benutzer erstellen. Der Benutzer wird mit der entsprechenden Alarmquelle in ilert verbunden sein. Eine Alarmquelle wiederum ist mit den richtigen Teammitgliedern verknüpft und stellt sicher, dass das richtige Teammitglied unter Verwendung von Bereitschaftsplänen und Eskalationsrichtlinien benachrichtigt wird. Die folgende Abbildung zeigt, wie unser resultierendes Setup aussehen wird:
Jetzt lassen Sie uns dieses Szenario schrittweise umsetzen.
In ilert: Erstellen Sie zwei Alarmquellen vom Typ Zabbix
Gehen Sie zu Alarmquellen und klicken Sie auf Neue Alarmquelle hinzufügen.
Legen Sie einen Namen fest (z. B. "Team A Zabbix") und wählen Sie die Eskalationsrichtlinie des Teams A aus und setzen Sie den Integrationstyp auf Zabbix:
Klicken Sie auf Speichern. Auf der nächsten Seite wird ein API-Schlüssel generiert. Sie benötigen die API im nächsten Abschnitt.
Wiederholen Sie die Schritte 1-3 und erstellen Sie eine Alarmquelle für Team B.
In Zabbix: Erstellen Sie Host- und Benutzergruppen sowie Benutzer
- Gehen Sie zu Configuration –> Host groups
- Gehen Sie zu Administration –> User groups
Erstellen Sie zwei Benutzergruppen Team A und Team B und weisen Sie jeder Gruppe Leseberechtigungen für ihre jeweilige Hostgruppe zu:
Für jedes Team erstellen Sie einen Benutzer ilert Team A Alert Source und ilert Team B Alert Source
1. Weisen Sie den Benutzer der Benutzergruppe Team A zu
- Wechseln Sie zum Medien-Tab und fügen Sie ilert als Medientyp hinzu.
- Geben Sie den API-Schlüssel der Alarmquelle im Feld Senden an ein
- Klicken Sie auf Hinzufügen, um den Benutzer zu erstellen.
Wiederholen Sie die Schritte 3-5 und erstellen Sie eine Benutzergruppe und einen Benutzer für Team B.
In Zabbix: Erstellen Sie Triggeraktionen
- Erstellen Sie eine Aktion und geben Sie ihr einen Namen (z. B. Benachrichtigen Sie ilert)
Wechseln Sie zum Tab Operationen und fügen Sie unter Operationen, Wiederherstellungsoperationen, Updateoperationen die folgenden Operationen hinzu:
- Fügen Sie beide Benutzergruppen Team A und Team B im Feld An Benutzergruppe senden hinzu.
- Wählen Sie ilert im Feld Standardmedientyp aus
Die resultierende Ansicht der Operationen sollte so aussehen:
Aber Moment mal… Würde Team A Benachrichtigungen für Probleme von Team B erhalten und umgekehrt? Nein, da beide Benutzergruppen nur Leseberechtigungen für die Hostgruppen haben, für die sie verantwortlich sind, erhalten sie nur Benachrichtigungen, die sich auf ihre eigenen Hostgruppen beziehen.
Sie sollten jedoch in Betracht ziehen, separate Triggeraktionen für jedes Team zu erstellen. Zum Beispiel, wenn Sie unterschiedliche Bedingungen für die Triggeraktion definieren möchten oder wenn Sie eine große Anzahl von Teams haben und die Dinge aus Gründen der Wartbarkeit getrennt halten möchten.
Das war's!
Fazit
Beide Teams werden nun automatisch über Probleme in ihren Diensten benachrichtigt. Vorfälle in ilert werden automatisch geschlossen, wenn das Problem in Zabbix behoben ist. Und alles, was mit der Reaktion auf einen Vorfall zu tun hat, wird von ilert verwaltet und behandelt, einschließlich der Benachrichtigung des Teammitglieds, der zu verwendenden Alarmierungskanäle, wann eskaliert werden soll, und möglicherweise der Einbindung anderer Stakeholder über die Stakeholder-Engagement-Funktion von ilert.
Unten sehen Sie ein Beispiel für einen Vorfall von ilert, der von Zabbix erstellt wurde:
Der Vorfall enthält einen Rückverweis auf die Zabbix-Ereignisdetailsseite und alle relevanten Elemente, die von Zabbix gesendet wurden. Ereignisse in Zabbix enthalten auch einen Link zum Vorfall in ilert: