So überwachen Sie Nagios-Warnungen mit Alerta unter Ubuntu 16.04

Einführung

Alerta ist eine Webanwendung, mit der Warnmeldungen aus mehreren Überwachungssystemen konsolidiert, de-dupliziert und auf einem einzigen Bildschirm angezeigt werden. Alerta kann in viele bekannte Überwachungstools wie Nagios, Zabbix, Sensu, InfluxData Kapacitor und viele andere integriert werden.

In diesem Tutorial richten Sie Alerta ein und konfigurieren es so, dass Benachrichtigungen von http://nagios.org [Nagios], dem beliebten Open-Source-Überwachungssystem, angezeigt werden.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

Schritt 1 - Installieren des Nagios-to-Alerta-Gateways

Sie können die Nagios-Funktionalität mit NEB-Modulen (Nagios Event Broker) erweitern. NEB ist der Event-Integrationsmechanismus von Nagios, und NEB-Module sind gemeinsam genutzte Bibliotheken, mit denen Sie andere Services in Nagios integrieren können. In diesem Schritt installieren wir Nagios to Alerta Gateway, das NEB-Modul, das Benachrichtigungen an Alerta sendet.

Melden Sie sich bei Ihrem Nagios-Server als Nicht-Root-Benutzer an:

ssh sammy@

Das Nagios to Alerta-Gateway verfügt nicht über vorkonfigurierte Systempakete, daher müssen Sie es aus dem Quellcode erstellen. Dazu müssen Sie einige Entwicklungstools und -dateien installieren. Außerdem muss Git installiert sein, damit Sie den Quellcode von GitHub abrufen können.

sudo apt-get install -y git curl gcc make libcurl4-openssl-dev

Verwenden Sie Git, wenn die Voraussetzungen installiert sind, um den Quellcode aus dem GitHub-Repository des Projekts zu klonen:

git clone https://github.com/alerta/nagios-alerta.git

Wechseln Sie dann in das neue Verzeichnis "+ nagios-alerta +":

cd nagios-alerta

Dann kompiliere das + nagios-alerta + Modul mit + make +:

make nagios4

Sie sehen die folgende Ausgabe:

Outputcd ./src && make nagios4
make[1]: Entering directory '/home/sammy/nagios-alerta/src'
gcc -fPIC -g -O2 -DHAVE_CONFIG_H -I../include -I../include/nagios4 -lcurl -o alerta-neb.o alerta-neb.c -shared  -lcurl
make[1]: Leaving directory '/home/sammy/nagios-alerta/src'

Wenn Sie etwas anderes sehen, stellen Sie sicher, dass alle Voraussetzungen installiert sind.

Führen Sie nun die Installationsaufgabe aus:

sudo make install

Diese Ausgabe zeigt an, dass das Modul unter "+ / usr / lib / nagios +" installiert wurde:

Outputcd ./src && make install
make[1]: Entering directory '/home/sammy/nagios-alerta/src'
[ -d /usr/lib/nagios ] || mkdir /usr/lib/nagios
install -m 0644 alerta-neb.o /usr/lib/nagios
make[1]: Leaving directory '/home/sammy/nagios-alerta/src'

Wenn das Modul installiert ist, können wir Nagios für die Verwendung dieses neuen Moduls konfigurieren.

Schritt 2 - Konfigurieren Sie das Nagios-to-Alerta-Gateway

Lassen Sie uns Nagios so konfigurieren, dass Benachrichtigungen an Alerta gesendet werden.

Aktivieren Sie zunächst das neu installierte Alerta-Broker-Modul in der Nagios-Hauptkonfigurationsdatei. Öffnen Sie die Nagios-Konfigurationsdatei in Ihrem Editor:

sudo vi /usr/local/nagios/etc/nagios.cfg

Suchen Sie den Abschnitt, der die Direktiven "+ broker_module +" enthält:

/usr/local/nagios/etc/nagios.cfg

