Nagios-Integrationshandbuch – Agentenlos

Nagios ist einer der führenden Anbieter von Open Source- und unternehmenstauglichen IT-Infrastrukturüberwachungstools. Nagios wird von Hunderttausenden von Benutzern weltweit verwendet und ermöglicht seinen Benutzern die Überwachung ihrer gesamten IT-Infrastruktur, das Erkennen von Problemen, bevor sie auftreten, das Aufspüren von Sicherheitsverletzungen und die Planung/Budgetierung von IT-Upgrades.

Durch die Integration von PagerDuty in Ihre vorhandene Nagios-Überwachungslösung können Sie Nagios-Warnmeldungen direkt an die diensthabende Person in Ihrem PagerDuty Zeitplan senden.

Die folgende Anleitung beschreibt, wie Sie Ihre Nagios 2-, 3- oder 4-Installation mithilfe eines einfachen Perl-basierten Plugins in PagerDuty integrieren. Beachten Sie, dass Sie angemeldet sein müssen als Wurzel um die Installation abzuschließen. Sie müssen diese Anweisungen möglicherweise leicht ändern, je nach Ihrer genauen Linux-Distribution, Nagios-Konfiguration und Nagios-Version. Bitte Kontaktieren Sie unser Support-Team wenn Sie Probleme beim Abschließen der Integration haben.

Hinweis: Diese Anleitung wurde ersetzt durch die Handbuch zur bidirektionalen Nagios-Integration das verwendet die PagerDuty . Versuchen Sie zunächst, die Schritte im neuen Integrationshandbuch zu befolgen, und verwenden Sie dieses nur, wenn Sie ein System haben, auf dem der PagerDuty Agent nicht installiert werden kann. Beachten Sie auch, dass das bidirektionale Integrationsskript aus dem neuen Integrationshandbuch nicht so wie es ist mit der Perl-basierten Integration verwendet werden kann; die bidirektionale Integration wird nur bei Verwendung der neuen Integration unterstützt.

In PagerDuty

      1. Navigieren Sie zu Dienstleistungen Serviceverzeichnis .
      2. Auf Ihrem Serviceverzeichnis Seite:
      3. Wenn Sie einen neuen Dienst für Ihre Integration erstellen, klicken Sie auf +Neuer Service .
      4. 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. Klicken Sie dann auf Integrationen und klicken Sie auf die Eine neue Integration hinzufügen Verknüpfung.
      5. Wählen Sie Ihre App aus dem Integrationstyp und geben Sie eine Integrationsname .
      6. Wenn Sie einen neuen Dienst für Ihre Integration erstellen, geben Sie in den Allgemeinen Einstellungen einen Name für Ihren neuen Dienst. Konfigurieren Sie dann die Vorfalleinstellungen Und Vorfallverhalten für Ihren neuen Service.
      7. Drücke den Service hinzufügen oder Integration hinzufügen Schaltfläche, um Ihre neue Integration zu speichern. Sie werden auf die Seite Ihres Dienstes weitergeleitet.
      8. Kopiere das Integrationsschlüssel für Ihre neue Integration: RS_API_pd_3

Auf Ihrem Nagios-Server

