Nagios3 Centreon2 Ubuntu ndoutils
From Wiki Centreon
Contents |
Installation of NDOutils
Note: I haven't found NDO on the prerequisites for centreon but it is advisable to install the addon nonetheless. You will find the latest version on the official Nagios website http://www.nagios.org:
Note: Ubuntu community provides ndoutil version 1.4b7-2 but this package depends on nagios2 (version 2.11) (info 17/06/08)
prerequest
install mysql dev api
# sudo apt-get install libmysqlclient15-dev
download & make
download the archive
# cd /usr/local/src # wget http://surfnet.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b7.tar.gz
Unpack the archive and change the directory:
# tar -xzf ndoutils-1.4b7.tar.gz # cd ndoutils-1.4b7 # vi README
configuration and installation:
# ./configure --prefix=/usr/local/nagios/ --enable-mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios # make
manual installation (no make install :-()
After creating the binaries and libraries they have to be copied
cp ./src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o cp ./src/ndo2db-3x /usr/local/nagios/bin/ndo2db cp ./config/ndo2db.cfg /usr/local/nagios/etc/ cp ./config/ndomod.cfg /usr/local/nagios/etc/ sudo chmod 774 /usr/local/nagios/bin/ndo* sudo chown nagios:nagios /usr/local/nagios/bin/ndo*
enable ndo module into nagios
Extracted from ndo README
3.Add a line similiar to the following to the *main* Nagios config file (usually /usr/local/nagios/etc/nagios.cfg):
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg
The config directive above will cause Nagios to load the NDOMOD event broker the next time it starts. Of course, this requres that you compiled Nagios with support for the event broker in the first place. :-)
4.Make sure you have a line similar to the following in the *main* Nagios config file (usually /usr/local/nagios/etc/nagios.cfg):
event_broker_option_=-1
That directive will cause the Nagios daemon to send data to the NDOMOD module. Without that option, NDOMOD won't get any information.
make ndo2db daemon autorun
install ndo init script : copy the folowing script in /etc/init.d/ndo2db (vi /etc/init.d/ndo2db)
#!/bin/sh
#
#
# chkconfig: 345 99 01
# description: Nagios to mysql
#
# Author : Gaƫtan Lucas
# Realase : 07/02/08
# Version : 0.1 b
# File : ndo2db
# Description: Starts and stops the Ndo2db daemon
# used to provide network services status in a database.
#
status_ndo ()
{
if ps -p $NdoPID > /dev/null 2>&1; then
return 0
else
return 1
fi
return 1
}
printstatus_ndo()
{
if status_ndo $1 $2; then
echo "ndo (pid $NdoPID) is running..."
else
echo "ndo is not running"
fi
}
killproc_ndo ()
{
echo "kill $2 $NdoPID"
kill $2 $NdoPID
}
pid_ndo ()
{
if test ! -f $NdoRunFile; then
echo "No lock file found in $NdoRunFile"
echo -n " checking runing process..."
NdoPID=`ps h -C ndo2db -o pid`
if [ -z "$NdoPID" ]; then
echo " No ndo2db process found"
exit 1
else
echo " found process pid: $NdoPID"
echo -n " reinit $NdoRunFile ..."
touch $NdoRunFile
chown $NdoUser:$NdoGroup $NdoRunFile
echo "$NdoPID" > $NdoRunFile
echo " done"
fi
fi
NdoPID=`head $NdoRunFile`
}
# Source function library
# Solaris doesn't have an rc.d directory, so do a test first
if [ -f /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
elif [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
fi
prefix=/usr/local/nagios
exec_prefix=${prefix}
NdoBin=${exec_prefix}/bin/ndo2db
NdoCfgFile=${prefix}/etc/ndo2db.cfg
NdoRunFile=${prefix}/var/ndo2db.run
NdoLockDir=/var/lock/subsys
NdoLockFile=ndo2db.lock
NdoUser=nagios
NdoGroup=nagios
# Check that ndo exists.
if [ ! -f $NdoBin ]; then
echo "Executable file $NdoBin not found. Exiting."
exit 1
fi
# Check that ndo.cfg exists.
if [ ! -f $NdoCfgFile ]; then
echo "Configuration file $NdoCfgFile not found. Exiting."
exit 1
fi
# See how we were called.
case "$1" in
start)
echo -n "Starting ndo:"
touch $NdoRunFile
chown $NdoUser:$NdoGroup $NdoRunFile
$NdoBin -c $NdoCfgFile
if [ -d $NdoLockDir ]; then
touch $NdoLockDir/$NdoLockFile;
fi
ps h -C ndo2db -o pid > $NdoRunFile
if [ $? -eq 0 ]; then
echo " done."
exit 0
else
echo " failed."
$0 stop
exit 1
fi
;;
stop)
echo -n "Stopping ndo: "
pid_ndo
killproc_ndo
# now we have to wait for ndo to exit and remove its
# own NdoRunFile, otherwise a following "start" could
# happen, and then the exiting ndo will remove the
# new NdoRunFile, allowing multiple ndo daemons
# to (sooner or later) run
#echo -n 'Waiting for ndo to exit .'
for i in 1 2 3 4 5 6 7 8 9 10 ; do
if status_ndo > /dev/null; then
echo -n '.'
sleep 1
else
break
fi
done
if status_ndo > /dev/null; then
echo
echo 'Warning - ndo did not exit in a timely manner'
else
echo 'done.'
fi
rm -f $NdoRunFile $NdoLockDir/$NdoLockFile
;;
status)
pid_ndo
printstatus_ndo ndo
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: ndo {start|stop|restart|status}"
exit 1
;;
esac
# End of this script
then add it to your config to load it automatically when starting/restarting your server :
# sudo update-rc.d ndo2db defaults # chmod +x /etc/init.d/ndo2db
The NDOUtils are installed. Later on we have to make some adjustments.