...
# EVENT BROKER MODULE(S)
# This directive is used to specify an event broker module that should
# by loaded by Nagios at startup.  Use multiple directives if you want
# to load more than one module.  Arguments that should be passed to
# the module at startup are separated from the module path by a space.
#
[...]
#broker_module=/somewhere/module1.o
#broker_module=/somewhere/module2.o arg1 arg2=3 debug=0
...

Um das Alerta-Modul zu konfigurieren, müssen Sie zwei obligatorische Argumente angeben:

Fügen Sie diese Zeile zur Datei hinzu, um die Alerta-Integration zu konfigurieren:

/usr/local/nagios/etc/nagios.cfg

...
broker_module=/usr/lib/nagios/alerta-neb.o http:// key=
...

Es gibt einige zusätzliche optionale Argumente, die Sie ebenfalls angeben können:

  • * env *: Gibt den Umgebungsnamen an. Der Standardname für die Umgebung lautet "+ Produktion".

  • * hard_only *: Forwards führt nur zum Hard-Status. Weitere Informationen zu Nagios-Statustypen finden Sie unter in der Nagios-Dokumentation. Stellen Sie dies auf + 1 +, um diesen Modus zu aktivieren.

  • * debug *: - Aktiviert den Debug-Modus für das Modul. Stellen Sie dies auf + 1 +, um diesen Modus zu aktivieren.

Verwenden Sie stattdessen diese Zeile, um alle diese Optionen anzugeben:

/usr/local/nagios/etc/nagios.cfg

...
broker_module=/usr/lib/nagios/alerta-neb.o http:// key= env= hard_only= debug=
...

Speichern Sie die Datei und beenden Sie den Editor.

Um Warnungen anhand von Umgebungs- und Servicenamen zu identifizieren, müssen Sie Umgebungs- und Servicenamen unter Verwendung von Nagios einrichten. Https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/customobjectvars.html [ Benutzerdefinierte Objektvariablen]. Verwenden Sie dazu die Variablen "+ _Environment " und " _Service +" in Ihrer Konfiguration. Lassen Sie uns diese jetzt konfigurieren.

Öffnen Sie die standardmäßige Nagios-Host-Objektkonfigurationsdatei, die Sie im Verzeichnis "+ / usr / local / nagios / etc / objects / +" finden:

sudo vi /usr/local/nagios/etc/objects/localhost.cfg

Wir markieren alle Warnungen mit diesem Host als * Production * -Warnungen und rufen den Standardservice * Nagios * an. Suchen Sie die folgende Hostdefinition:

/usr/local/nagios/etc/objects/localhost.cfg

...
define host{
       use                     linux-server            ; Name of host template to use
                                                       ; This host definition will inherit all variables that are defined
                                                       ; in (or inherited by) the linux-server host template definition.
       host_name               localhost
       alias                   localhost
       address                 127.0.0.1
       }

...

Fügen Sie der Konfiguration die Werte "+ _Environment " und " _Service +" hinzu:

/usr/local/nagios/etc/objects/localhost.cfg

...
       host_name               localhost
       alias                   localhost
       address                 127.0.0.1


       }
...

Markieren Sie jetzt alle Ereignisse, die mit einem Platzmangel auf der Systempartition zusammenhängen, als * System * -Warnungen. Suchen Sie diesen Abschnitt der Datei, in dem definiert wird, wie nach freiem Speicherplatz gesucht wird:

/usr/local/nagios/etc/objects/localhost.cfg

...
define service{
       use                             local-service         ; Name of service template to use
       host_name                       localhost
       service_description             Root Partition
       check_command                   check_local_disk!20%!10%!/
       }
...

Ändern Sie es, um es dem Dienst "+ System +" zuzuordnen:

/usr/local/nagios/etc/objects/localhost.cfg

...
define service{
       use                             local-service         ; Name of service template to use
       host_name                       localhost
       service_description             Root Partition
       check_command                   check_local_disk!20%!10%!/

       }