Diese Anleitung enthält Schritte für Debian-basierte (z. B. Ubuntu) und RHEL-basierte (z. B. CentOS, Fedora) Linux-Distributionen. Sie müssen nicht alle Befehle in dieser Anleitung ausführen, sondern nur die für Ihren Systemtyp. Beachten Sie, dass alle bereitgestellten Befehle als Wurzel Benutzer.

      1. Installieren Sie die erforderlichen Perl-Abhängigkeiten. Für Debian-basierte Systeme:
         apt-get installiere libwww-perl libcrypt-ssleay-perl 

        Für RHEL-basierte Systeme:

         yum installiere perl-libwww-perl perl-Crypt-SSLeay 
      2. Herunterladen pagerduty_nagios.cfg von GitHub:
         wget https://raw.github.com/ PagerDuty/pagerduty-nagios-pl/master/pagerduty_nagios.cfg 
      3. Offen pagerduty_nagios.cfg in einem Texteditor.
      4. Geben Sie den Integrationsschlüssel für Ihren Nagios-Dienst in das Pager Feld. Der Schlüssel ist eine 32-stellige Zeichenfolge, die auf der Detailseite des Dienstes zu finden ist (Schritt 3 im Abschnitt „PagerDuty“ oben). Wenn Sie Nagios 4 verwenden: Für die in pagerduty_nagios.cfg wie unten gezeigt. Nehmen Sie diese Änderungen nicht vor, wenn Sie Nagios 2 oder 3 verwenden.
         Befehl definieren { Befehlsname notify-service-by-pagerduty Befehlszeile /usr/local/bin/pagerduty_nagios.pl in Warteschlange stellen -f pd_nagios_object=service -f CONTACTPAGER='$CONTACTPAGER$' -f NOTIFICATIONTYPE='$NOTIFICATIONTYPE$' -f HOSTNAME='$HOSTNAME$' -f SERVICEDESC='$SERVICEDESC$' -f SERVICESTATE='$SERVICESTATE$' -f HOSTDISPLAYNAME='$HOSTDISPLAYNAME$' -f SERVICEDISPLAYNAME='$SERVICEDISPLAYNAME$' -f SERVICEPROBLEMID='$SERVICEPROBLEMID$' } Befehl definieren { Befehlsname notify-host-by-pagerduty Befehlszeile /usr/local/bin/pagerduty_nagios.pl in Warteschlange stellen -f pd_nagios_object=host -f CONTACTPAGER='$CONTACTPAGER$' -f BENACHRICHTIGUNGSTYP='$BENACHRICHTIGUNGSTYP$' -f HOSTNAME='$HOSTNAME$' -f HOSTSTATE='$HOSTSTATE$' -f HOSTDISPLAYNAME='$HOSTDISPLAYNAME$' -f HOSTPROBLEMID='$HOSTPROBLEMID$' } 
      5. Kopieren Sie die Nagios-Konfigurationsdatei an den richtigen Ort: Für Debian-basierte Systeme ist dies normalerweise /etc/nagios3/conf.d :
         cp pagerduty_nagios.cfg /etc/nagios3/conf.d 

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

         cp pagerduty_nagios.cfg /etc/nagios 
      6. Überspringen Sie diesen Schritt, wenn Sie eine Debian-basierte Distribution verwenden. Wenn Sie eine RHEL-basierte Distribution verwenden, müssen Sie die Nagios-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 
      7. Fügen Sie den Kontakt „pagerduty“ zur Hauptkontaktgruppe Ihrer Nagios-Konfiguration hinzu. Wenn Sie die Standardkonfiguration verwenden, öffnen Sie /etc/nagios3/conf.d/contacts_nagios2.cfg (für Debian-basierte Systeme) oder /etc/nagios/localhost.cfg (für RHEL-basierte Systeme) 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  ; Fügen Sie hier Pagerduty hinzu  } 
      8. Herunterladen pagerduty_nagios.pl von GitHub und kopiere es nach /usr/local/bin .
         wget https://raw.github.com/ PagerDuty/pagerduty-nagios-pl/master/pagerduty_nagios.pl cp pagerduty_nagios.pl /usr/local/bin 
      9. Stellen Sie sicher, dass die Datei von Nagios ausführbar ist:
         chmod 755 /usr/local/bin/pagerduty_nagios.pl 
      10. Wenn nicht bereits aktiviert, aktivieren Sie Umgebungsvariablenmakros in /etc/nagios3/nagios.cfg (für Debian-basierte Systeme) oder /etc/nagios/nagios.cfg (für RHEL-basierte Systeme):
         enable_environment_macros=1 

        Dieser Schritt ist erforderlich. Die Integration wird nicht funktionieren wenn Sie keine Umgebungsmakros aktiviert haben.

      11. Bearbeiten Sie die Nagios Cron-Tabelle des Benutzers:
         crontab -u nagios -e 
      12. Fügen Sie der Datei die folgende Zeile hinzu:
         * * * * * /usr/local/bin/pagerduty_nagios.pl leeren 
      13. Starten Sie Nagios neu. Für Debian-basierte Systeme:
         /etc/init.d/nagios3 Neustart 

        Für RHEL-basierte Systeme:

         Dienst Nagios neu starten 

