Nagios-Integrationsleitfaden

Vorteile der PagerDuty + Nagios Core-Integration

  • Benachrichtige die Bereitschaftskräfte anhand der von Nagios Core gesendeten Warnmeldungen.
  • 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 sowohl in PagerDuty als auch in Nagios Core synchronisiert, sobald sie aktualisiert werden.

So funktioniert es

  • Wenn Nagios Core eine Warnmeldung für einen Host oder Dienst erstellt, sendet es ein Ereignis an den entsprechenden Service in PagerDuty. Dieses Ereignis löst einen neuen Vorfall im zugehörigen PagerDuty Dienst aus, oder als Warnungen gruppieren in einen bestehenden Vorfall.
  • Wird ein Vorfall in PagerDuty bestätigt, wird diese Bestätigung an den entsprechenden Dienst oder Host in Nagios weitergeleitet. Beide Systeme zeigen den aktuellsten Status des Problems an.
  • Wenn für einen Host oder Dienst in Nagios Core eine Wiederherstellungsmeldung generiert wird, wird ein Auflösungsereignis an den PagerDuty Dienst gesendet, um die Warnung und den zugehörigen Vorfall in diesem Dienst zu beheben.

Anforderungen

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

Integrations-Überblick

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 Event-Orchestrierung

Durch die Integration mit Event Orchestration können Sie Ereignisse anhand ihrer Nutzdaten aus dem integrierten Tool an bestimmte PagerDuty -Dienste weiterleiten. Weitere Informationen finden Sie in unserem Artikel zu diesem Thema. Event-Orchestrierung Die

  1. Navigieren Sie zu AIOps Event-Orchestrierung und wählen Sie Ihre bevorzugte Orchestrierung.
  2. Wählen Sie die Integrationen Tabulatortaste und dann Ihre bevorzugte Datei kopieren Integrationsschlüssel Bewahren Sie diesen Schlüssel an einem sicheren Ort auf, um ihn in späteren Schritten zu verwenden. Sobald Sie die Integration eingerichtet haben, kehren Sie zu dieser Oberfläche zurück, um festzulegen, wie Ereignisse an Dienste in PagerDuty weitergeleitet werden sollen.

Integration mit einem PagerDuty Dienst

Die direkte Integration mit einem PagerDuty -Dienst kann vorteilhaft sein, wenn Sie Warnmeldungen von Nagios Core nicht anhand der Ereignisnutzlast an verschiedene Responder weiterleiten müssen. Sie können weiterhin verwenden Service-Level-Ereignisregeln um Aktionen wie das Unterdrücken nicht relevanter Warnmeldungen und das Anpassen des Schweregrades durchzuführen.

1. Von der Dienstleistungen Menü auswählen Dienstverzeichnis Die

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

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

3. Wählen Sie Nagios Core aus der Liste aus. Integrationstyp Speisekarte.

4. Klicken Dienst hinzufügen oder Integration hinzufügen Um Ihre neue Integration zu speichern, werden Sie zum Tab „Integrationen“ Ihres Dienstes weitergeleitet.

5. Suchen Sie Ihre Integration in der Liste und klicken Sie auf das ∨ rechts daneben. Integrationsschlüssel Dieser Schlüssel wird auf diesem Bildschirm generiert. Bewahren Sie ihn an einem sicheren Ort auf, da er im nächsten Abschnitt für die Konfiguration der Integration mit Nagios Core benötigt wird.

In Nagios Core

Falls Sie Nagios Core bereits in der Vergangenheit 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, d. h. Ubuntu) und lecker (RHEL-basierte, z. B. CentOS, Fedora) Linux-Paketmanager sowie Systeme, auf denen Nagios Core aus dem Quellcode installiert wurde („Quellcodeinstallationen“). Sie müssen nicht alle Befehle in dieser Anleitung ausführen, sondern nur die für Ihr System relevanten. Beachten Sie, dass alle angegebenen Befehle als Administrator ausgeführt werden müssen. Wurzel Benutzer.

1. Installieren Sie die PagerDuty Agent Der Agent empfängt Ereignisse von Nagios Core und sendet sie über eine Warteschlange an PagerDuty , bietet Protokollierung zur Fehlerbehebung und versucht automatisch, Ereignisse erneut zu senden, wenn ein Verbindungsfehler auftritt (z. B. wenn Ihr Nagios Core-Server vorübergehend die Verbindung verliert). Notiz: Falls Sie dies noch nicht getan haben, empfehlen wir Ihnen dringend, auf Python 3 umzusteigen, um den PagerDuty Agent nutzen zu können. Der Agent läuft nicht unter CentOS 5 oder älter, da er eine neuere Python-Version als die in CentOS 5 enthaltene benötigt. 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 die Integrationsschlüssel (generiert im obigen Abschnitt „In PagerDuty “) in die Pager Wenn Sie Nagios Core gleichzeitig mit mehreren PagerDuty -Diensten integrieren möchten, können Sie das globale Ereignis-Routing verwenden (Anleitung im Abschnitt „In PagerDuty“ oben) oder unseren Artikel dazu lesen. Die direkte Integration mit mehreren PagerDuty Diensten ist möglich. Die

