- PagerDuty /
- Integrationen /
- Handbuch zur bidirektionalen Integration von Nagios XI
Handbuch zur bidirektionalen Integration von Nagios XI
Nagios XI erweitert die Funktionen der Nagios Core-Software und bietet Ihnen eine detaillierte Host- und Serviceüberwachung für Ihre kritischen IT-Systeme. Die folgende Anleitung beschreibt, wie Sie Ihre Nagios XI-Installation mithilfe unseres einfach zu installierenden Agenten in PagerDuty integrieren. Beachten Sie, dass Sie angemeldet sein müssen als
Wurzel
um die Installation abzuschließen. Bitte Kontaktieren Sie unser Support-Team wenn Sie Probleme beim Abschließen der Integration haben. Notiz: Wenn Sie Nagios auf CentOS 5 ausführen, müssen Sie den Perl-basierte Integration für Nagios XI anstatt dieser Anleitung zu folgen.
In PagerDuty
- Gehen Sie zum Dienstleistungen und wählen Sie Serviceverzeichnis .
- Auf der Serviceverzeichnis Seite:
- Wenn Sie einen neuen Dienst für Ihre Integration erstellen, klicken Sie auf + Neuer Dienst und folgen Sie den beschriebenen Schritten, indem Sie diese Integration in Schritt 4.
- Wenn Sie Ihre Integration zu einem vorhandenen Dienst hinzufügen, klicken Sie auf das Name des Dienstes, zu dem Sie die Integration hinzufügen möchten. Klicken Sie dann auf das Integrationen und klicken Sie auf Fügen Sie eine neue Integration hinzu.
- Unter Wählen Sie die Integration(en) aus, die Sie zum Senden von Benachrichtigungen an diesen Dienst verwenden. suchen und wählen Sie diese Integration .
- Klicken Sie auf das Service hinzufügen oder Integration hinzufügen Schaltfläche, um Ihre neue Integration zu speichern. Sie werden auf die Integrationsseite für Ihren Dienst weitergeleitet.
- Suchen Sie die Integration in der Liste, kopieren Sie die Integrationsschlüssel und bewahren Sie es zur späteren Verwendung an einem sicheren Ort auf.
Auf Ihrem Nagios XI-Server
- Installieren Sie die PagerDuty . Der Agent empfängt Ereignisse von Nagios XI und sendet sie über eine Warteschlange an PagerDuty , stellt Protokolle bereit, die bei der Behebung von Problemen helfen, und versucht im Falle eines Verbindungsfehlers (d. h. wenn Ihr Nagios XI-Server vorübergehend die Verbindung verliert) automatisch erneut, Warnungen zu senden. Notiz: Der Agent läuft nicht auf CentOS 5 oder niedriger, da er eine neuere Version von Python erfordert als die in CentOS 5 enthaltene Version. Bitte verwenden Sie die Perl-basierte Integration für Nagios XI auf älteren Betriebssystemen.
- Melden Sie sich bei der Nagios XI-Weboberfläche an als
nagiosadmin
, dann gehen Sie zu Konfigurieren und wählen Sie Core-Konfigurationsmanager Klicken Sie auf Befehle im linken Menü und dann auf Neu hinzufügen . - Legen Sie die Befehlsname , Linie Und Typ wie folgt, und klicken Sie dann auf Speichern .
- Befehlsname:
Benachrichtigungsdienst durch Pagerduty
- Befehlszeile:
/usr/share/pdagent-integrations/bin/pd-nagios -n service -k $CONTACTPAGER$ -t '$NOTIFICATIONTYPE$' -f SERVICEDESC='$SERVICEDESC$' -f SERVICESTATE='$SERVICESTATE$' -f HOSTNAME='$HOSTNAME$' -f HOSTDISPLAYNAME='$HOSTDISPLAYNAME$' -f SERVICEDISPLAYNAME='$SERVICEDISPLAYNAME$' -f SERVICEPROBLEMID='$SERVICEPROBLEMID$' -f SERVICEOUTPUT='$SERVICEOUTPUT$'
- Befehlstyp:
misc-Befehl
- Befehlsname:
- Klicken Neu hinzufügen um einen weiteren Befehl hinzuzufügen.
- Legen Sie die Befehlsname , Linie Und Typ wie folgt, und klicken Sie dann auf Speichern .
- Befehlsname:
Host per Pagerduty benachrichtigen
- Befehlszeile:
/usr/share/pdagent-integrations/bin/pd-nagios -n host -k $CONTACTPAGER$ -t '$NOTIFICATIONTYPE$' -f HOSTNAME='$HOSTNAME$' -f HOSTSTATE='$HOSTSTATE$' -f HOSTDISPLAYNAME='$HOSTDISPLAYNAME$' -f HOSTPROBLEMID='$HOSTPROBLEMID$'
-
misc-Befehl
- Befehlsname:
- Klicken Kontakte im linken Menü und dann auf Neu hinzufügen .
- Gehen Sie zum Alarmeinstellungen und legen Sie die folgenden Host-Optionen fest. Klicken Sie dann auf Host-Benachrichtigungsbefehle verwalten :
- Host-Benachrichtigungen aktiviert: An
- Zeitraum für Hostbenachrichtigungen: 24 Stunden am Tag, 7 Tage die Woche
- Optionen für Host-Benachrichtigungen: t, r
- Wählen Sie die
Host per Pagerduty benachrichtigen
und klicken Sie auf Auswahl hinzufügen Stellen Sie sicher, dassHost per Pagerduty benachrichtigen
bewegt sich zum Zugewiesen und klicken Sie dann auf Schließen . - Zurück in der Alarmeinstellungen Legen Sie die folgenden Serviceoptionen fest und klicken Sie dann auf Befehle für Servicebenachrichtigungen verwalten :
- Servicebenachrichtigungen aktiviert: An
- Servicebenachrichtigungen Zeitraum: 24 Stunden am Tag, 7 Tage die Woche
- Optionen für Servicebenachrichtigungen: w, u, c, r
- Wählen Sie die
Benachrichtigungsdienst durch Pagerduty
und klicken Sie auf Auswahl hinzufügen Stellen Sie sicher, dassBenachrichtigungsdienst durch Pagerduty
bewegt sich zum Zugewiesen und klicken Sie dann auf Schließen . - Gehen Sie zum Sonstige Einstellungen und klicken Sie auf Verwalten von Variablendefinitionen .
- Satz Variablenname Zu
Pager
Und Variablenwert zu dem Integrationsschlüssel, den Sie zuvor von PagerDuty kopiert haben, und klicken Sie auf Einfügen . Stellen Sie sicher, dass die Variable zur rechten Spalte hinzugefügt wird, und klicken Sie dann auf Schließen . - Gehen Sie zum Allgemeine Einstellungen und legen Sie einen Kontaktname (dh
pagerdienst
, oder wenn Sie mehrere PagerDuty Dienste integrieren möchten, verwenden Sie aussagekräftigere Namen wiePagerduty_Datenbank
,PagerDuty_Netzwerk
usw.) und klicken Sie dann auf Kontaktgruppen verwalten . - Wählen Sie die
Administratoren
Gruppe oder eine andere Gruppe, der der Kontakt angehören soll und der auch Ihre Hosts und Dienste zugeordnet werden, und klicken Sie auf Auswahl hinzufügen Stellen Sie sicher, dassAdministratoren
(oder Ihr alternativer Gruppenname) wechselt in die Zugewiesen und klicken Sie dann auf Schließen . - Klicken Speichern , um Ihren neuen Kontakt zu speichern.
- Klicken Host-Vorlagen im linken Menü und wählen Sie dann eine Vorlage aus, die Sie für PagerDuty Benachrichtigungen verwenden möchten. Für diese Anleitung verwenden wir
Generischer Host
, da Sie dadurch normalerweise Benachrichtigungen für alle Hosts erhalten, sobald der Integrationsprozess abgeschlossen ist. - Gehen Sie zum Alarmeinstellungen und legen Sie die folgenden Optionen fest. Klicken Sie dann auf Kontaktgruppen verwalten :
- Benachrichtigungszeitraum: 24 Stunden am Tag, 7 Tage die Woche
- Benachrichtigungsoptionen: d, u, r
- Benachrichtigungsintervall: 1 Minute
- Benachrichtigung aktiviert: An
- Wählen Sie die
Administratoren
Gruppe (oder eine andere Gruppe, die Sie in Schritt 15 ausgewählt haben) und klicken Sie auf Auswahl hinzufügen . Stellen Sie sicher, dass der Gruppenname in die Zugewiesen und klicken Sie dann auf Schließen . - Klicken Speichern um Ihre Host-Vorlage zu speichern.
- Klicken Konfiguration anwenden um Ihre neuen Befehle, Kontakte und Änderungen an Hostvorlagen zu aktivieren.
- Herunterladen
pagerduty.cgi
für die bidirektionale Integration:wget https://raw.githubusercontent.com/mdcollins05/pd-nag-connector/master/pagerduty.cgi
- Bearbeiten Sie die
pagerduty.cgi
Datei, so dass dieBefehlsdatei
Variable zeigt auf Ihre Nagios-Befehlsdatei. Der Pfad kann durch Ausführen des Befehls gefunden werdengrep '^Befehlsdatei' nagios.cfg
in dem Verzeichnis, in demnagios.cfg
wohnt (/usr/local/nagios/usw.
wenn Sie das von Nagios Enterprises bereitgestellte virtuelle Maschinenabbild verwenden).Wenn Sie keine Informationen erhalten, überprüfen Sie, ob dieBefehlsdatei
Variable ist unkommentiert (beginnt nicht mit einem#
). - Bewegen
pagerduty.cgi
zum Nagios Core cgi-bin (nicht zum Nagios XI PHP-Benutzeroberflächenverzeichnis). Für das von Nagios Enterprises bereitgestellte virtuelle Maschinenabbild ist dies/usr/local/nagios/sbin
:mv pagerduty.cgi /usr/local/nagios/sbin
- Machen
pagerduty.cgi
ausführbare Datei. Für das von Nagios Enterprises bereitgestellte Image der virtuellen Maschine:chmod +x /usr/local/nagios/sbin/pagerduty.cgi
- Installieren Sie die erforderlichen Perl-Bibliotheken, damit das Skript funktioniert.
yum installiere Perl-CGI Perl-JSON Perl-libwww-perl
- Gehen Sie in PagerDuty zu Ihrem Nagios XI-Dienst Integrationen und klicken Sie auf Hinzufügen einer Erweiterung .
- Für die Verlängerung Typ wählen Nagios , geben Sie dann ein Name Wählen Sie für Ihren Webhook einen Service , fügen Sie in die URL , Die Benutzername , Die Passwort und klicken Sie auf Speichern . Die URL sieht ungefähr so aus:
ip-oder-domain/nagios3/cgi-bin/pagerduty.cgi
(in der URL ist kein http:// oder http:// erforderlich). Notiz: Sofern Sie es nicht deaktiviert haben, erfordert die Nagios-Weboberfläche einen Benutzernamen und ein Passwort. Wir empfehlen dringend, einen Benutzer zu konfigurieren, der Nagios-Befehle ausführen kann und nur für den Webhook verwendet wird. Wenn Sie diese URL in Ihrem Browser aufrufen, sollten Sie Folgendes sehen:400 Anfragen müssen POSTs sein
. Wenn dies nicht angezeigt wird, prüfen Sie die Protokolle Ihres Webservers auf Einzelheiten dazu, was beim Versuch, diese URL aufzurufen, passiert ist. - An diesem Punkt sollten Sie fertig sein. Um es auszuprobieren, müssen Sie ein Problem in Nagios haben, das einen Vorfall erzeugt. Von dort aus sollte bei der Bestätigung des Vorfalls ein Kommentar hinzugefügt werden, der besagt, dass der Vorfall „von PagerDuty bestätigt“ wurde.
Häufig gestellte Fragen
Kann ich die bidirektionale Integration nutzen, ohne dass meine Nagios-Installation über das Internet zugänglich ist?
Die bidirektionale Integration erfordert, dass Ihr Nagios-Server über das Internet erreichbar ist, um Webhook-Aufrufe von PagerDuty zu empfangen. Wenn Sie den Zugriff auf Ihren Nagios-Webserver auf bestimmte IPs beschränken möchten, finden Sie die Webhook-IPs von PagerDuty in unserer Wissensdatenbank: Was sind die IPs von PagerDuty für Whitelist- und Firewall-Zwecke? Alternativ können Sie einen Dienst wie ngrok um einen sicheren Tunnel zu Ihrem Nagios-Server mit einer öffentlichen URL zu erstellen, die für Ihren Webhook oder die Poller-Skript, ursprünglich von Zoosk entwickelt und jetzt von PagerDuty gepflegt um Kontakt aufzunehmen, anstatt Ihren Nagios-Server öffentlich zugänglich zu machen.Wie konfiguriere ich Nagios XI für die Arbeit mit mehreren PagerDuty -Diensten?
Dies ist mit der aktuellen Integration einfach zu bewerkstelligen, da ein Nagios XI-Dienst in PagerDuty direkt einem 'Kontakt' in Nagios zugeordnet ist. Um mehrere Dienste zu konfigurieren, erstellen Sie einfach zusätzliche Kontakte in Nagios XI mit unterschiedlichen Namen (d. h. Pagerduty_Datenbank
, PagerDuty_Netzwerk
, etc.), dann kopieren Sie den entsprechenden Integrationsschlüssel von PagerDuty und fügen Sie ihn in das Pager
Variablendefinitionsfeld und machen Sie den Kontakt zu einem Teil einer Kontaktgruppe, die Benachrichtigungen für die von Ihnen gewünschten Dienste erhält. Vergessen Sie nicht, Ihre Änderungen nach dem Speichern Ihres Kontakts anzuwenden, damit sie wirksam werden. Was passiert, wenn ein Nagios-Ereignis eintritt, während mein Netzwerk ausgefallen ist?
Wenn ein PagerDuty -Server aus irgendeinem Grund nicht erreichbar ist, werden Ereignisse in einer Warteschlange auf der Festplatte gespeichert. Der PagerDuty Agent versucht, die Ereignisse erneut zu senden, wenn die Verbindung wiederhergestellt ist.Da Nagios meine externe Internetverbindung benötigt, um Fehlerberichte an PagerDuty zu senden, wie werde ich benachrichtigt, wenn unsere Site die externe Konnektivität verliert?
Sie sollten einen externen Ping-Check-Dienst konfigurieren, wie zum Beispiel StatusKuchen oder KnotenPing um die externe Konnektivität Ihrer Site zu überwachen. Natürlich können Sie PagerDuty auch verwenden, um Benachrichtigungen von diesen Diensten zu erhalten.Die Integration scheint nicht zu funktionieren. Was ist los?
Stellen Sie zunächst sicher, dass Sie installierte den PagerDuty Agent und dass beim Installationsversuch keine Fehler von Ihrem Paketmanager aufgetreten sind. Fehlgeschlagene Installationen (z. B. aufgrund einer inkompatiblen Distribution wie CentOS 5) sind das häufigste Problem bei nicht funktionierender Integration. Überprüfen Sie, ob die pagerdienst
Kontakt erhält die GASTGEBER
oder SERVICE-BENACHRICHTIGUNGEN
im Syslog. Sie können Ihr Syslog greppen, um zu sehen, ob die pagerdienst
Kontakt wird benachrichtigt. Hier ist ein Beispiel: grep BENACHRICHTIGUNG /var/log/messages 28. Mai 18:20:57 ip-10-11-139-249 nagios3: SERVICEBENACHRICHTIGUNG: pagerduty;localhost;Aktuelle Benutzer;KRITISCH;notify-service-by-pagerduty;BENUTZER KRITISCH – 3 Benutzer derzeit angemeldet
Wie Sie sehen können, pagerdienst
Kontakt wurde hierfür benachrichtigt SERVICE-BENACHRICHTIGUNG
Wenn die pagerdienst
Kontakt wird nie angezeigt, das heißt, dass die pagerdienst
Kontakt ist nicht mit Benachrichtigungen für den betreffenden Host/Dienst verknüpft. Wenn Sie die Standardkonfiguration verwenden, stellen Sie sicher, dass der pagerdienst
Kontakt ist ein Mitglied der Admins-Kontaktgruppe. Wenn der pagerdienst
Kontakt benachrichtigt wird, überprüfen Sie das Agentenprotokoll unter /var/log/pdagent/pdagentd.log
Weitere Tipps zur Fehlerbehebung finden Sie in unserem Nagios-Handbuch zur Fehlerbehebung . Welche Art von Nagios-Nachrichten versteht PagerDuty ?
PagerDuty kann verarbeiten PROBLEM
, ANERKENNUNG
, Und ERHOLUNG
Nachrichten. Alle anderen Nachrichten, einschließlich FLAPPENSTART
Und FLAPPENSTOP
, werden ignoriert. Wie kann ich meine Nagios-Warnmeldungen anpassen?
Wir haben einen Leitfaden für Anpassen von Benachrichtigungen, die von Nagios an PagerDuty gesendet werden um Ihnen den Einstieg zu erleichtern.Bereit, loszulegen?
Testen Sie jedes Produkt in der Operations Cloud kostenlos.
Keine Kreditkarte erforderlich.