So, mich hat das dann doch nicht in Ruhe gelassen:
Anleitnug Installation von NRPE auf der Synology DS110j.
Zur Überwachung der DiskStation über den Dienst "Nagios" verwende ich folgende
Komponenten:
Nagios-Server: Igel TC 5/4 mit Debian 6.
Nagios-Client: NRPE installiert via IPKG
Vorbereitung auf dem Debian-Hostsystem:
- apt-get update && apt-get -y upgrade
- apt-get install nagios3 (es werden alle nötigen Pakete mit installiert - apache2, php, dnsutils, smbclient, etc.)
- apt-get install nagios-plugins nagios-nrpe-plugin nagios-plugins-basic (zum Selbsttest, einige sind davon wahrscheinlich nicht notwendig).
Während der Installation ist die Eingabe von Zugangsdaten für die Nagios WebGUI erforderlich.
Die Einrichtung des smbclients, also des Linux-Clients für die Samba-Umgebung benötigt den Namen Workgroup.
Sollten Sie eine Domäne mit einem PDC betreiben und den Nagios-Monitoring-Server dort einbinden wollen,
ist die Installation vom vollständigen Samba-Paket nötig.
Nach der Installation von Nagios3, lässt sich die WebGUI bereits aufrufen - unter
http://ipadresse_des_servers/nagios3
und nach dem Login sieht es so aus:
unter Services sieht es dann so aus:
Im Grunde ist die Basisinstallation von Nagios abgeschlossen.
Kommen wir nun zum Konfigurieren.
Nagios setzt sich aus vielen Konfigurationsdateien (*.cfg) zusammen.
Es können so genannten "Host Groups" und "Service Groups" gebildet werden.
Darauf gehe ich jetzt hier nicht ein.
Hier ein grober Überblick über die einzelnen Config-Dateien:
Bei Debian 6 befinden sich die Config-Dateien im Verzeichnis /etc/nagios3
Die Datei
nagios.cfg beinhaltet alle Pfade zu den restlichen *.cfg-Dateien, zu den Logfiles und sehr viele weitere
Angabe zu Intervallen, Usern etc. mit knapp 1300 Zeilen auch sehr viel Lesestoff.
In der Datei
resoucre.cfg befindet sich die Angabe $USER1$ - welch den Pfad zu den Plugins angibt.
Es können hier natürlich noch weitere Verzeichnisse angegeben werden, dann aber mit $USER2$ etc.
In der Datei
commands.cfg können einzelne commands, also Befehle für den NagiOS-Check konfiguriert werden
dazu mehr unter "Eigene Commands".
In der Datei
cgi.cfg werden grundlegende Angaben des Webservers - Homeverz. für Nagios-WebGUI, Pfad der nagios.cfg, berechtigte User etc.
Es sind nur 370 Zeilen, mit Kommentaren.
Die Konfigurationsdateien zu den einzelnen Hosts, den "Host Groups", Kontakten, etc. befinden sich im Unterverzeichnis ./conf.d
Nehmen wir uns als erstes die Datei "/etc/nagios3/conf.d/contacts_nagios2.cfg" vor.
Hier können wir die E-Mailadresse eingeben, welche Statusmeldungen, Warnungen und so genannte Recoverys bekommen soll.
#----------------------
# In this simple config file, a single contact will receive all alerts.
define contact{
contact_name root
alias Root
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email root@localhost <--------------- E-Mailadresse
}
#----------------------
Es können auch weitere User dieser Gruppe hinzugefügt werden.
Die Konfiguration der Gruppe stehe ebenfalls in dieser Datei und sieht folgendermaßen aus:
#----------------------
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members root
}
#----------------------
Die Einrichtung des lokalen E-Mailservers beschreibe ich hier nicht.
Daher belassen wir die E-Mailadresse auf "root@localhost".
Mit dem Befehl "mail" lässt sich in einer Shell auch auf erhaltene E-Mails (@localhost) zugreifen.
Vorrausgesetzt ein entsprechendes Programm ist installiert.
Kommen wir nun zum interessanten Teil, die Einrichtung des Hosts den wir prüfen wollen - unsere Synology DS110j.
Jeder Host sollte zu einer "Host Group" gehören, wer mehrere Hosts einer "Art" hat sollte diese in solchen Gruppen
auch anlegen. Hier ein Beispiel einer solchen Gruppe - ich habe sie "Linux-Box" genannt.
#----------------------
define host {
name linux-box ; Name of this template
use generic-host ; Inherit default values
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period 24x7
notification_interval 30
notification_options d,r
contact_groups admins
register 0 ; DONT REGISTER THIS - ITS A TEMPLATE
}
#----------------------
In der Config-Datei des Hosts tauch diese Gruppe wieder auf.
#----------------------
define host{
use linux-box ; Inherit default values from a template
host_name DiskStation ; The name we're giving to this server
alias Synology DS110j ; A longer name for the server
address IP-Adresse ; IP address of the server
}
#----------------------
Im weiteren Verlauf können einzelne Services für diesen Host erstellt werden, diese wiederum werden aus der
/etc/nagios3/commands.cfg ausgelesen.
NRPE benötigen wir um den Status des Client abzufragen, dazu werden Befehle von unserem NagiOS-Server auf den Client zu übertragen.
Der NRPE-Check setzt sich immer aus der IP-Adresse des Hosts und dem auszuführenden Command zusammen.
Also (ich nehme mal den kompletten Pfad): /usr/lib/nagios/plugins/check_nrpe -H IP-Adresse -c Command
Dies kann auch so auf der Shell ausgeführt werden:
"/usr/lib/nagios/plugins/check_nrpe -H IP-Adresse" gibt uns die aktuelle NRPE-Version auf dem Client zurück:
#----------------------
root@nagiosmonitor:# /usr/lib/nagios/plugins/check_nrpe -H IP-Adresse
NRPE v2.6
#----------------------
"/usr/lib/nagios/plugins/check_nrpe -H IP-Adresse -c check_disk1" gibt uns die aktuelle Belegung der Festplatte wieder
#----------------------
root@nagiosmonitor:# /usr/lib/nagios/plugins/check_nrpe -H IP-Adresse -c check_disk1
DISK OK - free space: /volume1 442846 MB (95%);| /volume1=22070MB;464896;464906;0;464916
#----------------------
In der command.cfg sieht das dann wie folgt aus:
#----------------------commands.cfg----------------------#
###### Load der DS110j ###################################
define command {
command_name check_DS110j_disk1
command_line /usr/lib/nagios/plugins/check_nrpe -H IP-Adresse -c check_disk1
}
#--------------------------------------------------------#
In der Konfigurationsdatei der DS110j so:
#----------------------DS110j.cfg------------------------#
define service {
use generic-service
host_name DiskStation
service_description /dev/sda1 Free Space
check_command check_DS110j_disk1
}
#--------------------------------------------------------#
Im Moment sieht unsere Ausgabe allerdings noch so aus:
root@nagiosmonitor:~# /usr/lib/nagios/plugins/check_nrpe -H IP-Adresse
Connection refused by host