====== 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