FAQ

Wie funktioniert diese Integration und worin besteht der Unterschied zu der neueren Integration?

Diese Integration verwendet ein Perl-Skript, das mit älteren Linux-Distributionen kompatibel ist als die neueren agentenbasierte Integration , allerdings fehlt die bidirektionale Funktionalität der neuen Integration. Sie können das bidirektionale Skript der agentenbasierten Integration nicht so wie es ist mit dem Perl-Skript verwenden; die bidirektionale Integration wird nur bei Verwendung der neuen Integration unterstützt. Aus diesem Grund empfehlen wir die Verwendung der agentenbasierten Integration, es sei denn, Sie verwenden ein System, mit dem der Agent nicht kompatibel ist (z. B. CentOS 5).

Das Perl-Skript fügt von Nagios empfangene Ereignisse zu einer Warteschlange hinzu. /tmp/pagerduty_nagios . Das Skript versucht, die Warteschlange zu leeren (Ereignisse an PagerDuty zu senden), unmittelbar nachdem es sie von Nagios empfangen hat. Wenn das Skript PagerDuty aus irgendeinem Grund nicht erreichen kann (z. B. aufgrund von Verbindungsproblemen), bleiben die Ereignisse in der Warteschlange. Der Cron-Job dient dazu, die Warteschlange erneut zu leeren, wenn etwas nicht gesendet wurde.

Das Skript verfügt über einige Optionen, die Sie bei der Ausführung festlegen können, darunter die Möglichkeit, das für die Warteschlange verwendete Verzeichnis zu ändern oder einen Proxy festzulegen. Die Optionen sind dokumentiert im Skript . Beachten Sie, dass Sie alle Optionen in beide der in Ihrer Nagios-Konfiguration definierten Befehle sowie des Cron-Jobs.

Tipp: Wenn Sie Probleme mit der Integration haben und sich mehrere Ereignisse in der Warteschlange ansammeln, die nicht an PagerDuty gesendet werden sollen, entfernen Sie einfach die Ereignisdateien in /tmp/pagerduty_nagios um zu verhindern, dass sie gesendet werden, wenn das Skript erfolgreich Warnungen an PagerDuty senden kann.

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

Dies ist mit der aktuellen Integration einfach zu bewerkstelligen, da ein Nagios-Dienst in PagerDuty direkt einem „Kontakt“ in Nagios 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, Nagios neu zu starten, damit die Änderungen 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 Cron-Job versucht einmal pro Minute, die Ereignisse erneut zu senden.

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 Warnungen von diesen Diensten weiterzuleiten.

Die Integration scheint nicht zu funktionieren. Was ist los?

Überprüfen Sie zunächst das Syslog auf Nachrichten mit pagerduty_nagios .

Für Debian-basierte Systeme:

 grep pagerduty_nagios /var/log/syslog 

Für RHEL-basierte Systeme:

 grep pagerduty_nagios /var/log/messages 

Weitere Tipps zur Fehlerbehebung finden Sie in unserem Nagios-Handbuch zur Fehlerbehebung .

Welche Art von Nagios-Nachrichten versteht PagerDuty ?

PagerDuty kann verarbeiten PROBLEM , WISSEN , 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.

Beginnen Sie noch heute mit der Nutzung von PagerDuty

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

MELDEN SIE SICH AN