nagios短信监控

首先编写messages.sh

如果是yum安装的nagios,cd /usr/lib64/nagios/plugins/

编译安装的话,就cd /usr/local/nagios/libexec

内容如下:

#! /bin/bash


LOGFILE="/usr/local/nagios/var/sms_send_.log"  #定义发送短信的日志信息 文件

:>>"$LOGFILE"

exec 1>>"$LOGFILE"

exec 2>&1


#Uid="luyuanz"    #接口的用户名,这个使用接口时对方会提供,我这里的test是随意写的

#Key="Tcl123456"  #接口的用户名,这个使用接口时对方会提供,我这里的test是随意写的


MOBILE_NUMBER=$1 # 接受短信的手机号码

CURL="/usr/bin/curl"

TIMEOUT=5

MESSAGE_ENCODE=$(echo $(/usr/local/php/bin/php -r "echo urlencode(\"$2\");"; ) )  #这里的$2是nagios发送短信的第二个变量,即发送的内容

#URL="http://192.168.1.252:8083/common/SendSM/?userCode=${Uid}&userPass=${Key}&DesNo=${MOBILE_NUMBER}&Msg=${MESSAGE_ENCODE}&Channel=0"

#我这里的URL是胡乱写的,我不可能暴漏自己公司的接口哈,但是格式大体是这样的,到时候接口方会提供URL的格式的,你可以问你们自己公司负责短信接口的(这边是需要用户名和密码)

# Send it 

URL="http://192.168.1.252:8083/common/send?mobile=${MOBILE_NUMBER}&content=${MESSAGE_ENCODE}"

set -x 

DATE=`date +%T" "%F`

echo $DATE

${CURL} -s --connect-timeout ${TIMEOUT} "${URL}"

#/usr/bin/curl  "${URL}"


最后可以通过检测 bash messages.sh "186********" "内容",如果没收到信息,查看sms_send_.log日志。


然后在/usr/local/nagios/etc/objects/commands.cfg添加一下内容

define command {
       command_name notify-host-by-sms
       command_line messages.sh $CONTACTPAGER$ "$HOSTNAME$ $HOSTSTATE$ $SHORTDATETIME$"
       }

define command {
       command_name notify-service-by-sms
       command_line messages.sh $CONTACTPAGER$ "$SERVICESTATE$ $SERVICEOUTPUT$ $HOSTALIAS$/$SERVICEDESC$ $SHORTDATETIME$"
       }


接着编写vim /usr/local/nagios/etc/objects/contacts.cfg

添加内容如下:

define contact{

        contact_name                    quotaadmin              

        use                          generic-contact         

        alias                         Nagios Admin            

        email                         wangzai@****.cn

        service_notification_period          24x7                    

        host_notification_period            24x7               

        service_notification_options          w,u,c,r,f,s             

        host_notification_options       d,u,r,f,s              

        service_notification_commands   notify-service-by-email,notify-service-by-sms 

        host_notification_commands      notify-host-by-email,notify-host-by-sms   

        pager 186******** (多个用逗号相隔)

        }


define contactgroup{

        contactgroup_name       quotaadmins

        alias                   web Administrators

        members                 quotaadmin

        }

最后重启service nagios restart

你可能感兴趣的:(监控,nagios,短信)