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函数帮助查询小工具
Mar 13 Python
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
Apr 25 Python
pygame学习笔记(2):画点的三种方法和动画实例
Apr 15 Python
使用pdb模块调试Python程序实例
Jun 02 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
Feb 06 Python
Flask框架URL管理操作示例【基于@app.route】
Jul 23 Python
python实现zabbix发送短信脚本
Sep 17 Python
Python正则表达式指南 推荐
Oct 09 Python
详解python selenium 爬取网易云音乐歌单名
Mar 28 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
python中property属性的介绍及其应用详解
Aug 29 Python
python Popen 获取输出,等待运行完成示例
Dec 30 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一些有意思的小区别
2006/12/06 PHP
PHP中str_replace函数使用小结
2008/10/11 PHP
PHP中include和require的区别实例分析
2017/05/07 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
往光标所在位置插入值的js代码
2013/09/22 Javascript
javascript怎么禁用浏览器后退按钮
2014/03/27 Javascript
jquery选择器使用详解
2014/04/08 Javascript
JS动态修改iframe高度和宽度的方法
2015/04/01 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
2017/03/20 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
Python金融数据可视化汇总
2017/11/17 Python
Python爬虫实现百度图片自动下载
2018/02/04 Python
对Python3中的input函数详解
2018/04/22 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
pytorch的batch normalize使用详解
2020/01/15 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
python爬虫基础之urllib的使用
2020/12/31 Python
python绘制雷达图实例讲解
2021/01/03 Python
结婚典礼证婚词
2014/01/11 职场文书
上课睡觉检讨书
2014/01/28 职场文书
军训学生自我鉴定
2014/02/12 职场文书
卫生巾广告词
2014/03/18 职场文书
演讲稿的格式及范文
2014/08/22 职场文书
员工评语范文
2014/12/31 职场文书
canvas 中如何实现物体的框选
2022/08/05 Javascript