Icinga

Aus FisiWiki
Wechseln zu: Navigation, Suche
Icinga ist eine Software zum Monitoring komplexer IT-Infrastrukturen.
Icinga ist ein Fork der Monitoring-Software Nagios, und verwendet dessen Bibliotheken. Wir verwenden Icinga2 in der Version r2.4.1-1.
(thumbnail)
Icinga2 Webfrontend

Es automatisiert teilweise die Wartung unseres Webserver „fisicloud.de“. Ausgewählte Dienste und Programme werden regelmäßig auf Ihr Funktionieren getestet, und die Ergebnisse in einem Webfrontend grafisch hübsch aufbereitet den Administratoren präsentiert.

Treten Fehler auf warnt Icinga2 via Email die Administratoren. Auf diese Weise kann bequem und schnell reagiert werden. Icinga2/Nagios ist ein unverzichtbares Hilfsmittel um Systeme wie „fisicloud.de“ zu warten.


Monentan werden folgende Aspekte von "fisicloud.de" überwacht:

  • Die Erreichbarkeit (Ping von ute an fisicloud.de)
  • Webserver auf Port 80
  • MySQL Server (hierfür ist ein eigener MySQL-User mit dem Namen "nagiosuser" angelegt)
  • Updates im Apt Packetmanager
  • Die Festplatten


Inhaltsverzeichnis

Funktionsweise

Monitoring ist offensichtlich nur sinnvoll wenn der Monitoringdienst auf einem anderen Rechner läuft als auf dem welcher überwacht wird. Zum Fernmonitoring verwenden wir also den Rechner „ute“. Dieser stellt auch das Webfrontend bereit. Auf dem Rechner „fisicloud“ sind Nagiosplugins und NRPE-server installiert. Ute kann diese plugins über den Dienst NRPE von ferne starten und „fisicloud“ antwortet ihr. Icinga2 auf „ute“ speichert die empfangenen Messwerte dann in seiner mySQL-Datenbank. Liegen die Messwerte außerhalb des eingestellten Normalbereichs werden Warnungen als Email versendet und im Webfrontend angezeigt.

Icinga2 nennt die Zielrechner "Host" und die einzelnen überwachten Dienste "Services". Auf einem "Host" können mehrere "Services" gecheckt werden.

Installation

Vorraussetzungen

  • remote Rechner (ute)
    • Webserver Apache2
    • MySQL Server
    • MySQL PHP Bibliothek
    • PHP >= 5.3.0 mit gettext, intl, ImageMagick und OpenSSL support

Icinga2 und Icinga2web (ute)

Aus Platzgründen möchte wir hier auf die offizielle Dokumentation von Icinga2 verlinken.

Für das Webfrontend verwenden wir "icingaweb2". Dies muss natürlich auch installiert werden.

sudo apt-get install icingaweb2 icinga2-ido-mysql

Weiter folgen Sie bitte docs.icinga.org/icingaweb2

Plugins

Installation des NRPE-servers und der nagios-plugins auf "fisicloud.de"

sudo apt-get install nagios-nrpe-server nagios-plugins

Konfigurieren des NRPE-servers wird in der Datei /etc/nagios/nrpe_local.cfg erledigt.

allowed_hosts=<ip des Icinga Rechners>
# zum Beispiel
# allowed_hosts=192.168.0.0/16
# pfade für das nrpe_command
# command[<commandname]=/pfad/datei -paramenter
command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10%
command[check_apt]=/usr/lib/nagios/plugins/check_apt

NRPE-server neustarten:

service nagios-nrpe-server restart


Installation des NRPE-plugins auf "ute"

sudo apt-get install nagios-nrpe-plugin


Wenn Sie die Instaltion hinter sich gebracht haben folgt nun das

Einrichten von Hosts und Services

Host

Zu Beginn muss Icinga2 mit dem zu überwachenden Rechnern bekannt gemacht werden. Diese werden als Host bezeichnet.

Konfiguriert wird Icinga2 über die Konsole und eigene Kommandos. Diese sind hier aufgelistet. cli-commands

Ein neuer Host wird mit folgendem Befehl angelegt.

