zabbix------关于微信报警的尝试

1 网上关于这个的文章很多,大家应该都可以照着做就行了,我只是把相关问题总结下,并记录。

2 准备工作

2.1准备微信公众号

2.1.1 注册公众号,我注册的是个人的,当然企业的最好了,群发比较方便,不过个人也凑合用。

https://mp.weixin.qq.com/

网站注册一个公众号,如果出现注册失败,请换邮箱,我试了我的所有qq都不行,我用的126成功了,所以一旦注册失败请自觉换邮箱。

2.1.2 登录公众号

这时候大概会让你绑定自己的管理微信号,扫个码,然后绑定银行卡(坑...)

最后大概是这个界面

wKiom1aMv93Q8n8bAAIOTmu3uXM494.png

点击网页上面的订阅号,然后让小伙伴扫一下二维码关注,就会有一个用户,点击总用户数,单机用户的名称的超链接位置,然后会大概是这样的一个网络url,

https://mp.weixin.qq.com/cgi-bin/singlesendpage?t=message/send&action=index&tofakeid=oVa4RwSPu3O7HC_5iDN8HowWQ6k&token=2020697380&lang=zh_CN,这个fakeid就是我们需要的,注意是fakeid,而不是微信id号,而你瞎发一个的话,一定是system error

2.2 准备API

 

[root@Zabbix-Server ~]# cd /etc/zabbix/alertscripts(你的报警脚本的位置,其实无所谓,不过为了好管理)
[root@Zabbix-Server alertscripts]# git clone 
[root@Zabbix-Server ]# cd WeiXin-Private-API
[root@Zabbix-Server WeiXin-Private-API]# sed 's#CURLOPT_SSL_VERIFYHOST, 1#CURLOPT_SSL_VERIFYHOST, 2#' include/LeaWeiXinClient.php
[root@Zabbix-Server WeiXin-Private-API]# cat 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缓存文件路径
); 

[root@Zabbix-Server WeiXin-Private-API]# cat test.php | egrep -v '//|^$'
<?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"));
测试发微信

网友是写了个脚本weixin.sh
[root@Zabbix-Server WeiXin-Private-API]# cat ../weixin.sh 
/usr/bin/php /etc/zabbix/alertscripts/WeiXin-Private-API/test.php "$1" "$2" "$3"
测试过程
①随便写个fakeid
[root@Zabbix-Server WeiXin-Private-API]# ../weixin.sh liuliancao '' 'hello'
PHP Notice:  Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33

Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33
PHP Notice:  Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33

Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33
stdClass Object
(
    [base_resp] => stdClass Object
        (
            [ret] => 200003
            [err_msg] => invalid session
        )

)
②用关注你的人的fakeid然后就发现可以发了,由于我是个人用户,我怀疑可能有多方面的限制吧,后来也出现了上面的错误,这里我还发现如果清空一下缓存就又好了,以下是我的操作情况

多次发后报错
[root@Zabbix-Server alertscripts]#  ./weixin.sh oVa4RwSPu-3O7HC_5iDN8HowWQ6k  ""  "hel"
PHP Notice:  Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33

Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33
PHP Notice:  Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33

Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33
stdClass Object
(
    [base_resp] => stdClass Object
        (
            [ret] => 200003
            [err_msg] => invalid session
        )

)

清空缓存
[root@Zabbix-Server alertscripts] echo ''> WeiXin-Private-API/cache/webToken 
[root@Zabbix-Server alertscripts] echo ''> WeiXin-Private-API/cache/cookie

再次发送
[root@Zabbix-Server alertscripts]#  ./weixin.sh oVa4RwSPu-3O7HC_5iDN8HowWQ6k  ""  "hel"
PHP Notice:  Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33

Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33
PHP Notice:  Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33

Notice: Undefined index: HTTP_USER_AGENT in /usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33
stdClass Object
(
    [base_resp] => stdClass Object
        (
            [ret] => 0
            [err_msg] => ok
        )

)

然后大致总结如下吧,至于web添加我就不想演示了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章