Nagios 4.0.4 service won't start

Support forum for Nagios Core, Nagios Plugins, NCPA, NRPE, NSCA, NDOUtils and more. Engage with the community of users including those using the open source solutions.
Locked
goncalo.pereira
Posts: 3
Joined: Mon Feb 03, 2014 10:09 am

Nagios 4.0.4 service won't start

Post by goncalo.pereira »

I upgraded from nagios 4.0.3 to 4.0.4 today and it run fine for some hours but when I added a new config file in nagios.cfg the service became unresponsive.
I reinstalled nagios 4.0.4 and checked the configuration with no errors, but when I try to do /etc/init.d/nagios start it only returns:

Starting nagios:root@nagios:/usr/local/nagios/var# (and command line waits for input here)

When I do a restart it returns same with:

Running configuration check...root@nagios:/usr/local/nagios/var# (and command line waits for input here)

Nagios log doesn't show anything new after I try to start or restart, I can open nagios webpage in the browser but can't view hosts because it states nagios isn't running and i checked it isn't with ps ax | grep nagios.

Nagios init.d file is the standard one also.

I followed all the steps on the official installation guide, the server is debian and I never got this issue with 4.0.2 or 4.0.3 versions, any ideas?
Last edited by goncalo.pereira on Tue Mar 18, 2014 8:29 am, edited 1 time in total.
scottwilkerson
DevOps Engineer
Posts: 19396
Joined: Tue Nov 15, 2011 3:11 pm
Location: Nagios Enterprises
Contact:

Re: Nagios 4.0.4 service won't start

Post by scottwilkerson »

Would it be possible to post your current /etc/init.d/nagios ?

Thanks
Former Nagios employee
Creator:
Human Design Website
Get Your Human Design Chart
goncalo.pereira
Posts: 3
Joined: Mon Feb 03, 2014 10:09 am

Re: Nagios 4.0.4 service won't start

Post by goncalo.pereira »

Here it is.

Code: Select all

#!/bin/sh
# 
# chkconfig: 345 99 01
# description: Nagios network monitor
# processname: nagios
# File : nagios
#
# Author : Jorge Sanchez Aymar ([email protected])
# 
# Changelog :
#
# 1999-07-09 Karl DeBisschop <[email protected]>
#  - setup for autoconf
#  - add reload function
# 1999-08-06 Ethan Galstad <[email protected]>
#  - Added configuration info for use with RedHat's chkconfig tool
#    per Fran Boon's suggestion
# 1999-08-13 Jim Popovitch <[email protected]>
#  - added variable for nagios/var directory
#  - cd into nagios/var directory before creating tmp files on startup
# 1999-08-16 Ethan Galstad <[email protected]>
#  - Added test for rc.d directory as suggested by Karl DeBisschop
# 2000-07-23 Karl DeBisschop <[email protected]>
#  - Clean out redhat macros and other dependencies
# 2003-01-11 Ethan Galstad <[email protected]>
#  - Updated su syntax (Gary Miller)
#
# Description: Starts and stops the Nagios monitor
#              used to provide network services status.
#
### BEGIN INIT INFO
# Provides:		nagios
# Required-Start:	$local_fs $syslog $network
# Required-Stop:	$local_fs $syslog $network
# Short-Description:	Starts and stops the Nagios monitoring server
# Description:		Starts and stops the Nagios monitoring server
### END INIT INFO

# Load any extra environment variables for Nagios and its plugins
if test -f /etc/sysconfig/nagios; then
	. /etc/sysconfig/nagios
fi

# Source function library
# Some *nix do not 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
elif [ -f /lib/lsb/init-functions ]; then
	. /lib/lsb/init-functions
fi

prefix=/usr/local/nagios
exec_prefix=${prefix}
NagiosBin=${exec_prefix}/bin/nagios
NagiosCfgFile=${prefix}/etc/nagios.cfg
NagiosStatusFile=${prefix}/var/status.dat
NagiosRetentionFile=${prefix}/var/retention.dat
NagiosCommandFile=${prefix}/var/rw/nagios.cmd
NagiosVarDir=${prefix}/var
NagiosRunFile=${prefix}/var/nagios.lock
NagiosLockDir=/var/lock/subsys
NagiosLockFile=nagios
NagiosCGIDir=${exec_prefix}/sbin
NagiosUser=nagios
NagiosGroup=nagios
checkconfig="true"

# Automate addition of RAMDISK based on environment variables
USE_RAMDISK=${USE_RAMDISK:-0}
if test "$USE_RAMDISK" -ne 0 && test "$RAMDISK_SIZE"X != "X"; then
	ramdisk=`mount |grep "$ramdiskdir type tmpfs"`
	if [ "$ramdisk"X == "X" ]; then
		mkdir -p -m 0755 ${RAMDISK_DIR}
		mount -t tmpfs -o size=${RAMDISK_SIZE}m tmpfs ${RAMDISK_DIR}
		mkdir -p -m 0755 ${RAMDISK_DIR}/checkresults
		chown -R $NagiosUser:$NagiosGroup ${RAMDISK_DIR}
	fi
fi

