nagios利用pyfetion报警最新
生活随笔
收集整理的這篇文章主要介紹了
nagios利用pyfetion报警最新
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
nagios利用移動飛信報警,可是移動飛信總是經常換協議,導致我們這些利用飛信報警的工程師很惱火,可是沒有辦法,許多用飛信的朋友,在2010年7月25號后,飛信又是不能發信息了,因為飛信的協議又有些變化:
?飛信2010在7月25日未升級之前支持通過下面的URL為完成SSI認證: https://uid.fetion.com.cn/ssiportal/SSIAppSignIn.aspx?mobileno=13888888888&pwd=PASSWORD 這里的PASSWORD為明文密碼移動系統切換以后這種方式不再支持,新的認證采用下面的方式: https://uid.fetion.com.cn/ssiportal/SSIAppSignInV2.aspx?mobileno=13888888888&digest=PASSWORD
我以前寫的文章: nagios msn 飛信PHP類API 報警 http://deidara.blog.51cto.com/400447/159290
?這種方法已經不能在報警了,于是我就想到了pyfetion,下載后發現,它是以文本框模式登fetion,如果想配合nagios來報警,必須要修改腳本。
下載tanjelly修改版本
http://code.google.com/p/pytool/issues/detail?id=18#c6
http://pytool.googlecode.com/issues/p_w_upload?aid=9026163495408742977&name=PyFetion_v0.3.zip&token=74d6c28998e6b7720875a300151f4cb3
下載后得到兩個文件: fetion.py PyFetion.py 想要nagios 報錯之后,短信報警,需要下面幾步: 1.修改fetion.py,讓其登錄后,直接發輸入的消息。所以找到他登錄信息 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):
if len(argv) > 2:
mobile_no = argv[1]
passwd = argv[2]
sendto = argv[3] #發給誰(必須是好友)
message = argv[4] #發送的報警信息#找到 printl("登錄成功") finally:
t.stop()
if ret:
printl("登錄成功")
else:
printl("登錄失敗")
return 1改為: finally:
t.stop()
if ret:
phone.send_sms(toUTF8(message)) #發送給自己一份,不需要的話可以注釋掉!
phone.send_sms(toUTF8(message),sendto) #發送報警給好友,不需要的話可以注釋掉!
printl("發送成功")
return 1 #跳出,不需要登錄text文本登陸框
else:
printl("登錄失敗")
return 1保存退出 2.測試發送消息!給自己,和好友發送消息! 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
#!/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##如果你注釋掉了 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 4 ];then
phone="$1"
passwd="$2"
msg="$3"
/usr/bin/python /usr/local/nagios/libexec/fetion.py "$phone" "$passwd" "$msg"
fi5.修改 templates.cfg 添加: nagios $> vim /usr/local/etc/objects/templates.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
}6.修改commands.cfg 添加: define command{
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$"
}##如果你注釋掉了 fetion.py 里的 phone.send_sms(toUTF8(message),sendto)。也就是不給好友發報警信息只給自己發使用下面配置: define command{
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$"
}附件fetion python:只給自己發報警信息 to_me.tar.gz給好友發報警信息和給自己發報警信息 to_friend.tar.gz
?飛信2010在7月25日未升級之前支持通過下面的URL為完成SSI認證: https://uid.fetion.com.cn/ssiportal/SSIAppSignIn.aspx?mobileno=13888888888&pwd=PASSWORD 這里的PASSWORD為明文密碼移動系統切換以后這種方式不再支持,新的認證采用下面的方式: https://uid.fetion.com.cn/ssiportal/SSIAppSignInV2.aspx?mobileno=13888888888&digest=PASSWORD
我以前寫的文章: nagios msn 飛信PHP類API 報警 http://deidara.blog.51cto.com/400447/159290
?這種方法已經不能在報警了,于是我就想到了pyfetion,下載后發現,它是以文本框模式登fetion,如果想配合nagios來報警,必須要修改腳本。
下載tanjelly修改版本
http://code.google.com/p/pytool/issues/detail?id=18#c6
http://pytool.googlecode.com/issues/p_w_upload?aid=9026163495408742977&name=PyFetion_v0.3.zip&token=74d6c28998e6b7720875a300151f4cb3
下載后得到兩個文件: fetion.py PyFetion.py 想要nagios 報錯之后,短信報警,需要下面幾步: 1.修改fetion.py,讓其登錄后,直接發輸入的消息。所以找到他登錄信息 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):
if len(argv) > 2:
mobile_no = argv[1]
passwd = argv[2]
sendto = argv[3] #發給誰(必須是好友)
message = argv[4] #發送的報警信息#找到 printl("登錄成功") finally:
t.stop()
if ret:
printl("登錄成功")
else:
printl("登錄失敗")
return 1改為: finally:
t.stop()
if ret:
phone.send_sms(toUTF8(message)) #發送給自己一份,不需要的話可以注釋掉!
phone.send_sms(toUTF8(message),sendto) #發送報警給好友,不需要的話可以注釋掉!
printl("發送成功")
return 1 #跳出,不需要登錄text文本登陸框
else:
printl("登錄失敗")
return 1保存退出 2.測試發送消息!給自己,和好友發送消息! 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
#!/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##如果你注釋掉了 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 4 ];then
phone="$1"
passwd="$2"
msg="$3"
/usr/bin/python /usr/local/nagios/libexec/fetion.py "$phone" "$passwd" "$msg"
fi5.修改 templates.cfg 添加: nagios $> vim /usr/local/etc/objects/templates.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
}6.修改commands.cfg 添加: define command{
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$"
}##如果你注釋掉了 fetion.py 里的 phone.send_sms(toUTF8(message),sendto)。也就是不給好友發報警信息只給自己發使用下面配置: define command{
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$"
}附件fetion python:只給自己發報警信息 to_me.tar.gz給好友發報警信息和給自己發報警信息 to_friend.tar.gz
轉載于:https://blog.51cto.com/deidara/367267
總結
以上是生活随笔為你收集整理的nagios利用pyfetion报警最新的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Practice:在2008 core上
- 下一篇: 关于Exchang server 201