Mit nsca (Nagios Service Check Acceptor) ist es möglich, Service- und/oder Hostchecks von verteilten Systemen zu senden und zu empfangen.
Sinn von nsca ist es Systeme die Nagios nicht direkt erreichen kann, von einem anderem System aus (ein anderer Nagios Server, ein Skript etc.) zu überwachen.
Wer nsca ohne Paketmanagement wie apt und dergleichen installieren möchte, benötigt zuerst das aktuelle nsca-*.tar.gz von http://sourceforge.net/project/showfiles.php?group_id=26589
Als weitere Voraussetzung sind hier noch nagios :) und die libmcrypt4 zu nennen.
Entpacken der Sourcen:
tar -zxvf nsca-*.tar.gz
Nach dem Entpacken der Sourcen mit wechselt man in das entsprechend entstandene Verzeichnis nsca-*
Wer erweiterte Einstellungen vor dem Installieren angeben will, kann sich mit ./configure –help alle vorhandenen Schalter anzeigen lassen. Im Normalfall genügt aber ein
root:/<Pfad zum entpackten Archiv>$ ./configure
Ist configure ohne zu Meckern durchgelaufen, kann NSCA kompiliert werden:
root:/<Pfad zum entpackten Archiv>$ make all
Make hat die Binaries jetzt im Unterverzeichnis src erstellt. Weitere Informationen zur Installation/Konfiguration finden wir in der README
Um NSCA zu installieren, müssen wir jetzt die Binaries in unser Nagios-Verzeichniss kopieren:
root:/<Pfad zum entpackten Archiv>/src$ cp nsca /usr/local/nagios/sbin/ root:/<Pfad zum entpackten Archiv>/src$ cp send_nsca /usr/local/nagios/libexec/ root:/<Pfad zum entpackten Archiv>$ cp nsca.cfg /etc/nagios/ root:/<Pfad zum entpackten Archiv>$ chown nagios.nagios /etc/nagios/nsca.cfg
In der nagios.cfg muss die externe Kommando-Schnittstelle aktiviert sein, damit NSCA Daten an Nagios weitergeben kann:
check_external_commands=1
Die Datei für die Kommando-Schnittstelle muss in der nagios.cfg und der nsca.cfg übereinstimmen:
command_file=/var/nagios/rw/nagios.cmd
Die Konfigurationsdatei nsca.cfg enthält folgende Parameter:
server_port=5667 server_address=192.168.1.1 allowed_hosts=127.0.0.1 nsca_user=nagios nsca_group=nagios debug=0 command_file=/var/nagios/rw/nagios.cmd alternate_dump_file=/var/nagios/rw/nsca.dump aggregate_writes=0 append_to_file=0 max_packet_age=30 password=secret decryption_method=10
Die ersten drei Parameter server_port, server_address und allowed_hosts werden ignoriert, wenn NSCA über den xinetd gestartet wird. Die Bedeutung der Parameter ist in der nsca.cfg selbst erklärt.
Als erstes muss die Datei /etc/services um folgende Zeile ergänzt werden:
nsca 5667/tcp # NSCA
Anschließend legt man im Verzeichnis /etc/xinetd.d die Datei nsca mit folgendem Inhalt an:
# /etc/xinetd.d/nsca
# description: NSCA
# default: on
service nsca
{
flags = REUSE
socket_type = stream
wait = no
user = nagios
group = nagios
server = /usr/local/nagios/sbin/nsca
server_args = -c /etc/nagios/nsca.cfg --inetd
log_on_failure += USERID
disable = no
# only_from =
# no_access =
}
Wenn die Parameter only_from und no_access in der Konfigurationsdatei nich vorhanden sind, werden von jedem Rechner NSCA-Übertragungen entgegengenommen.
Bevor man den xinetd neu startet müssen die Dateiberechtigungen noch geändert werden:
root:/etc/xinet.d$ chmod 644 nsca
Jetzt kann der xinetd neu gestartet werden:
root:/etc/init.d$ /etc/init.d/xinetd restart
Ob der xinetd mit den Einstellungen glücklich ist, kann im Syslog nachgeschaut werden:
root:/$ tail /var/log/syslog
Wenn alles geklappt hat, dann sollte etwas in dieser Art eingetragen sein:
Aug 15 08:23:56 hyperion xinetd[6389]: xinetd Version 2.3.14 started with libwrap loadavg options compiled in. Aug 15 08:23:56 hyperion xinetd[6389]: Started working: 1 available service