icinga2 repository host add name=<hostsname> address=<Ip-Addresse des zeilrechners> check_command=hostalive

Und danach die Änderung übergeben!

icinga2 repository commit

Nun haben wir einen neuen Host in unserem Icinga2. Im Verzeichnis /etc/icinga2/repository.d/hosts kann dessen Konfigurationsdatei gefunden und bearbeitet werden. Der Name lautet <hostname>.conf. Das Kommando „check_command=hostalive“ veranlasst Icinga2 den Host regelmäßig zu pingen und überwacht somit dessen Uptime.

Der Dienst Icinga2 muss noch neugestartet werden.

service icinga2 restart

Aber leider meldet Icinga einen Fehler. Um diesen zu beheben muss diese Zeile aus der Konfigurationsdatei entfernt werden.

nano /etc/icinga2/repository.d/hosts/<hostname>.conf
type = "Host" <--typezeile löschen

Nun sollte der Restart klappen.

service icinga2 restart

Service

Will man auf diesem Host einen korrekten Dienst, zB. den Apache Webserver überwachen, muss in Icinga2 ein neuer Service für den entsprechenden Host eingetragen werden. Folgender Befehl sollte das gewünschte Ergebnis bringen.

icinga2 repository service add name=<Name des Service> host_name=<hostname> check_command=http

Und wieder muss die Änderung übergeben werden!

icinga2 repository commit

Für den Host wurde nun ein neues Verzeichnis erstellt. /etc/icinga2/repository.d/hosts/<hostname>/ Und Dort findet man die zugehörigen Konfigurationsdateien für die einzelnen Services. Eine Liste aller durch Icinga2 kontrollierbaren Dienste findet sich unter Liste der check_command.

Der Dienst Icinga2 muss noch neugestartet werden.

service icinga2 restart

Aber leider meldet Icinga wieder einen Fehler. Um diesen zu beheben muss diese Zeile aus der Konfigurationsdatei entfernt werden.

nano /etc/icinga2/repository.d/hosts/<hostname>.conf
type = "Service" <--typezeile löschen

Nun sollte der Restart klappen.

service icinga2 restart

Dienste über NRPE-Server

Bestimmte Dienste können nicht so einfach wie ein Webserver, welcher gewöhnlich an Port 80 ins Netz lauscht, überwacht werden. Will man wie wir zB. den Speicherplatz auf den Festplatten aus der ferne überwachen, muss auf dem Host ein Programm existieren, dass Icinga2 diesen Zugriff erlaubt. Dazu haben wir vorher den Dienst NRPE-server installiert. Das Kommando für eine NRPE-abfrage sieht so aus:

icinga2 repository service add name=<Name des Service> host_name=<hostname> check_command=nrpe

Welches Kommando NRPE nun auf dem Host ausführen soll muss noch in die Konfigurationdatei geschrieben werden.

nano /etc/icinga2/repository.d/hosts/<hostname>/<Name des Service>.conf

Für das Beispiel der Festplatten sollte vars.nrpe_command="check_disk" darin gesetzt werden.

object Service "diskspace" {
       check_command = "nrpe"
       host_name = "fisicloud.de"
       vars.nrpe_command ="check_disk"
}

Die hier verwendeten NRPE-kommandos müssen auf dem Zielrechner mit den entsprechenden nagios-plugins verlinkt sein.

Dafür sollten sie ebenso wie der Monitoringrechner in der /etc/nagios/nrpe_local.cfg eingetragen sein.

allowed_hosts=<ip des Icinga Rechners>
# zum Beispiel
# allowed_hosts=192.168.0.0/16
# pfade für das nrpe_command
# command[<commandname]=/pfad/datei -paramenter
command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10%
command[check_apt]=/usr/lib/nagios/plugins/check_apt

Nach dem die Konfiguration geändert wurde NRPE neustarten!

service nagios-nrpe-server restart

Und zum Schluss den Neustart unseres Icinga nicht vergessen.

service icinga2 restart

Links

Meine Werkzeuge
Namensräume

Varianten
Aktionen
Navigation
Werkzeuge