Nagios-Integrationshandbuch

Vorteile der PagerDuty + Nagios Core-Integration

  • Benachrichtigen Sie Bereitschaftskräfte auf der Grundlage von Warnmeldungen, die von Nagios Core gesendet werden.
  • Erstellen Sie Vorfälle mit hoher und niedriger Dringlichkeit basierend auf der Schwere des Ereignisses aus der Nagios Core-Ereignisnutzlast.
  • Vorfälle und Eskalationen werden bei der Aktualisierung sowohl über PagerDuty als auch über Nagios Core synchronisiert.

Wie es funktioniert

  • Wenn Nagios Core eine Alarmbenachrichtigung für einen Host oder Dienst erstellt, sendet es ein Ereignis an einen entsprechenden Service in PagerDuty. Dieses Ereignis löst einen neuen Vorfall im zugehörigen PagerDuty Dienst aus, oder Gruppe als Warnungen in einen bestehenden Vorfall.
  • Wenn ein Vorfall in PagerDuty bestätigt wird, wird die Bestätigung an den entsprechenden Dienst oder Host in Nagios weitergeleitet. Beide Systeme geben den aktuellsten Status eines Problems wieder.
  • Wenn für einen Host oder Dienst in Nagios Core eine Wiederherstellungsnachricht generiert wird, wird ein Lösungsereignis an den PagerDuty Dienst gesendet, um den Alarm und den zugehörigen Vorfall bei diesem Dienst zu beheben.

Anforderungen

PagerDuty Integrationen erfordern eine Manager-Basisrolle oder höher für die Kontoautorisierung. Wenn Sie diese Rolle nicht haben, wenden Sie sich bitte an einen Administrator oder Kontoinhaber in Ihrer Organisation, um die Integration zu konfigurieren.

Integrations-Komplettlösung

In PagerDuty

Es gibt zwei Möglichkeiten, Nagios Core in PagerDuty zu integrieren: über Global Event Routing oder direkt über eine Integration in einen PagerDuty Dienst.

Integration mit globalem Event Routing

Durch die Integration mit Global Event Routing können Sie Ereignisse basierend auf der Nutzlast des Ereignisses von Nagios Core an bestimmte Dienste weiterleiten. Wenn Sie mehr erfahren möchten, lesen Sie bitte unseren Artikel über Globales Ereignisrouting .

1. Aus dem Automatisierung wählen Sie Veranstaltungsregeln .

2. Wählen Sie Standardmäßiger globaler Regelsatz oder erstelle ein neues .

3. Klicken Sie auf den Namen des Regelsatzes, den Sie verwenden möchten, und klicken Sie auf den Pfeil neben Eingehende Ereignisquelle , um die Informationen zum Integrationsschlüssel anzuzeigen. Kopieren Sie Integrationsschlüssel und bewahren Sie es für die spätere Verwendung an einem sicheren Ort auf. Wenn Sie die Einrichtung der Integration in Nagios Core abgeschlossen haben, kehren Sie zu dieser Schnittstelle zurück, um anzugeben, wie Ereignisse von Nagios Core an Dienste in PagerDuty weitergeleitet werden sollen.

Notiz : Wenn Ihr Team bereits integriert hat mit Globales Ereignisrouting , können Sie dies überprüfen, indem Sie in einer vorhandenen Konfigurationsdatei nach dem PagerDuty Event Rules Integration Key (zu finden in Schritt 3 oben) suchen. Sie können dann die vorhandene Integration verwenden und Nagios Core-Ereignisse in Ihren Dienst leiten, indem Sie neue globale Ereignisregeln für Ihren Dienst schreiben.

Sie können jetzt mit dem Abschnitt „Im Nagios-Kern“ dieses Handbuchs fortfahren.

Integration mit einem PagerDuty Dienst

Die direkte Integration mit einem PagerDuty Dienst kann von Vorteil sein, wenn Sie keine Warnmeldungen von Nagios Core basierend auf der Ereignisnutzlast an verschiedene Responder weiterleiten müssen. Sie können weiterhin Service-Level-Ereignisregeln um Aktionen wie das Unterdrücken nicht umsetzbarer Warnungen und das Anpassen des Schweregrads durchzuführen.

1. Aus dem Dienstleistungen wählen Sie Serviceverzeichnis .

2. Wenn Sie Ihre Integration zu einem bestehenden Dienst hinzufügen , klicken Sie auf den Namen des Dienstes, zu dem Sie die Integration hinzufügen möchten. Wählen Sie dann die Registerkarte „Integrationen“ und klicken Sie auf das Eine neue Integration hinzufügen .

