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利用ElementTree模块处理XML的方法详解
Aug 31 Python
Python 绘图库 Matplotlib 入门教程
Apr 19 Python
浅谈关于Python3中venv虚拟环境
Aug 01 Python
使用Python操作FTP实现上传和下载的方法
Apr 01 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
Jun 18 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 Python
python+Django+pycharm+mysql 搭建首个web项目详解
Nov 29 Python
Python3 集合set入门基础
Feb 10 Python
Python通过类的组合模拟街道红绿灯
Sep 16 Python
pycharm进入时每次都是insert模式的解决方式
Feb 05 Python
python manim实现排序算法动画示例
Aug 14 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
星际实力自我测试
2020/03/04 星际争霸
php连接Access数据库错误及解决方法
2013/06/20 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
PHP多文件上传类实例
2015/03/07 PHP
PHP PDOStatement::setFetchMode讲解
2019/02/03 PHP
TBCompressor js代码压缩
2011/01/05 Javascript
dojo随手记 gird组件引用
2011/02/24 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
Bootstrap table分页问题汇总
2016/05/30 Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
2016/12/14 Javascript
Cookies 和 Session的详解及区别
2017/04/21 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
vue props对象validator自定义函数实例
2019/11/13 Javascript
JS前端模块化原理与实现方法详解
2020/03/17 Javascript
vue+springboot+element+vue-resource实现文件上传教程
2020/10/21 Javascript
python制作爬虫爬取京东商品评论教程
2016/12/16 Python
Python下载网络小说实例代码
2018/02/03 Python
有关Python的22个编程技巧
2018/08/29 Python
Python/ArcPy遍历指定目录中的MDB文件方法
2018/10/27 Python
Django 大文件下载实现过程解析
2019/08/01 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
椰子猫砂:CatSpot
2018/08/27 全球购物
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
通息工程毕业生自荐信
2013/10/16 职场文书
专家推荐信怎么写
2015/03/25 职场文书
旷工辞退通知书
2015/04/17 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis