Die NDOUtils erlauben es Nagios Checkergebnisse in eine Datenbank zu speichern.
So kann man diese dann vergleichen oder in grafische Tools einbinden um z.B. eine Verlaufskurve darzustellen.
Damit die NDO-Utils mit Nagios laufen, muss Nagios mit der „eventbroker“ Funktion kompiliert worden sein.
Desweiteren wird ein Datenbank-Server inkl. Developmentpaketen für die Ablage der aufgezeichneten Daten verwendet. Ich verwende hier den MySQL Datenbank-Server. Installiert wird diese einfach per
apt-get install mysql-server libmysqld-dev
Zunächst laden wir die NDO-Utils herunter und entpacken diese.
mkdir /data/ndoutils cd /data/ndoutils wget http://sourceforge.net/projects/nagios/files/ndoutils-1.x/ndoutils-1.4b9/ndoutils-1.4b9.tar.gz/download mv download ndoutils-1.4b9.tar.gz su nagios cd /tmp tar xfz ndoutils-1.4b9.tar.gz cd ndoutils-1.4b9 ./configure --enable-mysql make -j2 all exit make install
Nun noch die Datenbank anlegen, oder (weiter unten) upgraden.
mysql -uroot -p CREATE USER <BENUTZERNAME> IDENTIFIED BY '<PASSWORD>'; CREATE DATABASE <DATENBANK>; GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON <DATENBANK>.* TO '<BENUTZERNAME>'; quit
Die Tabellen in die Datenbank werden nun wie folgt gefüllt.
cd db ./installdb -u <BENUTZERNAME> -p <PASSWORD> -d <DATENBANK>
Zum Upgrade der Datenbank führt man folgendes aus:
cd db mysql -u<USERNAME> -p -D <DATENBANKNAME> < mysql-upgrade-<VERSION>.sql
Die Module steuern die NDO-Utils über die ndomod.cfg. So werden sie installiert.
cp /data/ndoutils/ndoutils-1.4b9/config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
Nun sagen wir Nagios dass er beim starten den NDO-Eventbroker benutzen soll.
vi /usr/local/nagios/etc/nagios.cfg
Inhalt in die nagios.cfg bei den broker_modulen einfügen.
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg
Ebenso wird hier auch diese Zeile benötigt:
event_broker_options=-1
Nagios kann den Eventbroker nun laden aber noch nicht benutzen, da der NDO-Daemon nicht gestartet ist.
Damit dies jedesmal beim Booten vor dem Nagios-Start erfolgt, machen wir folgendes.
cp /data/ndoutils/ndoutils-1.4b9/config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
Die ndo2db.cfg hat noch nicht angepasste Einträge. Folgende müssen noch angepasst werden.
db_name= db_prefix= db_user= db_pass=
Nun können wir den Daemon testweise starten.
/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
Der Daemon muss unbedingt vor Nagios gestartet werden. Dies erreichen wir indem wir das Nagios-Init-Script editieren.
vi /etc/init.d/nagios
Hier tragen wir unmittelbar nach start)
(also vor echo -n „Starting nagios:“
) folgendes ein:
echo "Starting ndo2db:" /usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
Damit man das Ganze auch stoppen und restarten kann noch dieses nach killproc_nagios nagios
bei stop))
eintragen:
echo "Stopping ndo2db:" killall ndo2db
Ganz wichtig ist es die Dateiberechtigungen für die *cfg Dateien anzupassen, sonst kann NDO diese nicht lesen und somit keine
Verbindung zur Datenbank aufbauen.
chown -R nagios.www-data /usr/local/nagios/etc
Wenn in der /var/log/syslog
Fehlermeldungen kommen bzgl. dass sich ndo zu keinem socket verbinden kann oder „… socket already in use…“ dann folgendes tun.
killall ndo2db rm /usr/local/nagios/var/ndo2db.lock /usr/local/nagios/var/ndo.sock
Danach ndoutils einfach wieder starten.
/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
Wenn Meldungen in der /var/log/syslog
etwa wie
ndo2db: Message sent to queue. ndo2db: Warning: queue send error, retrying...
Dann muß ein Kernel Tuning vorgenommen werden (steht auch in der README
des Installationspaketes).
Hier mal in der /etc/sysctl.conf
folgendes Werte erhöhen. Wenn nicht vorhanden einfach unten einfügen.
kernel.msgmax = 131072000 kernel.msgmnb = 131072000 kernel.msgmni = 65536000