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常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
Aug 25 Python
python中django框架通过正则搜索页面上email地址的方法
Mar 21 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
Python3实现发送QQ邮件功能(html)
Dec 15 Python
Python实现中一次读取多个值的方法
Apr 22 Python
对Python中type打开文件的方式介绍
Apr 28 Python
python实现随机漫步算法
Aug 27 Python
Python做智能家居温湿度报警系统
Sep 25 Python
实例讲解Python中浮点型的基本内容
Feb 11 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
Feb 20 Python
Python统计时间内的并发数代码实例
Dec 28 Python
Python中的 No Module named ***问题及解决
Jul 23 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
php的一个登录的类 [推荐]
2007/03/16 PHP
PHP 微信支付类 demo
2015/11/30 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
jquery验证手机号是否正确实例讲解
2015/11/17 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
总结JavaScript三种数据存储方式之间的区别
2016/05/03 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
2017/09/01 Javascript
Angular2监听页面大小变化的解决方法
2017/10/09 Javascript
canvas绘制爱心的几种方法总结(推荐)
2017/10/31 Javascript
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
2018/09/06 jQuery
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
记录Django开发心得
2014/07/16 Python
使用pdb模块调试Python程序实例
2015/06/02 Python
Python引用模块和查找模块路径
2016/03/17 Python
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
python实现微信跳一跳辅助工具步骤详解
2018/01/04 Python
Atom Python 配置Python3 解释器的方法
2019/08/28 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
CSS3动画之利用requestAnimationFrame触发重新播放功能
2019/09/11 HTML / CSS
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
五好党支部事迹材料
2014/02/06 职场文书
运动会加油稿100字
2014/09/19 职场文书
党员教师四风自我剖析材料
2014/09/30 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
期末个人总结范文
2015/02/13 职场文书
三傻大闹宝莱坞观后感
2015/06/03 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL