nagios $> vim fetion.py#找到 mobile_no = argv[1]
def main(argv=None):改为:
if len(argv) > 2:
mobile_no = argv[1]
passwd = argv[2]
def main(argv=None):#找到 printl("登录成功")
if len(argv) > 2:
mobile_no = argv[1]
passwd = argv[2]
sendto = argv[3] #发给谁(必须是好友)
message = argv[4] #发送的报警信息
finally:改为:
t.stop()
if ret:
printl("登录成功")
else:
printl("登录失败")
return 1
finally:保存退出 2.测试发送消息!给自己,和好友发送消息!
t.stop()
if ret:
phone.send_sms(toUTF8(message)) #发送给自己一份,不需要的话可以注释掉!
phone.send_sms(toUTF8(message),sendto) #发送报警给好友,不需要的话可以注释掉!
printl("发送成功")
return 1 #跳出,不需要登录text文本登陆框
else:
printl("登录失败")
return 1
nagios $> ./fetion.py 1361103xxx password 13800XXXXXX test3.只给自己发送消息
nagios $> ./fetion.py 1361103xxx password none test# none 就是不给好友发送,如果你不想输入 那么你可以把 fetion.py 里的 phone.send_sms(toUTF8(message),sendto) 注释掉或者删掉那么测试就可以 # nagios $> ./fetion.py 1361103xxx password test # 不需要在输入 none 了。 4.创建 shell 脚本,发送报警。(开始的时候直接用python脚本放到 commands.cfg里面,总是没有任何反应,不报错,任何log信息都没有。)
nagios $> vim /usr/local/nagios/libexec/sms## 如果你注释掉了 fetion.py 里的 phone.send_sms(toUTF8(message),sendto)。也就是不给好友发报警信息只给自己发使用下面脚本:
#!/bin/bash
# script name : sms
# qq: 277057817
# url:www.nginxs.com
cd /usr/local/nagios/libexec
if [ $# -ne 5 ];then
phone="$1"
passwd="$2"
sendto="$3"
msg="$4"
/usr/bin/python /usr/local/nagios/libexec/fetion.py "$phone" "$passwd" "$sendto" "$msg"
fi
#!/bin/bash5.修改 templates.cfg 添加:
# script name : sms
# qq: 277057817
# url:www.nginxs.com
cd /usr/local/nagios/libexec
if [ $# -ne 4 ];then
phone="$1"
passwd="$2"
msg="$3"
/usr/bin/python /usr/local/nagios/libexec/fetion.py "$phone" "$passwd" "$msg"
fi
nagios $> vim /usr/local/etc/objects/templates.cfg6.修改commands.cfg 添加:
define contact{
name generic-contact
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
register 0
}
define command{## 如果你注释掉了 fetion.py 里的 phone.send_sms(toUTF8(message),sendto)。也就是不给好友发报警信息只给自己发使用下面配置:
command_name notify-host-by-sms
command_line $USER1$/sms 1361103xxxx password 1380010XXXX "Host $HOSTSTATE$ alert for $HOSTNAME$! on '$LONGDATETIME$'"
}
define command{
command_name notify-service-by-sms
command_line $USER1$/sms 1361103xxxx password 1380010XXXX "Host $HOSTSTATE$ Address $HOSTADDRESS$ Service $SERVICEDESC$ State $SERVICESTATE$ on $TIME$"
}
define command{附件fetion python:只给自己发报警信息
command_name notify-host-by-sms
command_line $USER1$/sms 1361103xxxx password "Host $HOSTSTATE$ alert for $HOSTNAME$! on '$LONGDATETIME$'"
}
define command{
command_name notify-service-by-sms
command_line $USER1$/sms 1361103xxxx password "Host $HOSTSTATE$ Address $HOSTADDRESS$ Service $SERVICEDESC$ State $SERVICESTATE$ on $TIME$"
}
to_me.tar.gz给好友发报警信息和给自己发报警信息
to_friend.tar.gz
转载于:https://blog.51cto.com/deidara/367267