- PagerDuty /
- Integrationen /
- Nagios-Integrationshandbuch
Nagios-Integrationshandbuch
Vorteile der PagerDuty + Nagios Core-Integration
- Benachrichtigen Sie Bereitschaftskräfte anhand von Warnungen, 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-Walkthrough
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 Orchestration
Durch die Integration mit Event Orchestration können Sie Ereignisse basierend auf der Nutzlast des Ereignisses aus dem integrierten Tool an bestimmte PagerDuty -Dienste weiterleiten. Wenn Sie mehr erfahren möchten, lesen Sie bitte unseren Artikel über Ereignisorchestrierung .
- Navigieren Sie zu AIOps → Ereignisorchestrierung und wählen Sie Ihre bevorzugte Orchestrierung aus.
- Wählen Sie die Integrationen und kopieren Sie dann Ihre bevorzugte Integrationsschlüssel Bewahren Sie diesen Schlüssel für spätere Schritte an einem sicheren Ort auf. Wenn Sie die Integration eingerichtet haben, kehren Sie zu dieser Schnittstelle zurück, um anzugeben, wie Ereignisse an Dienste in PagerDuty weitergeleitet werden sollen.
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 Ereignisregeln auf Serviceebene um Aktionen wie das Unterdrücken nicht umsetzbarer Warnungen und das Anpassen des Schweregrads durchzuführen.
1. Von der Leistungen wählen Sie im Menü Serviceverzeichnis .
2. Wenn Sie Ihre Integration zu einem vorhandenen 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 in der Erstellen eines neuen Dienstes Abschnitt.
3. Wählen Sie Nagios Core aus dem Integrationstyp Speisekarte.
4. Klicken Dienst 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 ∨. Ein Integrationsschlüssel wird auf diesem Bildschirm generiert. Bewahren Sie diesen Schlüssel an einem sicheren Ort auf, da er im nächsten Abschnitt bei der Konfiguration der Integration mit Nagios Core benötigt wird.
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, z. B. CentOS, Fedora) Linux-Paketmanager sowie für Systeme, auf denen Nagios Core aus dem Quellcode installiert wurde („Quellinstallationen“). Sie müssen nicht alle Befehle in dieser Anleitung 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 benötigt 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 den richtigen Ort. 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/objects
:
mv pagerduty_nagios.cfg /usr/ lokal /nagios/etc/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=/etc/ 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
(bei 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 Pagerdienst 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
Die Variable verweist auf Ihre Nagios Core-Befehlsdatei. Der Pfad kann durch Ausführen des Befehls 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
gleich 1
und dass die Variable Befehlsprüfintervall
ist auf einen für Ihre Umgebung angemessenen Wert eingestellt. Die Befehlsprüfintervall
Die Variable bestimmt, wie oft Nagios Core prüft, ob externe Befehle ausgeführt werden können.
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 und klicken Sie dann auf + Neue Erweiterung.
2. Für die Verlängerung Typ wählen Nagios , geben Sie dann in ein Name für Ihren Webhook fügen Sie Ihren Nagios Benutzername , 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 Sie dies nicht sehen, überprüfen Sie die Protokolle Ihres Webservers auf Einzelheiten dazu, was passiert ist, als Sie versucht haben, diese URL aufzurufen.
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. Anschließend 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 Zwei-Wege-Integration nutzen, ohne dass meine Nagios Core-Installation über das Internet zugänglich ist?
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 Safelist 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 möglich, 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_network
, 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 zur Konfiguration 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 StatusCake oder NodePing 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 bei der Installation 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 SERVICEBENACHRICHTIGUNGEN
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/messages
):
grep-BENACHRICHTIGUNG / var /log/syslog
Mai 28 18 : 20 : 57 ip- 10 - 11 - 139 - 249 nagios3: SERVICEBENACHRICHTIGUNG: 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 SERVICEBENACHRICHTIGUNG
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 die Pagerdienst
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
.
Weitere Tipps zur Fehlerbehebung finden Sie in unserem Nagios-Handbuch zur Fehlerbehebung .
Welche Art von Nagios Core-Nachrichten versteht PagerDuty ?
PagerDuty kann verarbeiten PROBLEM
, ANERKENNUNG
, Und ERHOLUNG
Nachrichten. Alle anderen Nachrichten, einschließlich FLAPPINGSTART
Und FLAPPENSTOP
, werden ignoriert.
Bereit, loszulegen?
Testen Sie jedes Produkt in der Operations Cloud kostenlos.
Keine Kreditkarte erforderlich.