====== Ndoutils ======
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.
===== Voraussetzungen =====
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
===== Installation =====
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 IDENTIFIED BY '';
CREATE DATABASE ;
GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON .* TO '';
quit
Die Tabellen in die Datenbank werden nun wie folgt gefüllt.
cd db
./installdb -u -p -d
Zum Upgrade der Datenbank führt man folgendes aus:
cd db
mysql -u -p -D < mysql-upgrade-.sql
===== NDO-Module installieren =====
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
===== NDO2DB Daemon =====
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
===== Zuletzt =====
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
===== Troubleshooting =====
==== Socket ====
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
==== Message queue ====
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