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:
-
Zwei Ubuntu 16.04-Server, die unter https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04 eingerichtet wurden, einschließlich eines Handbuchs zur Einrichtung des Ubuntu 16.04-Erstservers. Root-Benutzer und eine Firewall.
-
Installieren Sie auf dem ersten Ubuntu-Server, auf dem Sie Nagios ausführen, die folgenden Komponenten:
-
Apache, MySQL und PHP finden Sie im Tutorial https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04 [So installieren Sie Linux, Apache, MySQL, PHP (LAMP) unter Ubuntu 16.04].
-
Nagios 4 wird installiert, indem Sie dem Tutorial How To folgen Installieren Sie Nagios 4 und überwachen Sie Ihre Server unter Ubuntu und dessen Voraussetzungen für die Konfiguration.
-
Installieren Sie auf dem zweiten Ubuntu-Server, auf dem Alerta in diesem Lernprogramm installiert wird, die folgenden Komponenten:
-
Nginx, installiert durch Befolgen des Tutorials How To Install Nginx on Ubuntu 16.04.
-
MongoDB, installiert mit folgendem Tutorial: Installation von MongoDB unter Ubuntu 16.04.
-
Alerta, installiert mit den Schritten 1 bis 6 im Tutorial https://www.digitalocean.com/community/tutorials/how-to-monitor-zabbix-alerts-with-alerta-on-ubuntu-16-04[How To Überwachen Sie Zabbix-Warnungen mit Alerta unter Ubuntu 16.04.
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:
-
* URL *: Die Adresse, die für die Kommunikation mit der Alerta-API verwendet wird. Sie haben dies in Schritt 3 des Tutorials How To Monitor Zabbix Alerts konfiguriert mit Alerta auf Ubuntu 16.04.
-
* key *: Der API-Schlüssel, den Sie in Schritt 4 des Tutorials https://www.digitalocean.com/community/tutorials/how-to-monitor-zabbix-alerts-with-alerta-on-ubuntu-16-04 erstellt haben [Überwachen von Zabbix-Warnungen mit Alerta unter Ubuntu 16.04]. Sie benötigen dies, um sich bei Alerta zu authentifizieren und Ereignisse zu posten.
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.