...

Speichern Sie die Datei und beenden Sie den Editor. Starten Sie Nagios neu, um diese neuen Einstellungen anzuwenden:

sudo systemctl restart nagios.service

Überprüfen Sie die Nagios-Protokolldatei, um sicherzustellen, dass der Dienst ordnungsgemäß ausgeführt wird:

tail /usr/local/nagios/var/nagios.log

Sie sehen die folgende Ausgabe:

Output...
[1505804481] [alerta] Initialising Nagios-Alerta Gateway module, v3.5.0
[1505804481] [alerta] debug is on
[1505804481] [alerta] states=Hard (only)
[1505804481] [alerta] Forward service checks, host checks and downtime to http://your_alerta_server_ip/api
[1505804481] .
[1505804481] Successfully launched command file worker with pid 25416

Nun sendet Nagios eine Benachrichtigung, sobald ein System oder ein Dienst ausfällt. Lassen Sie uns ein Testereignis generieren.

Schritt 3 - Generieren eines Test-Alerts zur Überprüfung der Nagios-Alerta-Integration

Lassen Sie uns einen Testalarm generieren, um sicherzustellen, dass alles verbunden ist. Standardmäßig verfolgt Nagios die Menge an freiem Speicherplatz auf Ihrem Server. Wir erstellen eine temporäre Datei, die groß genug ist, um den Nagios-Dateisystemnutzungsalarm auszulösen.

Stellen Sie zunächst fest, wie viel Speicherplatz auf dem Nagios-Server verfügbar ist. Sie können den Befehl + df + verwenden, um Folgendes herauszufinden:

df -h

Die Ausgabe sieht folgendermaßen aus:

Output    Filesystem      Size  Used Avail Use% Mounted on
   /dev/vda1        20G  3.1G      17% /

Sehen Sie sich den verfügbaren freien Speicherplatz an. In diesem Fall beträgt der freie Speicherplatz "+ 16GB +". Ihr freier Speicherplatz kann abweichen.

Verwenden Sie den Befehl + fallocate +, um eine Datei zu erstellen, die mehr als 80% des verfügbaren Speicherplatzes belegt. Dies sollte ausreichen, um die Warnung auszulösen:

fallocate -l 14G /tmp/temp.img

Innerhalb weniger Minuten wird Nagios eine Benachrichtigung über den verfügbaren Speicherplatz auslösen und die Benachrichtigung an Alerta senden. Sie sehen diese neue Benachrichtigung im Alerta-Dashboard:

image: https: //assets.digitalocean.com/articles/alerta_nagios_cent7/xPCO3K0.png [Alerta zeigt die Warnung zu freiem Speicherplatz von Nagios an]

Nachdem Sie wissen, dass die Warnungen funktionieren, löschen Sie die von Ihnen erstellte temporäre Datei, damit Sie Ihren Speicherplatz zurückfordern können:

rm -f /tmp/temp.img

Nach einer Minute sendet Nagios die Wiederherstellungsnachricht. Die Warnung verschwindet dann aus dem Haupt-Alerta-Dashboard. Sie können jedoch alle geschlossenen Ereignisse anzeigen, indem Sie * Geschlossen * auswählen.

image: https: //assets.digitalocean.com/articles/alerta_nagios_cent7/NrCfEUV.png [Alertas geschlossene Benachrichtigungen]

Sie können auf die Ereigniszeile klicken, um weitere Details anzuzeigen.

Fazit

In diesem Tutorial haben Sie Nagios so konfiguriert, dass Benachrichtigungen an einen anderen Server gesendet werden, auf dem Alerta ausgeführt wird.

Mit Alerta können Sie Warnungen von vielen Systemen bequem nachverfolgen. Wenn beispielsweise einige Teile Ihrer Infrastruktur Nagios und andere Zabbix verwenden, können Sie Benachrichtigungen von beiden Systemen in einem Panel zusammenführen.