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分析nignx访问日志脚本分享
Feb 26 Python
Python实现获取操作系统版本信息方法
Apr 08 Python
Window10+Python3.5安装opencv的教程推荐
Apr 02 Python
python实现多线程网页下载器
Apr 15 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
Jun 11 Python
Python编程中flask的简介与简单使用
Dec 28 Python
在Python运行时动态查看进程内部信息的方法
Feb 22 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
Jan 06 Python
Python如何实现后端自定义认证并实现多条件登陆
Jun 22 Python
利用python对mysql表做全局模糊搜索并分页实例
Jul 12 Python
Python二元算术运算常用方法解析
Sep 15 Python
python 6行代码制作月历生成器
Sep 18 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 程序员也要学会使用“异常”
2009/06/16 PHP
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
2010/10/12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
2014/06/26 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
2015/04/21 PHP
iOS10推送通知开发教程
2016/09/19 PHP
一个用js实现控制台控件的代码
2007/09/04 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
基于pako.js实现gzip的压缩和解压功能示例
2017/06/13 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
小程序图片剪裁加旋转的示例代码
2018/07/10 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
python内存管理分析
2015/04/08 Python
[原创]教女朋友学Python(一)运行环境搭建
2017/11/29 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
2020/04/23 Python
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
一款纯css3实现的tab选项卡的实列教程
2014/12/11 HTML / CSS
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
J2EE中的容器都包括哪些
2013/08/21 面试题
函授自我鉴定范文
2014/02/06 职场文书
建筑安全员岗位职责
2014/03/13 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
在人间读书笔记
2015/06/30 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
Mysql实现主从配置和多主多从配置
2021/06/02 MySQL