Python利用Nagios增加微信报警通知的功能


Posted in Python onFebruary 18, 2016

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

Nagios是调用微信公共平台的api接口发送报警邮件。在正式操作之前,有几个准备工作要做。先安装nagios,可以使用我提供的nagios一键安装脚本。然后是去微信公共平台申请一个企业号,我申请时填的是组织,没有认证也可以使用。最后登录公共平台添加通讯录,和新建应用(例如nagios),记录应用的id后面要用。用户权限什么自己设定。

Python利用Nagios增加微信报警通知的功能

Python利用Nagios增加微信报警通知的功能

微信脚本

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利用Nagios增加微信报警通知的功能就给大家介绍这么多,希望对大家有所帮助。

Python 相关文章推荐
Python中的yield浅析
Jun 16 Python
Python中的filter()函数的用法
Apr 27 Python
Python采用Django制作简易的知乎日报API
Aug 03 Python
Python编程实现微信企业号文本消息推送功能示例
Aug 21 Python
Python利用itchat对微信中好友数据实现简单分析的方法
Nov 21 Python
浅谈Python中range和xrange的区别
Dec 20 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
Nov 29 Python
pytorch使用Variable实现线性回归
May 21 Python
Python实现 PS 图像调整中的亮度调整
Jun 28 Python
python日志模块logbook使用方法
Sep 19 Python
Python气泡提示与标签的实现
Apr 01 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
Aug 11 Python
Python多线程、异步+多进程爬虫实现代码
Feb 17 #Python
玩转python爬虫之爬取糗事百科段子
Feb 17 #Python
玩转python爬虫之正则表达式
Feb 17 #Python
玩转python爬虫之URLError异常处理
Feb 17 #Python
玩转python爬虫之cookie使用方法
Feb 17 #Python
Python 爬虫爬取指定博客的所有文章
Feb 17 #Python
Using Django with GAE Python 后台抓取多个网站的页面全文
Feb 17 #Python
You might like
实现“上一页”和“下一页按钮
2006/10/09 PHP
php实现的Timer页面运行时间监测类
2014/09/24 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
2019/03/22 PHP
javascript之学会吝啬 精简代码
2010/04/25 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
js function定义函数的几种不错方法
2014/02/27 Javascript
js字符串日期yyyy-MM-dd转化为date示例代码
2014/03/06 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
2015/11/24 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
layui文件上传实现代码
2017/05/20 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
使用jQuery如何写一个含验证码的登录界面
2019/05/13 jQuery
微信小程序中为什么使用var that=this
2019/08/27 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
2020/10/27 Javascript
[01:13]2014DOTA2西雅图邀请赛 舌尖上的TI4
2014/07/08 DOTA
Python 文件操作的详解及实例
2017/09/18 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
Tensorflow中的降维函数tf.reduce_*使用总结
2020/04/20 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
html5教你做炫酷的碎片式图片切换 (canvas)
2017/07/28 HTML / CSS
外贸公司实习自我鉴定
2013/09/24 职场文书
奖学金自我鉴定范文
2013/10/03 职场文书
企业消防安全制度
2014/02/02 职场文书
聘用意向书范本
2014/04/01 职场文书
毕业寄语大全
2014/04/09 职场文书
个人年终总结怎么写
2015/03/09 职场文书
家长意见书
2015/06/04 职场文书
vue使用element-ui按需引入
2022/05/20 Vue.js