Oups, seems I forgot to mention Nagios part 2 installation process 🙂 Sorry for this.
Ok let’s finish this Nagios install:
SNMP settings
Please edit /etc/default/snmpd
sudo nano /etc/default/snmpd
and change these sections:
#SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1' SNMPDOPTS='-Ls4d -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid'
#TRAPDRUN=no TRAPDRUN=yes
Edit snmpd configuration file:
sudo nano /etc/snmp/snmpd.conf
and change this section:
# sec.name source community #com2sec paranoid default public com2sec readonly default public #com2sec readwrite default private
NDO database configuration
Create your database
mysqladmin -u root --password=mysqlcentaccess create ndo mysql -u root --password=mysqlcentaccess mysql
mysql> GRANT ALL ON ndo.* TO ndouser@localhost IDENTIFIED BY "ndopassword"; FLUSH PRIVILEGES; mysql> exit;
cd /usr/local/src/ndoutils-1.4b9/db ./installdb -u ndouser -p ndopassword -h localhost -d ndo
ignore the error message
Edit ndomod configuration file:
sudo nano /usr/local/nagios/etc/ndomod.cfg
find and replace these sections:
#instance_name=default instance_name=Central
output_type=tcpsocket #output_type=unixsocket
output=127.0.0.1 #output=/usr/local/nagios/var/ndo.sock
#reconnect_warning_interval=15 reconnect_warning_interval=900
#config_output_options=2 config_output_options=3
Edit ndo2db configuration file:
sudo nano /usr/local/nagios/etc/ndo2db.cfg
find and replace these sections:
#socket_type=unix socket_type=tcp
db_name=ndo
# Keep timed events for 24 hours max_timedevents_age=1440
# Keep system commands for 1 week max_systemcommands_age=1440
# Keep service checks for 1 week max_servicechecks_age=1440
# Keep host checks for 1 week max_hostchecks_age=1440
# Keep event handlers for 31 days max_eventhandlers_age=1440
Edit nagios configuration file:
sudo nano /usr/local/nagios/etc/nagios.cfg
find “broker” section and add this entry:
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg
Edit sudoers grant file:
sudo nano /etc/sudoers
and add nagios user account after root account:
nagios ALL=(ALL) ALL
Create ndo2db file:
sudo nano /etc/init.d/ndo2db
Paste the following script (be carefull if you choose to use diferent credentials than nagios:nagios, you’ll have to modifiy the corresponding lines below(find NdoUser and NdoGroup)):
#!/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
change the owner, rights and add the job to autostart:
sudo chown root:root /etc/init.d/ndo2db sudo chmod +x /etc/init.d/ndo2db sudo update-rc.d ndo2db defaults
You could now realy proceed to Centreon installation section.