Python利用Nagios增加微信报警通知的功能
2016-02-18 00:00
701 查看
Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
Nagios是调用微信公共平台的api接口发送报警邮件。在正式操作之前,有几个准备工作要做。先安装nagios,可以使用我提供的nagios一键安装脚本。然后是去微信公共平台申请一个企业号,我申请时填的是组织,没有认证也可以使用。最后登录公共平台添加通讯录,和新建应用(例如nagios),记录应用的id后面要用。用户权限什么自己设定。
微信脚本
nagios和微信平台都准备好之后,接下来下载微信命令脚本。右键点击 下载 ,保存。然后上传到nagios服务器,例如/usr/local/nagios/python/weixin目录,设置文件权限为可执行。在/usr/local/nagios/python/weixin目录新建config.py文件,添加如下配置。
其中CorpID和Secret这两个可以通过登录微信公共平台,打开添加的应用(例如nagios)获取。
微信脚本命令传递的参数通过“-@@-”符号来分割,详细说明可以参考我的github地址:https://github.com/zhangnq/nagios/tree/master/weixin
Nagios配置
下面就是nagios上的常规配置。
commands.cfg命令文件中添加weixin命令:
templates.cfg模板文件中添加联系人模板:
contacts.cfg联系人中添加微信通知联系人,这里alias名字要和微信公共平台通讯录中名字帐号一样才会发送成功。
最后在配置service的时候添加zhangnq-weixin这个联系人后就可以通过微信发送报警邮件了。
关于小编给大家分享的Python利用Nagios增加微信报警通知的功能就给大家介绍这么多,希望对大家有所帮助。
Nagios是调用微信公共平台的api接口发送报警邮件。在正式操作之前,有几个准备工作要做。先安装nagios,可以使用我提供的nagios一键安装脚本。然后是去微信公共平台申请一个企业号,我申请时填的是组织,没有认证也可以使用。最后登录公共平台添加通讯录,和新建应用(例如nagios),记录应用的id后面要用。用户权限什么自己设定。
微信脚本
nagios和微信平台都准备好之后,接下来下载微信命令脚本。右键点击 下载 ,保存。然后上传到nagios服务器,例如/usr/local/nagios/python/weixin目录,设置文件权限为可执行。在/usr/local/nagios/python/weixin目录新建config.py文件,添加如下配置。
#coding:utf-8 CorpID='xxxxx' Secret='xxxxxxxxxxxxxxxxx' DEBUG=0 ToUser='sijitao.net' AgentId=1
其中CorpID和Secret这两个可以通过登录微信公共平台,打开添加的应用(例如nagios)获取。
微信脚本命令传递的参数通过“-@@-”符号来分割,详细说明可以参考我的github地址:https://github.com/zhangnq/nagios/tree/master/weixin
Nagios配置
下面就是nagios上的常规配置。
commands.cfg命令文件中添加weixin命令:
define command{ command_name notify-host-by-weixin command_line /usr/local/nagios/python/weixin/NotifyByWeixin.py "host-@@-$NOTIFICATIONTYPE$-@@-$HOSTNAME$-@@-$HOSTSTATE$-@@-$HOSTADDRESS$-@@-$HOSTOUTPUT$-@@-$CONTACTALIAS$" } define command{ command_name notify-service-by-weixin command_line /usr/local/nagios/python/weixin/NotifyByWeixin.py "service-@@-$NOTIFICATIONTYPE$-@@-$SERVICEDESC$-@@-$HOSTALIAS$-@@-$HOSTADDRESS$-@@-$SERVICESTATE$-@@-$SERVICEOUTPUT$-@@-$CONTACTALIAS$" }
templates.cfg模板文件中添加联系人模板:
define contact{ name weixin-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-weixin host_notification_commands notify-host-by-weixin register 0 }
contacts.cfg联系人中添加微信通知联系人,这里alias名字要和微信公共平台通讯录中名字帐号一样才会发送成功。
define contact{ contact_name zhangnq-weixin use weixin-contact alias zhangnq email admin@sijitao.net }
最后在配置service的时候添加zhangnq-weixin这个联系人后就可以通过微信发送报警邮件了。
关于小编给大家分享的Python利用Nagios增加微信报警通知的功能就给大家介绍这么多,希望对大家有所帮助。
您可能感兴趣的文章:
Python监控主机是否存活并以邮件报警相关文章推荐
- python装饰器与递归算法详解
- 使用Python的PIL模块来进行图片对比
- 讲解Python的Scrapy爬虫框架使用代理进行采集的方法
- 使用Python的urllib2模块处理url和图片的技巧两则
- 使用Python生成随机密码的示例分享
- 以一个投票程序的实例来讲解Python的Django框架使用
- 在Ubuntu系统下安装使用Python的GUI工具wxPython
- 使用Python简单的实现树莓派的WEB控制
- Python3.x和Python2.x的区别
- [Python开发] sphinx学习
- Python重磅出击:19步铸造Python大师!
- python版蛇形填数
- Python图像处理库PIL的Image模块介绍(三)
- Python多线程、异步+多进程爬虫实现代码
- python装饰器通俗易懂的解释!
- Python 十八章 异步IO
- (3) Python 内置类型 –- 元组
- Python 17.5 使用模板
- python3 显示下载进度
- python3 beautifulsoup查找网页中的链接