check_config() {
	TMPFILE=$(mktemp /tmp/.configtest.XXXXXXXX)
	su - $NagiosUser -c "$NagiosBin -vp $NagiosCfgFile" > "$TMPFILE"
	WARN=`grep ^"Total Warnings:" "$TMPFILE" |awk -F: '{print \$2}' |sed s/' '//g`
	ERR=`grep ^"Total Errors:" "$TMPFILE" |awk -F: '{print \$2}' |sed s/' '//g`

	if test "$WARN" = "0" && test "${ERR}" = "0"; then
		echo "OK - Configuration check verified" > /var/run/nagios.configtest
		chmod 0644 /var/run/nagios.configtest
		/bin/rm "$TMPFILE"
    	return 0
	elif test "${ERR}" = "0"; then
		# We'll write out the errors to a file we can have a
		# script watching for
		echo "WARNING: Warnings in config files - see log for details: /var/run/nagios.configtest" > /var/run/nagios.configtest
		egrep -i "(^warning|^error)" "$TMPFILE" >> /var/run/nagios.configtest
		chmod 0644 /var/run/nagios.configtest
		/bin/rm "$TMPFILE"
    	return 0
	else
		# We'll write out the errors to a file we can have a
		# script watching for
		echo "ERROR: Errors in config files - see log for details: /var/run/nagios.configtest" > /var/run/nagios.configtest
		egrep -i "(^warning|^error)" "$TMPFILE" >> /var/run/nagios.configtest
		chmod 0644 /var/run/nagios.configtest
		cat "$TMPFILE"
    	exit 8
	fi
}

status_nagios ()
{

	if test -x $NagiosCGI/daemonchk.cgi; then
		if $NagiosCGI/daemonchk.cgi -l $NagiosRunFile; then
		        return 0
		else
			return 1
		fi
	else
		if ps -p $NagiosPID > /dev/null 2>&1; then
		        return 0
		else
			return 1
		fi
	fi

	return 1
}


printstatus_nagios()
{

	if status_nagios $1 $2; then
		echo "nagios (pid $NagiosPID) is running..."
	else
		echo "nagios is not running"
	fi
}


killproc_nagios ()
{

	kill $2 $NagiosPID

}


pid_nagios ()
{

	if test ! -f $NagiosRunFile; then
		echo "No lock file found in $NagiosRunFile"
		exit 1
	fi

	NagiosPID=`head -n 1 $NagiosRunFile`
}

         

# Check that nagios exists.
if [ ! -f $NagiosBin ]; then
    echo "Executable file $NagiosBin not found.  Exiting."
    exit 1
fi

# Check that nagios.cfg exists.
if [ ! -f $NagiosCfgFile ]; then
    echo "Configuration file $NagiosCfgFile not found.  Exiting."
    exit 1
fi
          
# See how we were called.
case "$1" in

	start)
		echo -n "Starting nagios:"
		if test "$checkconfig" = "true"; then
			check_config
		fi
		if [ $? -eq 0 ]; then
			su - $NagiosUser -c "touch $NagiosVarDir/nagios.log $NagiosRetentionFile"
			rm -f $NagiosCommandFile
			touch $NagiosRunFile
			chown $NagiosUser:$NagiosGroup $NagiosRunFile
			$NagiosBin -d $NagiosCfgFile
			if [ -d $NagiosLockDir ]; then touch $NagiosLockDir/$NagiosLockFile; fi
			echo " done."
			exit 0
		else
			echo "CONFIG ERROR!  Start aborted.  Check your Nagios configuration."
			exit 1
		fi
		;;

	stop)
		echo -n "Stopping nagios: "

		pid_nagios
		killproc_nagios nagios

 		# now we have to wait for nagios to exit and remove its
 		# own NagiosRunFile, otherwise a following "start" could
 		# happen, and then the exiting nagios will remove the
 		# new NagiosRunFile, allowing multiple nagios daemons
 		# to (sooner or later) run - John Sellens
		#echo -n 'Waiting for nagios to exit .'
 		for i in 1 2 3 4 5 6 7 8 9 10 ; do
 		    if status_nagios > /dev/null; then
 			echo -n '.'
 			sleep 1
 		    else
 			break
 		    fi
 		done
 		if status_nagios > /dev/null; then
 		    echo ''
 		    echo 'Warning - nagios did not exit in a timely manner'
 		else
 		    echo 'done.'
 		fi

		rm -f $NagiosStatusFile $NagiosRunFile $NagiosLockDir/$NagiosLockFile $NagiosCommandFile
		;;

	status)
		pid_nagios
		printstatus_nagios nagios
		;;

	checkconfig)
		if test "$checkconfig" = "true"; then
			printf "Running configuration check..."
			check_config
		fi
		
		if [ $? -eq 0 ]; then
			echo " OK."
		else
			echo " CONFIG ERROR!  Check your Nagios configuration."
			exit 1
		fi
		;;

	restart)
		if test "$checkconfig" = "true"; then
			printf "Running configuration check..."
			check_config
		fi

		$0 stop
		$0 start

		;;

	reload|force-reload)
		if test "$checkconfig" = "true"; then
			printf "Running configuration check..."
			check_config
		fi
		
		if test ! -f $NagiosRunFile; then
			$0 start
		else
			pid_nagios
			if status_nagios > /dev/null; then
				printf "Reloading nagios configuration..."
				killproc_nagios nagios -HUP
				echo "done"
			else
				$0 stop
				$0 start
			fi
		fi

		;;

	configtest)
		su - $NagiosUser -c "$NagiosBin -vp $NagiosCfgFile"
		
		;;
	*)
		echo "Usage: nagios {start|stop|restart|reload|force-reload|status|checkconfig|configtest}"
		exit 1
		;;

esac
  
# End of this script
goncalo.pereira
Posts: 3
Joined: Mon Feb 03, 2014 10:09 am

Re: Nagios 4.0.4 service won't start

Post by goncalo.pereira »

You can close this post, I found the solution in a very similar post http://support.nagios.com/forum/viewtop ... =7&t=26135
Locked