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爬取网站数据保存使用的方法
Nov 20 Python
用Python编写web API的教程
Apr 30 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
Jun 11 Python
Django contenttypes 框架详解(小结)
Aug 13 Python
python requests.post带head和body的实例
Jan 02 Python
python实现Excel文件转换为TXT文件
Apr 28 Python
python多线程同步实例教程
Aug 11 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
Jan 14 Python
Python实现屏幕录制功能的代码
Mar 02 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
python实现学生管理系统开发
Jul 24 Python
Python性能测试工具Locust安装及使用
Dec 01 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中取得URL的根域名的代码
2011/03/23 PHP
php 5.3.5安装memcache注意事项小结
2011/04/12 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
php读取csv数据保存到数组的方法
2015/01/03 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
2009/06/02 Javascript
Extjs 几个方法的讨论
2010/01/28 Javascript
jQuery第三课 修改元素属性及内容的代码
2010/03/14 Javascript
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
2015/06/19 Javascript
JS前端加密算法示例
2016/12/22 Javascript
JS+html5制作简单音乐播放器
2020/09/13 Javascript
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
详解easyui 切换主题皮肤
2019/04/04 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
vue 解决IOS10低版本白屏的问题
2020/11/17 Javascript
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
python提取内容关键词的方法
2015/03/16 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
如何运行带参数的python脚本
2019/11/15 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
python中JWT用户认证的实现
2020/05/18 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
HTML5新增加的功能详解
2016/09/05 HTML / CSS
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
给学校的建议书
2014/03/12 职场文书
2014年信用社工作总结
2014/11/25 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书
2015年房地产个人工作总结
2015/05/26 职场文书