Python调用第三方接口实现nagios短信报警

简介:

       Python调用第三方接口实现nagios短信报警    


公司有需求,需要短信报警,所以才有了如下的东西。

第三方:smsbao.com 收费是1分钱一条,买的多当然就更便宜,我们买的是700元/10000条。

缺点:

1、发送内容只能有70字节,超过了就会拆分成多条短信。所以得对发送内容进行优化。

2、发送信息的号码不同

优点:

1、通过http接口,所好进行调整

2、信息一般在1-3秒之内发送完毕


nagios commands.cgf内容如下:

vim /usr/local/nagios/etc/objects/commands.cfg

# 'notify-host-by-smsbao' command definition
define  command {
         command_name    notify-host-by-smsbao
         command_line     /usr/local/nagios/libexec/smsbao .py  "主机报警 IP:$HOSTADDRESS$:$HOSTSTATE$ 信息:$HOSTOUTPUT$"
         }
 
# 'notify-service-by-smsbao' command definition
define  command {
         command_name    notify-service-by-smsbao
         command_line     /usr/local/nagios/libexec/smsbao .py  "服务报警 主机:$HOSTNAME$服务:$SERVICEDESC$ IP地址:$HOSTADDRESS$ 状态:$SERVICESTATE$ 信息:$SERVICEOUTPUT$"

        }


smsbao.py 代码如下:

调用方式:

#./smsbao.py "发送信息的内容"

#!/usr/bin/python
#coding:utf8
#exp #python smsbao.py "发送一个测试监控信息"
 
import  requests,sys,time
import  sys
import  time
 
#coding is Error so
default_encoding  =  'utf-8'
if  sys.getdefaultencoding() ! =  default_encoding:
     reload (sys)
     sys.setdefaultencoding(default_encoding)
 
#get localtime 2014-7-11 10:01:01 
ltime  =  time.strftime( '%Y-%m-%d %H:%M:%S' ,time.localtime(time.time()))
 
#u:username p:password c:content m:Phone
Content  =  str (sys.argv[ 1 ])
payload  =  {
     'u' : 'zwhset' ,
     'p' : 'password_md5' ,
     'm' : 'you phone' ,
     'c' :Content
}
 
#send msmbao message to phone
=  requests.get( 'http://www.smsbao.com/sms' ,params = payload)
date  =  ltime  +  "\t"  +  Content  +  "\t"  +  r.text  +  "\n"
 
=  open ( 'smsbao.log' , 'a' )
#write log to smsbao.log
try :
     f.write(date)
     f.close()
except  IOError,e:
     sys.exit()

短信图:

wKiom1O_cXeg2YCBAAEVumJ9qII669.jpg

smsbao后台短信日志

wKioL1O_cirQn-sJAADWLuuqk7o372.jpg         


原文链接:http://cwtea.blog.51cto.com/4500217/1437042/  








      本文转自独弹古调  51CTO博客,原文链接:http://blog.51cto.com/hunkz/1695273,如需转载请自行联系原作者


相关文章
|
7月前
|
安全 Linux Shell
Python 动态更新Linux系统root账号密码并发送通知短信
Python 动态更新Linux系统root账号密码并发送通知短信
81 0
|
3月前
|
Linux Perl
Nagios 邮件及短信报警
Nagios可通过139邮箱实现短信报警:配置Nagios向139邮箱发送信息,再由139自动转发至绑定手机。也可用短信猫设备。需修改`contacts.cfg`文件设置邮件收件人为139邮箱地址。Kickstart结合PXE等技术实现Linux系统的自动化安装,大幅减少手动安装的时间,适用于需要统一版本的大规模部署场景。配置涉及DHCP、TFTP等服务安装与设置。
31 0
|
4月前
|
消息中间件 数据库 开发者
|
6月前
|
机器学习/深度学习 算法 安全
基于YOLOv8深度学习的危险区域人员闯入检测与报警系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、区域闯入
基于YOLOv8深度学习的危险区域人员闯入检测与报警系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、区域闯入
|
7月前
|
API 开发工具 开发者
PYTHON运行阿里云的短信发送程序报错
图片链接指向一个阿里云开发者生态的图片,内容可能显示了一个关于使用Python SDK调用API发送短信时遇到的错误。错误可能涉及主账号和子账号ID。问题可能是由于缺少环境变量配置导致的。代码基于Python 2.0版本。总结:SDK调用出错,疑因环境变量未配置,影响了账号ID的识别。
|
7月前
|
存储 API 数据库
使用Python和Twilio通过短信通知主持视频办公时间。
使用Python和Twilio通过短信通知主持视频办公时间。
|
7月前
|
开发工具 Python
【python】如何通过python来发送短信
【python】如何通过python来发送短信
388 0
|
7月前
|
监控 Python
Python监控主机是否存活,并发报警邮件
Python监控主机是否存活,并发报警邮件
|
7月前
|
开发框架 Java .NET
闪速码短信Python接口SDK
闪速码短信Python接口SDK
129 4
|
7月前
|
程序员 Python
小项目|30行Python代码,发短信给你的心里人!
小项目|30行Python代码,发短信给你的心里人!
小项目|30行Python代码,发短信给你的心里人!