Wenn Sie einen neuen Dienst für Ihre Integration erstellen, lesen Sie bitte unsere Dokumentation im Abschnitt Konfigurieren von Diensten und Integrationen und befolgen Sie die Schritte im Neuen Dienst erstellen Abschnitt.

3. Wählen Sie Nagios Core aus dem Integrationstyp Speisekarte.

4. Klicken Service hinzufügen oder Integration hinzufügen , um Ihre neue Integration zu speichern. Sie werden zur Registerkarte „Integrationen“ für Ihren Dienst weitergeleitet.

5. Suchen Sie Ihre Integration in der Liste und klicken Sie rechts auf ∨. Integrationsschlüssel wird auf diesem Bildschirm generiert. Bewahren Sie diesen Schlüssel an einem sicheren Ort auf, da er verwendet wird, wenn Sie im nächsten Abschnitt die Integration mit Nagios Core konfigurieren.

Im Nagios-Kern

Wenn Sie Nagios Core in der Vergangenheit bereits integriert haben und nun zusätzliche Dienste integrieren möchten, fahren Sie mit Schritt 3 fort.

Diese Anleitung enthält Schritte für die Installation von Nagios Core aus vorgefertigten Paketen über apt-get (Debian-basiert, also Ubuntu) und lecker (RHEL-basierte, d. h. CentOS, Fedora) Linux-Paketmanager sowie für Systeme, auf denen Nagios Core aus der Quelle installiert wurde („Quellinstallationen“). Sie müssen nicht alle Befehle in diesem Handbuch ausführen, sondern nur die für Ihren Systemtyp. Beachten Sie, dass alle angegebenen Befehle als Wurzel Benutzer.

1. Installieren Sie die PagerDuty . Der Agent empfängt Ereignisse von Nagios Core und sendet sie über eine Warteschlange an PagerDuty , stellt Protokolle bereit, die bei der Behebung von Problemen helfen, und versucht automatisch erneut, Ereignisse zu senden, wenn ein Verbindungsfehler auftritt (d. h. wenn Ihr Nagios Core-Server vorübergehend die Verbindung verliert). Notiz: Falls Sie dies noch nicht getan haben, empfehlen wir Ihnen dringend, für die Verwendung des PagerDuty Agenten auf Python 3 umzusteigen. 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 Core auf älteren Betriebssystemen.

2. Herunterladen pagerduty_nagios.cfg von GitHub:

 wget https://raw.githubusercontent.com/ PagerDuty/pdagent-integrations/master/pagerduty_nagios.cfg 

3. Offen pagerduty_nagios.cfg in einem Texteditor.

4. Geben Sie den Integrationsschlüssel (generiert im Abschnitt „In PagerDuty“ weiter oben) in die Pager Feld. Wenn Sie Nagios Core mit mehreren PagerDuty -Diensten gleichzeitig integrieren möchten, können Sie Global Event Routing verwenden (Anweisungen im Abschnitt In PagerDuty oben) oder unseren Artikel über Direkte Integration mit mehreren PagerDuty -Diensten .

5. Verschieben Sie die Nagios Core-Konfigurationsdatei an ihren Platz. Für Debian-basierte Systeme ist dies normalerweise /etc/nagios3/conf.d :

 mv pagerduty_nagios.cfg /etc/nagios3/conf.d 

Für RHEL-basierte Systeme ist dies normalerweise /etc/nagios :

 mv pagerduty_nagios.cfg /etc/nagios 

Bei Quellinstallationen verschieben Sie die Datei nach /usr/local/nagios/etc/objekte :

 mv pagerduty_nagios.cfg /usr/  lokal  /nagios/usw./Objekte 

6. Überspringen Sie diesen Schritt, wenn Sie eine Debian-basierte Distribution verwenden. Wenn Sie eine RHEL-basierte Distribution verwenden, müssen Sie die Nagios Core-Konfiguration bearbeiten, um die PagerDuty Konfiguration zu laden. Öffnen Sie dazu /etc/nagios/nagios.cfg und fügen Sie der Datei diese Zeile hinzu:

 cfg_file=/usw./  nagios/pagerduty_nagios.cfg 

Wenn Sie eine Quellinstallation verwenden, fügen Sie diese Zeile zur Hauptkonfigurationsdatei hinzu unter /usr/local/nagios/etc/nagios.cfg

 cfg_file=/usr/  lokal  /nagios/etc/objects/pagerduty_nagios.cfg 

