一、注册微信公众号

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

meitu_1](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_1.jpg)](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_1.jpg) 通过扫描过后就可以看到已经有一个用户关注啦;于是我们这里需要查看用户的ID 点击 “用户管理”,然后点击一下用户的头像,这时候我们可以在浏览器的地址栏就可以看到一个这个,其中红色部分就是用户的微信ID啦,先记下这个ID https://mp.weixin.qq.com/cgi-bin/singlesendpage?t=message/send&action=index&tofakeid=250995555&token=94167798&lang=zh_CN ![meitu_2
meitu_1](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_1.jpg)](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_1.jpg) 通过扫描过后就可以看到已经有一个用户关注啦;于是我们这里需要查看用户的ID 点击 “用户管理”,然后点击一下用户的头像,这时候我们可以在浏览器的地址栏就可以看到一个这个,其中红色部分就是用户的微信ID啦,先记下这个ID https://mp.weixin.qq.com/cgi-bin/singlesendpage?t=message/send&action=index&tofakeid=250995555&token=94167798&lang=zh_CN ![meitu_2

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

1.获取代码

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

2.修改zabbix配置文件

[root@Control-machine ~]# cp -r WeiXin-Private-API /usr/lib/zabbix/alertscripts/
[root@Control-machine ~]# cd /usr/lib/zabbix/alertscripts/
[root@Control-machine alertscripts]# chown zabbix:zabbix WeiXin-Private-API
[root@Control-machine alertscripts]#

#修改test.php文件
[root@Control-machine alertscripts]# vim WeiXin-Private-API/test.php
<?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”));

3.修改config.php文件

[root@Control-machine alertscripts]# vim WeiXin-Private-API/config.php
<?php
// 全局配置
$G_ROOT = dirname(__FILE__);
$G_CONFIG[“weiXin”] = array(
‘account’ => ‘你的微信公众登录号码’,
‘password’ => ‘你的微信公众登录密码’,
‘cookiePath’ => $G_ROOT. ‘/cache/cookie’, // cookie缓存文件路径
‘webTokenPath’ => $G_ROOT. ‘/cache/webToken’, // webToken缓存文件路径
);

4.修改test.php文件

[root@Control-machine alertscripts]# vim WeiXin-Private-API/test.php
<?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,二是报警信息的主题,三是报警信息的具体内容,这里跳过了报警信息主题,直接发送报警信息内容 5.创建微信报警脚本

[root@Control-machine alertscripts]# vim weixin
/usr/bin/php /usr/lib/zabbix/alertscripts/WeiXin-Private-API/test.php “$1” “$2” “$3”
[root@Control-machine alertscripts]# chown zabbix:zabbix weixin
[root@Control-machine alertscripts]# chmod +x weixin

6.测试报警

[root@Control-machine alertscripts]# /usr/bin/php /usr/lib/zabbix/alertscripts/WeiXin-Private-API/test.php 250995555 “” “Test”
PHP Notice: Undefined index: HTTP_USER_AGENT in /usr/lib/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33
PHP Notice: curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2 will be used instead in /usr/lib/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 32
PHP Notice: Undefined index: HTTP_USER_AGENT in /usr/lib/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33
stdClass Object
(
[base_resp] => stdClass Object
(
[ret] => 0
[err_msg] => ok #说明已经发送出去啦
)

)
[root@Control-machine alertscripts]#

#以上PHP的提示信息可以忽略

查看结果

meitu_3
meitu_3

三、配置zabbix

1.添加报警媒介 [

meitu_4](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_4.jpg)](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_4.jpg) 2.添加用户报警媒介,这里使用的是administrator [![meitu_5](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_5.jpg)](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_5.jpg) 3.添加报警动作 [![meitu_6](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_6.jpg)](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_6.jpg) 信息如下 [![meitu_8](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_8.jpg)
meitu_4](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_4.jpg)](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_4.jpg) 2.添加用户报警媒介,这里使用的是administrator [![meitu_5](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_5.jpg)](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_5.jpg) 3.添加报警动作 [![meitu_6](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_6.jpg)](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_6.jpg) 信息如下 [![meitu_8](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_8.jpg)
修改操作条件,保持默认的也可以; 保存设置

四、测试

我这里将监控mysql主从的脚本手动改一下,让其zabbix检测到并报警 手机微信查看报警信息 [

meitu_7](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_7.jpg)](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_7.jpg) 但是需要注意的是,如果公众号向我的微信发送消息超过48个小时我没有回复,那么公众号将不会主动发送消息。然后我们在微信,也就是说,我们在收到报警通知后在48个小时之内可以简单的回复一个字符,或者一段话即可 [![Screenshot from 2015-11-30 16:40:29](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/Screenshot-from-2015-11-30-164029.png)
meitu_7](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_7.jpg)](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/meitu_7.jpg) 但是需要注意的是,如果公众号向我的微信发送消息超过48个小时我没有回复,那么公众号将不会主动发送消息。然后我们在微信,也就是说,我们在收到报警通知后在48个小时之内可以简单的回复一个字符,或者一段话即可 [![Screenshot from 2015-11-30 16:40:29](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/11/Screenshot-from-2015-11-30-164029.png)
参考文章链接: http://blog.chinaunix.net/uid-30236771-id-5037842.html