热门IT资讯网

nagios短信监控

发表于:2024-11-24 作者:热门IT资讯网编辑
编辑最后更新 2024年11月24日,首先编写messages.sh如果是yum安装的nagios,cd /usr/lib64/nagios/plugins/编译安装的话,就cd /usr/local/nagios/libexec内容如下

首先编写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

0