1. 程式人生 > >Nagios中用於nrpe的啟動管理腳本

Nagios中用於nrpe的啟動管理腳本

nagios nrpe

最近一段時間應為需要大量的調整修改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,可以參看:http://jim123.blog.51cto.com/4763600/1900432,其中要註意的一點是,把文件上傳至/etc/init.d目錄後需要授予執行權,然後用chkconfig加入系統中使service能管理到,如果是Linux/Centos 7的系統還要使用systemctl daemon-reload重載一次:

[[email protected] init.d]# chmod +x nrped
[[email protected] init.d]# chkconfig --add nrped
chkconfig --list nrped

systemctl daemon-reload[[email protected] init.d]# chkconfig --list nrped
nrped           0:關閉  1:關閉  2:啟用  3:啟用  4:啟用  5:啟用  6:關閉
[[email protected] init.d]# /etc/init.d/nrped restart
Stopting nrpe                                              [確定]
Starting nrpe                                              [確定]
[[email protected] init.d]# service nrped restart
Stopting nrpe                                              [確定]
Starting nrpe                                              [確定]


本文出自 “Jim的技術隨筆” 博客,謝絕轉載!

Nagios中用於nrpe的啟動管理腳本