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入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
Oct 29 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
Dec 26 Python
python实现图书借阅系统
Feb 20 Python
PyTorch搭建一维线性回归模型(二)
May 22 Python
python 一个figure上显示多个图像的实例
Jul 08 Python
Django中使用session保持用户登陆连接的例子
Aug 06 Python
Python PIL图片添加字体的例子
Aug 22 Python
使用Python生成200个激活码的实现方法
Nov 22 Python
通过Turtle库在Python中绘制一个鼠年福鼠
Feb 03 Python
python实现图像全景拼接
Mar 27 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 Python
python3中celery异步框架简单使用+守护进程方式启动
Jan 20 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
javascript,php获取函数参数对象的代码
2011/02/03 PHP
php中curl使用指南
2015/02/05 PHP
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
jQuery中position()方法用法实例
2015/01/16 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
js基于myFocus实现轮播图效果
2017/02/14 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
[48:00]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第二场 11.04
2020/11/04 DOTA
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
Python numpy 常用函数总结
2017/12/07 Python
pandas的排序和排名的具体使用
2019/07/31 Python
将python依赖包打包成window下可执行文件bat方式
2019/12/26 Python
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
Java里面如何把一个Array数组转换成Collection, List
2013/07/26 面试题
建筑工程技术应届生自荐信
2013/09/27 职场文书
工商管理专业实习生自我鉴定
2013/09/29 职场文书
个人简历自我评价八例
2013/10/31 职场文书
建筑工程专业学生的自我评价
2013/12/25 职场文书
实习单位接收函
2014/01/11 职场文书
入党综合考察材料
2014/06/02 职场文书
领导干部保密承诺书
2014/08/30 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
通报表扬范文
2015/01/17 职场文书
邮政营业员岗位职责
2015/04/14 职场文书
公司业务员管理制度
2015/08/05 职场文书
2015年秋学期教研工作总结
2015/10/14 职场文书