5. Verschieben Sie die Nagios Core-Konfigurationsdatei an den vorgesehenen Ort. Bei Debian-basierten Systemen befindet sich dieser Ort üblicherweise /etc/nagios3/conf.d :

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

Bei RHEL-basierten Systemen ist dies üblicherweise /etc/nagios :

 mv pagerduty_nagios.cfg /etc/nagios 

Bei Quellcodeinstallationen verschieben Sie die Datei nach /usr/local/nagios/etc/objects :

 mv pagerduty_nagios.cfg /usr/  lokal  /nagios/etc/objects 

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 die entsprechende Datei. /etc/nagios/nagios.cfg und fügen Sie diese Zeile zur Datei hinzu:

 cfg_file=/etc/  nagios/pagerduty_nagios.cfg 

Wenn Sie eine Quellcodeinstallation 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“ der 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 (Bei Installationen aus dem Quellcode) suchen Sie nach der Kontaktgruppe „admins“. Fügen Sie dann einfach den Kontakt „pagerduty“ hinzu.

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

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

  • Debian-basierte Systeme:
    •  service nagios3 restart 
  • RHEL-basierte Systeme:
    •  service nagios restart 

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   Die Variable verweist auf Ihre Nagios Core-Befehlsdatei. Den Pfad finden Sie durch Ausführen des Befehls grep '^command_file' /etc/nagios3/nagios.cfg (auf Debian-basierten Systemen) grep '^ *command_file' /etc/nagios/nagios.cfg (auf RHEL-basierten Systemen) oder grep '^ *command_file' /usr/local/nagios/etc/nagios.cfg (bei Quellcodeinstallationen). Falls keine Informationen zurückgegeben werden, stellen Sie sicher, dass Befehlsdatei Die Variable ist nicht auskommentiert (beginnt nicht mit einem # ).

11. Bewegung pagerduty.cgi zum Nagios-CGI-Bin. Bei Debian-basierten Systemen ist dies üblicherweise /usr/lib/cgi-bin/nagios3/ :

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

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

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

Für Amazon Linux- und CentOS 6+-Systeme ist dies üblicherweise der Fall. /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  install libwww-perl libjson-perl 

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

 geeignet-  erhalten  install libwww-perl libjson-perl libcgi-pm-perl 

Für RHEL-basierte Systeme:

 yum install 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. /etc/nagios3/nagios.cfg Überprüfen Sie diese Variable externe Befehle prüfen gleich 1 und dass die Variable Befehlsprüfungsintervall wird auf einen für Ihre Umgebung angemessenen Wert eingestellt. Befehlsprüfungsintervall Die Variable bestimmt, wie oft Nagios Core prüft, ob externe Befehle ausgeführt werden sollen.

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 stop  ## Hinweis: Dadurch wird Ihr Nagios-Dienst gestoppt! 
 dpkg-statoverride --update --  hinzufügen  nagios www-data  2730  /  var  /lib/nagios3/rw 
 dpkg-statoverride --update --  hinzufügen  Nagios Nagios  751  /  var  /lib/nagios3 
 /etc/init.d/nagios3 start 

In PagerDuty (Fortsetzung)

1. Gehen Sie zu jedem Dienst, der in Nagios Core integriert ist, und klicken Sie auf die Integrationen Tabulatortaste, klicken Erweiterungen hinzufügen oder verwalten Klicken Sie dann + Neue Erweiterung.

2. Für die Verlängerung Typ wählen Nagios dann geben Sie ein Name Fügen Sie für Ihren Webhook Folgendes ein: Nagios Benutzername , Passwort Und Wurzel URL und klicken Sie Speichern Die URL sieht in etwa so aus: ip-or-domain/nagios3/cgi-bin/pagerduty.cgi Die Nicht einschließen https:// oder https:// Die Notiz: Sofern Sie dies nicht deaktiviert haben, benötigt 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 ausschließlich für den Webhook verwendet wird. Wenn Sie diese URL in Ihrem Browser aufrufen, sollten Sie Folgendes sehen: 400 Anfragen müssen POST-Anfragen sein. Falls Sie dies nicht sehen, überprüfen Sie Ihre Webserver-Protokolle, um Einzelheiten darüber zu erfahren, was beim Aufruf dieser URL passiert ist.

3. Um diese Integration zu testen, benötigen Sie in Nagios Core ein Problem, das ein Ereignis auslöst und einen Vorfall in PagerDuty initiiert. Die Bestätigung des Vorfalls sollte anschließend einen Kommentar hinzufügen, der besagt, dass der Vorfall von PagerDuty„bestätigt“ wurde.

Häufig gestellte Fragen

Ist eine bidirektionale Integration möglich, ohne dass meine Nagios Core-Installation über das Internet erreichbar sein muss?

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 IP-Adressen beschränken möchten, finden Sie entsprechende Informationen in der PagerDuty-Dokumentation. Webhook-IPs in unserer Wissensdatenbank: IPs auf die Safelist setzen Alternativ können Sie einen Dienst wie beispielsweise nutzen. 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 Zusammenarbeit mit mehreren PagerDuty -Diensten?

Dies ist mit der aktuellen Integration einfach möglich, da ein Nagios Core-Dienst in PagerDuty direkt einem „Kontakt“ in Nagios Core zugeordnet ist. Standardmäßig trägt dieser Kontakt den Namen 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 (z. B. pagerduty_database , pagerduty_network usw.). Kopieren Sie anschließend den entsprechenden Integrationsschlüssel von PagerDuty und fügen Sie ihn in das Feld ein. Pager Vergessen Sie nicht, Nagios Core neu zu starten, damit die Änderungen wirksam werden. Alternativ können Sie mehrere Dienste auch mithilfe eines Global Event Routing-Integrationsschlüssels konfigurieren (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, sobald die Verbindung wiederhergestellt ist.

Da Nagios Core meine externe Internetverbindung benötigt, um Fehlerberichte an PagerDuty zu senden, wie werde ich benachrichtigt, wenn unsere Website die externe Verbindung verliert?

Sie sollten einen externen Ping-Check-Dienst wie beispielsweise konfigurieren StatusCake oder NodePing Um die externe Konnektivität Ihrer Website zu überwachen. Selbstverständlich können Sie PagerDuty auch verwenden, um Benachrichtigungen von diesen Diensten zu erhalten.

Die Integration scheint nicht zu funktionieren. Woran liegt das?

Stellen Sie zunächst sicher, dass Sie Der PagerDuty Agent wurde installiert und dass Ihr Paketmanager bei der Installation keine Fehler gemeldet hat. Fehlgeschlagene Installationen (z. B. aufgrund einer inkompatiblen Distribution wie CentOS 5) sind die häufigste Ursache für eine nicht funktionierende Integration.

Überprüfen Sie, ob die Pagerdienst Der Kontakt wird hergestellt. GASTGEBER oder SERVICEMITTEILUNGEN im Syslog. Sie können Ihr Syslog mit grep durchsuchen, um zu sehen, ob Pagerdienst Der Kontakt wird benachrichtigt. Hier ist ein Beispiel von einem Ubuntu-System (auf RHEL-basierten Systemen befindet sich syslog unter [Pfad einfügen]). /var/log/messages ):

 grep NOTIFICATION /  var  /log/syslog 
 Mai   28   18  :  20  :  57  ip-  10  -  11  -  139  -  249  nagios3: DIENSTBENACHRICHTIGUNG: pagerduty;localhost;  Aktuell   Benutzer  ;KRITISCH;notify-service-  von  -pagerduty;BENUTZER KRITISCH -  3  Aktuell angemeldete Benutzer  In 

Wie Sie sehen können, Pagerdienst Der zuständige Ansprechpartner wurde benachrichtigt. SERVICEHINWEIS Wenn die Pagerdienst Es kommt nie zu einem Kontakt, das bedeutet, 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 Pagerdienst Der Kontakt ist Mitglied der Kontaktgruppe des Administrators. Wenn der Pagerdienst Der Kontakt wird benachrichtigt, überprüfen Sie das Agentenprotokoll unter /var/log/pdagent/pdagentd.log Die

Weitere Tipps zur Fehlerbehebung finden Sie in unserer Nagios-Fehlerbehebungsleitfaden Die

Welche Art von Nagios Core-Nachrichten versteht PagerDuty ?

PagerDuty kann verarbeiten PROBLEM , ANERKENNUNG , Und ERHOLUNG Nachrichten. Alle anderen Nachrichten, einschließlich FLAPPINGSTART Und FLAPPINGSTOP werden ignoriert.

Bereit loszulegen?

Testen Sie jedes Produkt in der Operations Cloud kostenlos. Keine Kreditkarte erforderlich.