Resolvendo Nagios /etc/init.d/nagios: 20: .: Can’t open /etc/rc.d/init.d/functions

Ao compilar e instalar o Nagios, fui iniciar o daemon e deu o seguinte erro:

/etc/init.d/nagios start
/etc/init.d/nagios: 20: .: Can’t open /etc/rc.d/init.d/functions

O print:

 

nagios-erro-1

 

Então, geralmente esse problema ocorre ao instalar no Ubuntu Server. Para solucionar isso primeiramente vamos sobrescrever o script nagios que está no /etc/init.d

Faça um backup só por precaução:

mv /etc/init.d/nagios /home/nagiosBKP

Abra o arquivo atual com algum editor de texto:

vi /etc/init.d/nagios

E sobrescreva pelo abaixo (apague todo o conteúdo antigo e cole esse abaixo na íntegra):

[code]
# pidfile: /var/nagios/nagios.pid
#
### BEGIN INIT INFO
# Provides: nagios
# Required-Start: $local_fs $syslog $network
# Required-Stop: $local_fs $syslog $network
# Short-Description: start and stop Nagios monitoring server
# Description: Nagios is is a service monitoring system
### END INIT INFO

# Source function library.
# . /etc/rc.d/init.d/functions
. /lib/lsb/init-functions

prefix=”/usr/local/nagios”
exec_prefix=”${prefix}”
exec=”${exec_prefix}/bin/nagios”
prog=”nagios”
config=”${prefix}/etc/nagios.cfg”
pidfile=”${prefix}/var/nagios.lock”
user=”nagios”
group=”nagios”
checkconfig=”false”
ramdiskdir=”/var/nagios/ramcache”

test -e /etc/sysconfig/$prog && . /etc/sysconfig/$prog

lockfile=/var/lock/$prog
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 $ramdiskdir
mount -t tmpfs -o size=${RAMDISK_SIZE}m tmpfs $ramdiskdir
mkdir -p -m 0755 $ramdiskdir/checkresults
chown -R $user:$group $ramdiskdir
fi
fi

check_config() {
TMPFILE=”/tmp/.configtest.$$”
/usr/sbin/service nagios configtest > “$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
else
# We’ll write out the errors to a file we can have a
# script watching for
echo “WARNING: Errors in config files – see log for details: $TMPFILE” > /var/run/nagios.configtest
egrep -i “(^warning|^error)” “$TMPFILE” >> /var/run/nagios.configtest
chmod 0644 /var/run/nagios.configtest
cat “$TMPFILE”
exit 8
fi
}

start() {
test -x $exec || exit 5
test -f $config || exit 6
if test “$checkconfig” = “false”; then
check_config
fi
echo -n $”Starting $prog: ”
# We need to _make sure_ the precache is there and verified
# Raise priority to make it run better
daemon –user=$user — $exec -d $config
#touch $lockfile
retval=$?
echo
test $retval -eq 0 && touch $lockfile
return $retval
}

stop() {
echo -n $”Stopping $prog: ”
killproc -p ${pidfile} $exec
retval=$?
echo
test $retval -eq 0 && rm -f $lockfile
return $retval
}

restart() {
check_config
checkconfig=”true”
stop
start
}

reload() {
echo -n $”Reloading $prog: ”
killproc -p ${pidfile} $exec -HUP
RETVAL=$?
echo
}

force_reload() {
restart
}

case “$1” in
start)
status_of_proc $prog && exit 0
$1
;;
stop)
status_of_proc $prog|| exit 0
$1
;;
restart)
$1
;;
reload)
status_of_proc $prog || exit 7
$1
;;
force-reload)
force_reload
;;
status)
status_of_proc $prog
;;
condrestart|try-restart)
status_of_proc $prog|| exit 0
restart
;;
configtest)
$nice su -s /bin/bash – nagios -c “$corelimit >/dev/null 2>&1 ; $exec -vp $config”
RETVAL=$?
;;
*)
echo $”Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}”
exit 2
esac
exit $?
[/code]

Você pode baixar esse arquivo aqui e colocar no lugar do antigo (renomeie para nagios).

Após salvar o arquivo dê permissão:

chmod 0755 /etc/init.d/nagios

E crie um link simbólico:

ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Estamos quase! Caso você tente executar agora, ocorrerá o seguinte erro:

/etc/init.d/nagios start
[FAIL] is not running … failed!
Nenhuma palavra-passe para o utilizador ‘nagios’

Precisamos agora cadastrar uma senha para o usuário nagios, execute o seguinte comando:

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Pedirá uma senha, que você utilizará para logar na interface web do nagios, digite a senha que desejar:


nagios2

 

Por precaução veja se criou o usuário nagios, caso não tenha criado crie: useradd -a nagios.

Pronto! Tente iniciar o nagios:

/etc/init.d/nagios start
[ ok ] is running.

Obs.: Teve alguns casos que se fez necessário reiniciar o servidor. reboot

Para acessar a interface do Nagios via navegador, basta colocar:

http://ip-do-servidor/nagios

Pedirá o usuário e senha, preencha com os que cadastrou! Provavelmente:

usuario: nagiosadmin

senha: queescolheu

Deixe um comentário

O seu endereço de e-mail não será publicado.