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

发表时间:2016-02-17 17:20 | 分类:Nagios | 浏览:910 次

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

201602171652

20160217165624342

微信脚本

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

20160217171616541

参考链接:

http://qydev.weixin.qq.com/wiki/index.php

https://github.com/zhangnq/nagios/tree/master/weixin

http://my.oschina.net/caiyuanbo/blog/383916

本文标签:,

本文链接:http://www.sijitao.net/2372.html

本文版权虫虫开源所有,欢迎您在本博客中留下评论,如需转载原创文章请注明出处,谢谢!

已经有8个回复
Comment (8)
Trackbacks (0)
  1. 每天签到赚10元  ( 2016.02.18 11:10 ) : #-9

    不错不错

    回复
  2. 重庆企业邮箱  ( 2016.02.19 16:12 ) : #-8

    使用Python增加Nagios微信报警通知的功能,对Python一点都不了解,还是要支持下博主

    回复
  3. 跨境电商之家  ( 2016.02.20 13:36 ) : #-7

    非常不错!感谢!!!

    回复
  4. 192.168.1.1  ( 2016.02.20 16:04 ) : #-6

    Python 这个语言一直没搞明白。 :shock:

    回复
    • 章郎虫  ( 2016.02.20 17:57 ) :

      python语言对初学者来说比较容易,我就是初学者和非计算机专业的门外汉。

      回复
  5. 美女图片站 MNTPZ.com  ( 2016.02.20 16:26 ) : #-5

    深奥的内容,秒过吧。ps.域名不错,四季淘?TB农村计划开始了。

    回复
    • 章郎虫  ( 2016.02.20 17:56 ) :

      是的,当初域名备案的时候个人不能用这个名字。放着后就干脆做博客了,淘博客内容。

      回复
  6. 成都川科卫校  ( 2016.06.2 10:38 ) : #-4

    不错不错。谢谢博主分享。

    回复
  1. 还没有Trackbacks
icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif 

一键脚本 SSH攻击 IP查询 博客历程 留言本 文章归档 网站地图 谷歌地图
托管于阿里云&七牛云. 已加入博客联盟. 浙ICP备13025236号.
Copyright © 2010-2016 虫虫开源 All Rights Reserved.