7. Fügen Sie den Kontakt „pagerduty“ zur Hauptkontaktgruppe Ihrer Nagios Core-Konfiguration hinzu. Wenn Sie die Standardkonfiguration verwenden, öffnen Sie /etc/nagios3/conf.d/contacts_nagios2.cfg (auf Debian-basierten Systemen) oder /etc/nagios/objects/contacts.cfg (auf RHEL-basierten Systemen) oder /usr/local/nagios/etc/objects/contacts.cfg (für Quellinstallationen) und suchen Sie nach der Kontaktgruppe „admins“. Fügen Sie dann einfach den Kontakt „pagerduty“ hinzu.

 definieren contactgroup{ contactgroup_name admins  alias  Nagios-Administratoren - Mitglieder root,pagerduty  ;  Hinzufügen  Pagerduty hier  } 

8. Laden Sie Nagios Core neu oder starten Sie es neu, damit Ihre Konfigurationsänderungen wirksam werden:

  • Debian-basierte Systeme:
    •  Dienst Nagios3 neu starten 
  • RHEL-basierte Systeme:
    •  Dienst Nagios neu starten 

9. Herunterladen pagerduty.cgi :

 wget https://raw.githubusercontent.com/mdcollins05/pd-nag-connector/master/pagerduty.cgi 

10. Bearbeiten Sie die pagerduty.cgi Datei, so dass die Befehlsdatei   Variable zeigt auf Ihre Nagios Core-Befehlsdatei. Der Pfad kann durch Ausführen des Befehls gefunden werden grep '^Befehlsdatei' /etc/nagios3/nagios.cfg (auf Debian-basierten Systemen) grep '^ *Befehlsdatei' /etc/nagios/nagios.cfg (auf RHEL-basierten Systemen) oder grep '^ *Befehlsdatei' /usr/local/nagios/etc/nagios.cfg (bei Quellinstallationen). Wenn Sie keine Informationen erhalten, überprüfen Sie, ob die Befehlsdatei Variable ist unkommentiert (beginnt nicht mit einem # ).

11. Bewegen pagerduty.cgi zum Nagios cgi-bin.Für Debian-basierte Systeme ist dies normalerweise /usr/lib/cgi-bin/nagios3/ :

 mv pagerduty.cgi /usr/lib/cgi-bin/nagios3/ 

Für die meisten RHEL-basierten Systeme ist dies normalerweise /usr/lib64/nagios/cgi/ :

 mv pagerduty.cgi /usr/lib64/nagios/cgi/ 

Für Amazon Linux & CentOS 6+ Systeme ist dies normalerweise /usr/local/nagios/sbin :

 mv pagerduty.cgi /usr/local/nagios/sbin/ 

12. Machen pagerduty.cgi ausführbar.

Für Debian-basierte Systeme:

 chmod +x /usr/lib/cgi-bin/nagios3/pagerduty.cgi 

Für die meisten RHEL-basierten Systeme:

 chmod +x /usr/lib64/nagios/cgi/pagerduty.cgi 

Für Amazon Linux- und CentOS 6+-Systeme:

 chmod +x /usr/local/nagios/sbin//pagerduty.cgi 

13. Installieren Sie die erforderlichen Perl-Bibliotheken, damit das Skript funktioniert.

Für Debian-basierte Systeme:

 geeignet-  erhalten  Installieren Sie libwww-perl libjson-perl 

Für Ubuntu 16.04-Systeme müssen Sie außerdem installieren libcgi-pm-perl :

 geeignet-  erhalten  Installieren Sie libwww-perl libjson-perl libcgi-pm-perl 

Für RHEL-basierte Systeme:

 yum installiere Perl-JSON Perl-CGI Perl-libwww-perl 

14. Überspringen Sie diesen Schritt, wenn Sie eine RHEL-basierte Distribution verwenden. Wenn Sie eine Debian-basierte Distribution verwenden, müssen Sie sicherstellen, dass Nagios Core externe Befehle aktiviert hat. In /etc/nagios3/nagios.cfg , überprüfen Sie diese Variable externe_Befehle prüfen ist gleich 1 und dass die Variable Befehlsprüfintervall ist auf einen für Ihre Umgebung angemessenen Wert eingestellt. Der Befehlsprüfintervall Die Variable bestimmt, wie oft Nagios Core nach auszuführenden externen Befehlen sucht.

15. Überspringen Sie diesen Schritt, wenn Sie eine RHEL-basierte Distribution verwenden. Wenn Sie eine Debian-basierte Distribution verwenden, müssen Sie sicherstellen, dass Ihr Webserver-Benutzer (normalerweise www-Daten ) kann in die Nagios Core-Befehlsdatei schreiben. Die folgenden Befehle aktivieren dies für den Standardspeicherort der Befehlsdatei:

 /usw/  init.d/nagios3 stoppen  ## Hinweis: Dadurch wird Ihr Nagios-Dienst gestoppt! 
 dpkg-statoverride --update --  hinzufügen  Nagios WWW-Daten  2730  /  var  /lib/nagios3/rw 
 dpkg-statoverride --update --  hinzufügen  nagios nagios  751  /  var  /lib/nagios3 
 /etc/init.d/nagios3 starten 

In PagerDuty (Forts.)

1. Gehen Sie zu jedem Dienst, der in Nagios Core integriert ist, und klicken Sie auf Integrationen auf Hinzufügen oder Verwalten von Erweiterungen , dann klick + Neue Erweiterung.

2. Für die Verlängerung Typ wählen Nagios , geben Sie dann ein Name für Ihren Webhook fügen Sie Ihren Nagios Nutzername , Passwort Und Wurzel URL und klicken Sie auf Speichern . Die URL sieht ungefähr so ​​aus: ip-oder-domain/nagios3/cgi-bin/pagerduty.cgi . Nicht einschließen http:// oder https:// . Notiz: Sofern Sie es nicht deaktiviert haben, erfordert die Nagios Core-Weboberfläche einen Benutzernamen und ein Passwort. Wir empfehlen dringend, einen Benutzer zu konfigurieren, der Nagios Core-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.

3. Um diese Integration zu testen, benötigen Sie ein Problem in Nagios Core, das ein Ereignis generiert und einen Vorfall in PagerDuty auslöst. 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.

 

FAQ

Kann ich die bidirektionale Integration nutzen, ohne dass auf meine Nagios Core-Installation über das Internet zugegriffen werden kann?

Die bidirektionale Integration erfordert, dass Ihr Nagios Core-Server über das Internet erreichbar ist, um Webhook-Aufrufe von PagerDuty zu empfangen. Wenn Sie den Zugriff auf Ihren Nagios Core-Webserver auf bestimmte IPs beschränken möchten, finden Sie PagerDutys Webhook-IPs in unserer Wissensdatenbank: IPs auf die Positivliste setzen Alternativ können Sie einen Dienst wie ngrok um einen sicheren Tunnel zu Ihrem Nagios Core-Server mit einer öffentlichen URL zu erstellen, die für Ihren Webhook verwendet werden kann.

Wie konfiguriere ich Nagios Core für die Arbeit mit mehreren PagerDuty -Diensten?

Dies ist mit der aktuellen Integration einfach zu bewerkstelligen, da ein Nagios Core-Dienst in PagerDuty direkt einem „Kontakt“ in Nagios Core zugeordnet ist. Standardmäßig heißt dieser Kontakt pagerdienst und definiert in der pagerduty_nagios.cfg Datei. Um mehrere Dienste zu konfigurieren, duplizieren Sie einfach die vorhandene Kontaktdefinition und benennen Sie sie um (d. h. Pagerduty_Datenbank , PagerDuty_Netzwerk , usw.). Kopieren Sie dann den entsprechenden Integrationsschlüssel von PagerDuty und fügen Sie ihn in das Pager Feld. Vergessen Sie nicht, Ihren Nagios Core neu zu starten, damit die Änderungen wirksam werden. Eine weitere Möglichkeit zum Konfigurieren mehrerer Dienste ist die Verwendung eines Global Event Routing-Integrationsschlüssels (siehe Abschnitt „Integration mit Global Event Routing“ oben).

Was passiert, wenn ein Nagios Core-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 Core 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 durchsuchen, um zu sehen, ob die pagerdienst Kontakt wird benachrichtigt. Hier ist ein Beispiel von einem Ubuntu-System (auf RHEL-basierten Systemen ist Syslog bei /var/log/Nachrichten ):

 grep BENACHRICHTIGUNG /  var  /log/syslog 
 Mai   28   18  :  20  :  57  ip-  10  -  11  -  139  -  249  nagios3: SERVICE-BENACHRICHTIGUNG: pagerduty;localhost;  Aktuell   Benutzer  ;KRITISCH;Dienst benachrichtigen-  von  -pagerduty;BENUTZER KRITISCH -  3  aktuell angemeldete Benutzer  In 

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 Kontaktgruppe des Administrators. 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 Core-Nachrichten versteht PagerDuty ?

PagerDuty kann verarbeiten PROBLEM , WISSEN , Und ERHOLUNG Nachrichten. Alle anderen Nachrichten, einschließlich FLAPPENSTART Und FLAPPENSTOP , werden ignoriert.

Beginnen Sie noch heute mit der Nutzung von PagerDuty

Testen Sie PagerDuty 14 Tage lang kostenlos – keine Kreditkarte erforderlich.

MELDEN SIE SICH AN