最近一段时间应为需要大量的调整修改Nagios的监控策略所以需要反复的重启nrpe,但是在Nagios安装后是没有提供nrpe的启动脚本,所以就自己顺手写了一个用于平时nrpe的重启:
#!/bin/sh
#The startup script for nrpe
#Author:jim
#processname:nrped
# chkconfig: 2345 97 03
#description:This is a daemon used for nrpe startup management in Nagios
#source functions library
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"
nrpe_bin="${prefix}/bin/nrpe"
nrpe_config_file="${prefix}/etc/nrpe.cfg"
nrpe_num=$(ps aux | grep /bin/nrpe | grep -v grep | wc -l)
nrpe_pid=$(ps aux | grep /bin/nrpe | grep -v grep | awk '{print $2}')
RETVAL=0
start()
{
if [ $nrpe_num -eq 1 ];then
echo_warning
echo "nrpe is running "
else
${nrpe_bin} -c ${nrpe_config_file} -d
echo_success
echo "Starting nrpe "
fi
}
stop()
{
if [ $nrpe_num -eq 1 ];then
kill -9 $nrpe_pid
echo_success
echo "Starting nrpe "
else
echo_failure
echo "nrpe is stoping "
fi
}
restart()
{
if [ $nrpe_num -eq 1 ];then
kill -9 $nrpe_pid
echo_success
echo "Stopting nrpe "
${nrpe_bin} -c ${nrpe_config_file} -d
echo_success
echo "Starting nrpe "
else
echo_failure
echo "nrpe is stoping "
${nrpe_bin} -c ${nrpe_config_file} -d
echo_success
echo "Starting nrpe "
fi
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo_failure
echo "Usage: $0 {start|stop|restart}"
RETVAL=2
esac
exit $RETVAL
总之来说还是比较简单的,其中有使用到系统的functions,可以参看:,其中要注意的一点是,把文件上传至/etc/init.d目录后需要授予执行权,然后用chkconfig加入系统中使service能管理到,如果是Linux/CentOS 7的系统还要使用systemctl daemon-reload重载一次:
[root@localhost init.d]# chmod +x nrped
[root@localhost init.d]# chkconfig --add nrped
chkconfig --list nrped
systemctl daemon-reload[root@localhost init.d]# chkconfig --list nrped
nrped 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[root@localhost init.d]# /etc/init.d/nrped restart
Stopting nrpe [确定]
Starting nrpe [确定]
[root@localhost init.d]# service nrped restart
Stopting nrpe [确定]
Starting nrpe [确定]