Python增加Nagios微信报警通知的功能

Nagios强大的报警功能现在又有了新玩法,思路就是调用微信公共平台的api接口发送报警邮件。在正式操作之前,有几个准备工作要做。先安装nagios,可以使用我提供的nagios一键安装脚本。然后是去微信公共平台申请一个企业号,我申请时填的是组织,没有认证也可以使用。最后登录公共平台添加通讯录,和新建应用(例如nagios),记录应用的id后面要用。用户权限什么自己设定。

微信脚本

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这个联系人后就可以通过微信发送报警邮件了

时间: 2024-09-28 00:55:49

Python增加Nagios微信报警通知的功能的相关文章

WordPress增加评论自动邮件通知博主的功能

方法一,windows,linux主机 根据自己的需要,选择一种自己需要的代码,添加在主题的 functions.php 文件的 最后一个 ?> 前面即可: 所有回复都发送邮件通知 默认所有填写了邮箱的评论都将发邮件提醒评论人,没有任何勾选设置.  代码如下 复制代码 /* comment_mail_notify v1.0 by willin kan. (所有回复都发邮件) */ function comment_mail_notify($comment_id) {   $comment = g

微信报警 zabbix实现详解_其它综合

现实生产环境中,我们通常使用邮件和短信接受zabbix报警信息,但是邮件经常被工作人员搁置在角落中甚至被设置为垃圾邮件被过滤掉.公司的短信接口又太贵,复杂环境中使用短息报警会使运维成本增加很多.微信提供了很好的第三方接口,我们可以利用微信报警以求降低运维成本.        微信的第三方接口要求我们先申请一个企业号--传送门:https://qy.weixin.qq.com/ 如何操作企业号?     1.通讯录添加企业成员            我们要提前把成员信息添加进组织部门,必填项+手机

NEXT 上线“通知中心”功能

摘要: NEXT 在正式上线了通知中心功能,当你所提交的产品获得点赞或者评论时,这些消息会出现在通知中心里. 之前绑定了微信的用户,当有人就你所提交的产品发表评论时,你会通过邮件 NEXT 在正式上线了"通知中心"功能,当你所提交的产品获得点赞或者评论时,这些消息会出现在"通知中心"里. 之前绑定了微信的用户,当有人就你所提交的产品发表评论时,你会通过邮件和微信,获得实时的推送通知,避免错过重要信息.现在,新的评论消息会出现在"通知中心"中,而查

Python的Flask框架中实现分页功能的教程

  这篇文章主要介绍了Python的Flask框架中实现分页功能的教程,文中的示例基于一个博客来实现,需要的朋友可以参考下 Blog Posts的提交 让我们从简单的开始.首页上必须有一张用户提交新的post的表单. 首先我们定义一个单域表单对象(fileapp/forms.py): ? 1 2 class PostForm(Form): post = TextField('post', validators = [Required()]) 下面,我们把这个表单添加到template中(file

如何使用微信的嘀嘀打车功能

微信已经在产品内添加了由"嘀嘀打车"提供的打车功能.用户进入微信,在"我的银行卡"界面中将可以看到"嘀嘀打车"入口.除了获取叫车服务,用户还可以使用微信支付向司机交付打车费用.与此同时,嘀嘀打车应用也已同步接入了微信支付. 乘客在微信里"我的银行卡"界面中进入"嘀嘀打车",输入并发送打车要去的地点: 附近司机接单成功后,双方之间的交易就建立.此时界面中会显示,司机距离乘客位置的时间: 乘客上车后点击&quo

微信多客服功能正式向所有微信认证的服务号和订阅号开放

摘要: 今晚微信悄悄开放了公众平台的客服功能,多客服功能正式向所有微信认证的服务号和订阅号开放.多客服功能简单的说,就是将人工客服团队,可以全部搬到微信公众平台上. 根据微 今晚微信悄悄开放了公众平台的客服功能,多客服功能正式向所有微信认证的服务号和订阅号开放."多客服功能"简单的说,就是将人工客服团队,可以全部搬到微信公众平台上. 根据微信官方的说明,已微信认证的公众号可以在"功能"--"添加功能插件"页申请开通多客服功能.开通成功后,在&qu

微软使用 Android 端 Cortana 通知同步功能鼓励开发者创建 UWP 应用

近年来,微软一直推进Cortana在Android和iOS竞争对手平台的发展,不断修复BUG和增加功能.在最新上线的Windows 10系统中新增了通知同步功能,能够在Windows 10 Action Centre中接收和交互Android手机端的通知,这不仅是一项非常实用的功能,而且微软尝试借助这项功能向开发者推广Windows Store. 在Windows 10的最新版本中,Action Centre中来自Android设备的通知标记将需要包含一个"Request App"的按

C#开发微信门户及应用(7)-微信多客服功能及开发集成

原文:C#开发微信门户及应用(7)-微信多客服功能及开发集成 最近一直在弄微信的集成功能开发,发现微信给认证账户开通了一个多客服的功能,对于客户的咨询,可以切换至客服处理的方式,而且可以添加多个客服进行处理,这个在客户咨询比较多的时候,是一个不错的营销功能.微信多客服的功能,能够在很大程度上利用客服员工资源,及时迅速对客户咨询信息进行处理,为企业带来更多的机会和市场. 默认这个多客服的功能,需要在微信公众平台中的服务中心进行主动开通,默认是不开通的,为了体验这个功能,我这里把多客服功能进行开通.

“用微信‘附近的人’功能

"用微信'附近的人'功能,三地画三圈,就知道你在哪儿--"最近,有传言称微信上通过"附近的人"功能可以用"三点定位法"查找到目标微信用户的位置.这个说法引起网友对安全问题的关注."三点定位法"是否靠谱?人民日报"求证"栏目记者采访了相关专家和工作人员,并进行了实地测验. 记者实地测验,无法定位目标所在区域 传言称,以自己所在位置为圆心,以微信查找"附近的人"所显示的目标用户距离为半径,依