234rew 发表于 2015-11-30 10:12:44

Zabbix 实现微信报警

Zabbix实现微信报警
操作系统:Centos 6.5zabbix版本:2.4.6
一、注册微信公众号

首先申请微信公众平台https://mp.weixin.qq.com
在扫二维码关注微信公众号

    点击总用户数,在点击你的微信头像以下部位就是你的微信ID
二、下载微信公众平台私有接口

下载API
git clone https://github.com/lealife/WeiXin-Private-API

cp到zabbix默认的报警脚本目录
cp -r Weixin-Private-API/ /usr/lib/zabbix/alertscripts/

修改config 文件
<?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 W文件
<?php
require "config.php";
require "include/WeiXin.php";
$weiXin = new WeiXin($G_CONFIG['weiXin']);
$testFakeId = "$argv";
$msg="$argv";
print_r($weiXin->send($testFakeId, "$msg"));

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

修改权限为zabbix
chown zabbix:zabbix /usr/lib/zaabix/alertscripts/WeiXin-Private-API/*

创建zabbix调用脚本
vim /usr/lib/zabbix/alertscripts/weixin
/usr/bin/php /usr/lib/zabbix/alertscripts/WeiXin-Private-API/test.php "$1" "$2" "$3"

修改用户组
chown -R zabbix:zabbix /usr/lib/zabbix/alertscripts/weixin

添加执行权
chmod +x /usr/lib/zabbix/alertscripts/weixin

使用命令调用方式检测微信配置文件


三、配置zabbix

点击标记 users
点击admin



编辑默认的Report problems(错误报告)


添加
Name: Report problems to zabbix administrators

Default subject:{TRIGGER.STATUS}: {TRIGGER.NAME}
Default message:
Trigger host: {HOSTNAME}
Trigger ip: {HOST.IP}
Trigger time: {EVENT.DATE}:{EVENT.TIME}
Trigger:{TRIGGER.NAME}
Trigger status: {TRIGGER.SEVERITY}
Trigger URL: {TRIGGER.URL}

测试

手机微信收到消息


第二天微信不发消息解决办法,清空缓存文件里面的内容
vim /usr/lib/zabbix/alertscripts/WeiXin-Private-API/cache/webToken
或者写脚本定时清空

页: [1]
查看完整版本: Zabbix 实现微信报警