Gorodenkoff - stock.adobe.com
Icinga 2: Tipps zu Installation und Konfiguration
Die Open-Source-Lösung Icinga 2 kann Netzwerke effektiv überwachen. Die Installation und optimale Konfiguration unter Linux erfordert etwas Handarbeit in der Shell.
Icinga 2 wird meistens auf einem Linux-System installiert. Über Icinga Vagrant Boxes lassen sich Appliances als VM installieren, mit denen Icinga 2 relativ einfach im Netzwerk integriert werden kann. Neben der effektiven Überwachung über verschiedene Protokolle, kann Icinga 2 auch unterschiedliche Alarme auslösen. Benachrichtigungen lassen sich natürlich mit SMS und E-Mail erstellen. Aber auch Sprachalarme, Incident-Management-Systeme, Twitter und viele anderen Möglichkeiten stehen zur Verfügung, um Benachrichtigungen zu erstellen.
Gier finden Sie einen Überblick zur Netzwerk- und Serverüberwachung mit Icinga 2.
Icinga 2 installieren
Die Installation kann unter Linux durch die Verwendung der Pakete durchgeführt werden, welche durch die Entwickler zur Verfügung gestellt werden. Unter CentOS erfolgt die Installation zum Beispiel mit:
Yum install http://packages.icinga.com/epel/icinga-rpm-release-7-latest.noarch.rpm -y
Mit diesem Befehl werden die notwendigen Paketquellen integriert. Danach können Sie die Pakete installieren, die Icinga 2 benötigt. Optional können Sie weitere Pakete installieren, die Sie zur Verwaltung von Icinga 2 benötigen. Dabei handelt es sich zum Beispiel um zwei Erweiterungen für VIM, mit denen die Konfigurationsdateien von Icinga 2 besser bearbeitet werden können:
yum install icinga2 vim-enhanced vim-icinga2 -y
Icinga 2 unterstützt als ehemaliges Fork von Nagios auch dessen Plug-ins. Die Plug-ins können in Linux entweder einzeln installiert werden, oder alle Nagio-Plug-ins werden auf einmal eingerichtet. Das erfolgt mit dem Befehl:
Yum install nagios-plugins-all -y
Damit in der Shell auch Befehle automatisch ergänzt, also einfacher eingegeben werden können, ist es auch hilfreich, das Paket bash-completion zu installieren:
yum install bash-completion
Dieses Paket hilft vor allem bei der Komplettierung für Befehle für Icinga 2. Gestartet wird das Paket anschließend mit exec bash.
Nach der Installation müssen die Systemdienste von Icinga 2 aktiviert werden. Dadurch kann sichergestellt werden, dass bei Neustart des Systems auch Icinga 2 mit gestartet wird.
systemctl enable icinga2.service
Der Start des Dienstes erfolgt mit
systemctl start icinga2.service
Um zu überprüfen, ob Icinga 2 bereits gestartet ist und funktioniert, kann die entsprechende Protokolldatei mit dem folgenden Befehl aufgerufen werden:
tail -f /var/log/icinga2/icinga2.log
Bei der Datei handelt es sich um die Standard-Protokolldatei von Icinga 2.
Datenbankanbindung von Icinga 2
Die Daten von Icinga 2 werden in einer Datenbank gespeichert. Hier bietet es sich an, auf MySQL oder MariaDB zu setzen. Um die notwendigen Pakete zur Anbindung von Icinga 2 auf einen MariaDB/MySQL-Datenbank-Server auf dem Icinga-2-Server zu installieren, wird folgender Befehl genutzt:
yum install icinga2-ido-mysql -y
Wenn Datenbankserver und Icinga-2-Server auf zwei getrennten Servern laufen, ist es sinnvoll, auf dem Icing- 2-Server den MySQL/MariaDB-Client zu installieren, zum Beispiel mit yum install mariadb“.
Die eigentliche Datenbankanbindung wird in der Konfiguraitonsdatei /etc/icinga2/features-available/ido-mysql.conf vorgenommen. Hier wird auch das Kennwort für die Verbindung zum Datenbankserver angegeben. Ob die Datenbankanbindung funktioniert, lässt sich jederzeit mit tail -f /var/log/icinga2/icinga2.log überprüfen. Die Datenbankstruktur für Icinga 2 wird mit der Datei /usr/share/icinga2-ido-mysql/schema/mysql.sql angelegt.
Mit Icinga 2 arbeiten
Der Befehl icinga2 feature list zeigt eine Liste der in Icinga 2 aktivierten und der deaktivierten Funktionen. Für die Anbindung an MySQL/MariaBD muss das Feature ido-mysql mit dem Befehl icinga2 feature enable ido-mysql aktiviert werden. Nach der Aktivierung eines Features muss Icinga 2 neu gestartet werden. Das erfolgt zum Beispiel mit dem Befehl systemctl restart icinga2.service.
Für die eigentliche Arbeit mit Icinga 2 wird das Web-Frontend verwendet. Um dieses zu installieren, sollte die Linux-Distribution für die Verwendung von Icinga 2 vorbereitet sein. Das wird in unserem CentOS-Beispiel mit dem Befehl yum install centos-release-scl -y erledigt. Danach kann mit yum install icinga2web icingacli das Web-Frontend installiert werden. Zusätzlich wird mit yum install sclo-php71-php-pecl-imagick noch PHP installiert. Der Webserver Apache wird mit yum install httpd -y installiert. Generell sollte auch hier bei allen Diensten beachtet werden, dass diese mit systemctl enable aktiviert und danach mit systemctl start auch gestartet werden.
Für den Zugriff auf die Weboberfläche muss in der Linux-Firewall noch die Regel für HTTP freigeschaltet werden. Das erfolgt mit firewall-cmd --permanent --add-service=http und firewall-cmd --reload. Danach wird mit icingacli setup token create ein Token erstellt. Dieses wird bei der Einrichtung des Web-Front-Ends eingegeben. Die Adresse des Web-Front-Ends zur Einrichtung ist http://<Name oder IP>/icingaweb2/setup. Hier kann über einen Assistenten die Einrichtung von Icinga 2 erfolgen.
Hosts mit Icinga 2 überwachen
Sobald die Weboberfläche geöffnet ist, zeigt Icinga 2 den Status der überwachten Hosts an. Unter Übersicht\Hosts ist zu sehen, welche Hosts aktuell überwacht werden, und ob der Host funktioniert. Durch einen Klick auf den Host zeigt die Oberfläche eine genauere Liste der überwachten Dienste, um welchen Server es sich handelt, und ob der Server funktioniert.
Unter Servicegruppen sind die überwachten Dienste der Server zu sehen, und ob es bei den Services auf den überwachten Servern zu Problemen kommt.
Beim Anklicken eines Dienstes erscheinen auch hier ausführlichere Informationen. An den verschiedenen Informationsstellen sind Links verfügbar, mit denen wiederum zu den einzelnen Servern und den überwachten Diensten gesprungen werden kann.
So ist schnell zu erkennen, welcher Dienst auf einem Server Probleme macht und warum.
Um neue Hosts hinzuzufügen, wird die Datei /etc/icinga2/conf.d/hosts.conf bearbeitet.
Hier können neue Hosts nach der folgenden Syntax hinzugefügt werden:
object Host "Router" {
address = "192.168.1.1"
check_command = "hostalive"
}
Oder:
object Service "http" {
host_name = "Router"
check_command = "http"
}
Nach kurzer Zeit erscheint der Host mit seinen überwachten Diensten in der Oberfläche.