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 17 Python
Python检测一个对象是否为字符串类的方法
May 21 Python
Python使用googletrans报错的解决方法
Sep 25 Python
Python3爬楼梯算法示例
Mar 04 Python
使用python写的opencv实时监测和解析二维码和条形码
Aug 14 Python
浅谈图像处理中掩膜(mask)的意义
Feb 19 Python
Python requests设置代理的方法步骤
Feb 23 Python
Python中的__init__作用是什么
Jun 09 Python
pycharm中选中一个单词替换所有重复单词的实现方法
Nov 17 Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
May 20 Python
python自动化测试之Selenium详解
Mar 13 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
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
jquery不支持toggle()高(新)版本的问题解决
2016/09/24 PHP
yii2局部关闭(开启)csrf的验证的实例代码
2017/07/10 PHP
jQuery MD5加密实现代码
2010/03/15 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
2014/05/14 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
原生javascript实现简单的datagrid数据表格
2015/01/02 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
关于延迟加载JavaScript
2015/05/05 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
Python 多维List创建的问题小结
2019/01/18 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
numpy数组广播的机制
2019/07/12 Python
python  文件的基本操作 菜中菜功能的实例代码
2019/07/17 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
Django实现简单的分页功能
2021/02/22 Python
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
HTML5头部标签的一些常用信息小结
2016/10/23 HTML / CSS
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
几个常见的软件测试问题
2016/09/07 面试题
应届大学生自荐信
2013/12/05 职场文书
日本语毕业生自荐信
2014/02/01 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS