Konfiguration

Nach dem ersten Login sollten Sie die sogenannte NagiosQL-Domain (Standard ist Localhost) anpassen, die dafür notwendigen Einstellungen finden sich unter »Verwaltung | Domänen« . Hier sind die Verzeichnisse definiert, in denen Nagios die von NagiosQL erstellten Konfigurationsdateien erwartet. Die wichtigsten Einstellungen fasst Tabelle 1 beispielhaft zusammen. Die hier verwendeten Einstellungen müssen ebenfalls in der Nagios-Konfigurationsdatei »nagios.cfg« definiert sein, Listing 1 zeigt die passenden Einträge. Analog zu diesen müssen Sie die lokalen Verzeichnisse anlegen und mit den korrekten Berechtigungen ausstatten. Da NagiosQL mit den Rechten des Webservers agiert, müssen die Verzeichnisse vom entsprechenden Benutzer schreibbar, vom Nagios-Benutzer zumindest noch lesbar sein. Damit NagiosQL die aktuelle Konfiguration überprüfen kann, muss die Binärdatei »nagios« für den Webserver-Benutzer ausführbar sein. Ebenso sollten das Lockfile »nagios.pid« oder »nagios.lock« (in »nagios.cfg« definiert) lesbar und das Nagios-Command-Interface »nagios.cmd« ebenfalls vom Webserver-Benutzer beschreibbar sein.

Tabelle 1

Ausschnitt der Domain-Konfiguration

Parameter

Beispielpfade

Beschreibung

Basisverzeichnis

/etc/nagiosql/

NagiosQL-Basisverzeichnis, zum Beispiel für command.cfg, contacts.cfg

Hostverzeichnis

/etc/nagiosql/hosts/

NagiosQL-Hosts, zum Beispiel localhost.cfg

Serviceverzeichnis

/etc/nagiosql/services/

NagiosQL-Services, zum Beispiel check_disk.cfg

Nagios Basisverzeichnis

/etc/nagios/

Nagios-Basisverzeichnis für nagios.cfg und cgi.cfg

Listing 1

Ausschnitt aus <C>nagios.cfg<C>

cfg_file=/etc/nagiosql/commands.cfg
cfg_file=/etc/nagiosql/timeperiods.cfg
cfg_file=/etc/nagiosql/contacttemplates.cfg
cfg_file=/etc/nagiosql/contactgroups.cfg
cfg_file=/etc/nagiosql/contacts.cfg
cfg_file=/etc/nagiosql/hosttemplates.cfg
cfg_file=/etc/nagiosql/hostgroups.cfg
cfg_dir=/etc/nagiosql/hosts
cfg_file=/etc/nagiosql/hostdependencies.cfg
cfg_file=/etc/nagiosql/hostescalations.cfg
cfg_file=/etc/nagiosql/hostextinfo.cfg
cfg_file=/etc/nagiosql/servicetemplates.cfg
cfg_file=/etc/nagiosql/servicegroups.cfg
cfg_dir=/etc/nagiosql/services
cfg_file=/etc/nagiosql/servicedependencies.cfg
cfg_file=/etc/nagiosql/serviceescalations.cfg
cfg_file=/etc/nagiosql/serviceextinfo.cfg

Befehle

In Nagios ist eine Anweisung entweder als ein Check-Command wie »check_disk« , ein Notify-Command wie »notify-by-mail« oder ein Event-Handler wie Restart-Apache definiert, Unterscheidungen in der Syntax gibt es grundsätzlich keine. Um das Zuweisen der Commands für den User einfacher zu machen, unterscheidet NagiosQL zwischen Prüf- (Check-Commands) und Spezialbefehlen (Notify-Command und Event-Handler). Unter »Befehle | Definitionen« erstellen Sie zuerst einen einfachen Prüfbefehl für die Hostverfügbarkeit. Den Befehl nennen Sie »check_host_alive« und fügen in die Befehlszeile einen Ping-Check (Bestandteil der offiziellen Nagios Plugins) ein: »$USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5« . »$USER1$« dient als internes Nagios Makro und wird durch den Installationspfad der Nagios-Plugins (definiert in der Datei »resource.cfg« aus dem Nagios-Basisverzeichnis) ersetzt. »$HOSTADDRESS$« ist ebenfalls ein Nagios-Makro und wird durch die IP-Adresse des aktiven Hosts ersetzt. Weitere Makro Definitionen sind in einer Tabelle im Nagios-Handbuch [5] ausführlich beschrieben.

Zu guter Letzt aktivieren und speichern Sie den neu hinzugefügten Prüfbefehl. Analog zum Prüfbefehl »check_host_alive« erstellen Sie den Prüfbefehl »check_ping« um Serviceüberprüfungen und später gegebenenfalls Serviceabhängigkeiten aufbauen zu können. Als Befehlszeile verwenden Sie ebenfalls das Ping-Plugin, dass Sie über Parameter »$ARGn$« justieren können: »$USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5« . Informationen über die Syntax von Befehlen erhalten Sie grundsätzlich durch die Eingabe von »Plugin -h« in der Shell.

Neben den Prüfbefehlen benötigten Sie Spezialbefehle für die Benachrichtigung der zuständigen Administratoren. Da sich die Informationen bei einem Service-Ausfall gegenüber dem eines Host-Ausfalls unterscheiden, definieren Sie auch hier zwei Befehle: »notify-host-by-email« und »notify-service-by-email« . Die einfachsten Notify-Commands setzen sich aus einem »Print« - und einem »Mail« -Befehl zusammen. Die komplette Befehlszeile für eine Host-Benachrichtigung zeigt Listing 2.

Listing 2

E-Mail-Benachrichtigung

/usr/bin/printf "%b" "***** Nagios *****\n\nBenachrichtigungstyp: $NOTIFICATIONTYPE$\nServer: $HOSTNAME$\nStatus: $HOSTSTATE$\nIP: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDatum/Uhrzeit: $LONGDATETIME$\n" | mail -s "** $NOTIFICATIONTYPE$ Server Alarm: $HOSTNAME$ ist $HOSTSTATE$ **" $CONTACTEMAIL$.

Mit Hilfe der Makroliste lassen sich diese Spezialbefehle auf die eigenen Bedürfnisse anpassen und erweitern.

comments powered by Disqus

Artikel der Woche

Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2018