Zabbix之微信订阅号平台报警

简介:

               微信企业号报警请点击

Zabbix简介

    zabbix(音同 zbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

    zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

    下文讲述了如何通过微信实现zabbix的告警:

第一步、注册微信公众号

    首先申请微信公众平台https://mp.weixin.qq.com/一个人最多申请5个公众号,所以还是可以的,申请完之后就可以根据腾讯的提示使用微信公众号了,然后用你自己的微信扫描关注微信号。

wKioL1aVH-nSZfHYAAD2A3DzHUA913.png


    订阅号有一个限制,就是你给对方发送的信息,对方需要24小时之内回复一下,否则对方就再不会收到信息。

wKiom1aVH5uSv7svAAOqB3lC7WA069.png

wKioL1aVIl2jEboVAAEBfr710qU238.png


    点击总用户数,点击刚刚关注的你自己的微信号的头像,在弹出的网页url中有你微信号的id 也就是下面url标红的部分。

wKiom1aVIi6Bz8NPAAHf55yKihg054.png

第二步、下载并配置微信公众平台私有接口

下载API,本文附近即为下载的API文件,可以根据修改
# git clone https://github.com/lealife/WeiXin-Private-API

修改config文件:
# vim config.php

1
2
3
4
5
6
7
8
9
<?php
  //  全局配置
   $G_ROOT =  dirname (__FILE__);
   $G_CONFIG[ "weiXin" ] = array(
   'account'  =>  '微信公众登录号码' ,
   'password'  =>  '微信公众登录密码' ,
   'cookiePath'  => $G_ROOT.  '/cache/cookie' //  cookie缓存文件路径
   'webTokenPath'  => $G_ROOT.  '/cache/webToken' //  webToken缓存文件路径
  );

修改test.php文件为如下内容

1
2
3
4
5
6
7
<?php
  require  "config.php" ;
  require  "include/WeiXin.php" ;
  $weiXin = new WeiXin($G_CONFIG[ 'weiXin' ]);
  $testFakeId =  "$argv[1]" ;
  $msg= "$argv[3]" ;
  print_r($weiXin->send($testFakeId,  "$msg" ));

    注意这里$msg=”$argv[3]”表示zabbix传入的第三个参数,因为在zabbix报警时会传入三个参数:一是微信好友ID,二是报警信息的主题,三是报警信息的具体内容,这里跳过了报警信息主题,直接发送报警信息内容。

    创建微信报警脚本weixin.sh 放到zabbix的脚本路径里,我的zabbix脚本路径为: /usr/local/zabbix/alertscripts,把我们下载的微信API移到这个目录,修改权限为zabbix,要不zabbix无法调用的。

# touch /usr/local/zabbix/alertscripts/weixin.sh

1
2
3
4
5
6
#!/bin/bash
###SCRIPT_NAME:weixin.sh###
###send message from weixin for zabbix monitor###
###water###
###V1-2016-01-12###
/usr/bin/php  /usr/local/zabbix/alertscripts/WeiXin-Private-API/test .php  "$1"  "$2"  "$3"

# chmod +x weixin.sh         给脚本增加执行权限
# chown zabbix:zabbix weixin.sh      给zabbix用户赋予权限

# chown zabbix.zabbix -R WeiXin-Private-API

测试接口是否可以使用:

#  ./weixin.sh oMIlmv_O9hvN3zWNatF91k7YYQIk "" "Welcome Weixin"

若出现以下信息,则表示发送成功:

wKiom1aVwCbxt3aEAACkss0T3j8362.jpg


第三步、配置Zabbix告警

1、增加示警媒介类型:

wKioL1aVwf7xM-iDAADq5-Cv1PM083.jpg

2、添加用户报警媒介,这里使用administrator用户

wKiom1aVwejA4F9LAAG2HWc8hvY897.jpg

3、添加报警动作

告警的动作字段在下面如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
主    题:
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
 
恢复主题:
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME}: {TRIGGER.NAME}已恢复!
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}


wKioL1aVww3BhyzfAAGeN0pTFLE131.jpg

wKiom1aVwirS1nH1AAFAuVHX7-A729.jpg

wKioL1aVwlzwB2f5AAGobeq7c1Y176.jpg

4、测试
停掉一台线上测试服务器的zabbix_agentd,看是否收到微信的告警:如图

可以看到zabbix把信息发送出去了,下面就是微信收到的信息了。

wKioL1aVxVjS1oiDAAHKQ-zbJ2k707.jpg

wKiom1aVxSejY1azAADvWB1RlUc352.jpg


附加:

    以上都是我们把报警发给了自己,如果我们想要发给其他的人员怎么办呢?

1、首先让另一个人关注我的公众微信号

2、点击查看他的微信ID

wKioL1aVx0DAygcMAAD_g_8n5ag438.jpg

wKiom1aVxxCjN1t1AAFKMLAwew4250.jpg

3、上面部署好的我们只需要修改test.php,修改为如下

1
2
3
4
5
6
7
8
9
10
11
  <?php
    require  "config.php" ;
    require  "include/WeiXin.php" ;
  
    $weiXin = new WeiXin($G_CONFIG[ 'weiXin' ]);
    $testFakeId =  "$argv[1]" ;
    $testFakeId2 =  "oMIlmvyGjdN-O5DarcLwna89mlOg" ;   #第二个人的微信ID,多人以此累加即可
    $msg= "$argv[3]" ;
   //print_r ($weiXin->send($testFakeId,  "$msg" ));
   
   print_r($weiXin->batSend(array($testFakeId, $testFakeId2),  "$msg" ));

把信息加入到属组发出去,如果有第三个人设置一个$testFakeId3就可以了,非常简单。





     本文转自 wzlinux 51CTO博客,原文链接:http://blog.51cto.com/wzlinux/1734408,如需转载请自行联系原作者




相关文章
|
18天前
|
运维 监控 BI
zabbix强大的报警系统
zabbix强大的报警系统
28 8
|
6月前
|
小程序 Java 关系型数据库
基于Java微信小程序智能招聘平台设计和实现(源码+LW+调试文档+讲解等)
基于Java微信小程序智能招聘平台设计和实现(源码+LW+调试文档+讲解等)
|
6月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的校园资讯平台微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的校园资讯平台微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
|
4月前
|
小程序 开发者
第一个微信小程序的初始化过程、小程序微信开发平台的下载、如何注册一个微信小程序的账号
这篇文章介绍了微信小程序的初始化过程,包括如何注册微信小程序账号、下载微信小程序开发者平台,并指导了新建小程序的详细步骤。
第一个微信小程序的初始化过程、小程序微信开发平台的下载、如何注册一个微信小程序的账号
|
4月前
|
监控 关系型数据库 MySQL
一文吃透企业级elk技术栈:11. zabbix报警实现
一文吃透企业级elk技术栈:11. zabbix报警实现
|
5月前
|
安全 API Windows
支付系统13------支付系统的资料在技术库里的在线支付当中,怎样获取微信平台证书那?怎样获取微信平台证书那?第一步打开我们的微信支付平台的文档中心
支付系统13------支付系统的资料在技术库里的在线支付当中,怎样获取微信平台证书那?怎样获取微信平台证书那?第一步打开我们的微信支付平台的文档中心
|
6月前
|
小程序 前端开发 Java
数学辅导平台|基于微信小程序实现数学辅导平台
数学辅导平台|基于微信小程序实现数学辅导平台
|
5月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的童装购买平台微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的童装购买平台微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
|
5月前
|
API
支付系统----微信支付24--APlv3介绍,首先我们要引入支付参数,包含商户号,APPID、API秘钥,数字证书,用代码加载到应用程序当中,之后加载商户私钥,商户需要用私钥进行验签,微信平台接收商
支付系统----微信支付24--APlv3介绍,首先我们要引入支付参数,包含商户号,APPID、API秘钥,数字证书,用代码加载到应用程序当中,之后加载商户私钥,商户需要用私钥进行验签,微信平台接收商
|
5月前
|
小程序
【微信小程序】实战案例 -- 向订阅用户发送消息(范例:报名提醒)
【微信小程序】实战案例 -- 向订阅用户发送消息(范例:报名提醒)
292 0

推荐镜像

更多
下一篇
DataWorks