zabbix3.0微信报警
一、下载并配置微信公众平台私有接口
[root@iZ25kscmkn3Z ~]# git clone https://https://www.360docs.net/doc/4b3531738.html,/lealife/WeiXin-Private-API
修改配置文件
[root@iZ25kscmkn3Z ~]# cp -r WeiXin-Private-API/ /usr/local/zabbix/share/zabbix/alertscripts/ [root@iZ25kscmkn3Z ~]# cd !$
cd /usr/local/zabbix/share/zabbix/alertscripts/
[root@iZ25kscmkn3Z alertscripts]# chown -R zabbix:zabbix WeiXin-Private-API/
修改config文件
修改test.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,二是报警信息的主题,三是报警信息的具体内容,这里跳过了报警信息主题,直接发送报警信息内容
/usr/local/bin/php
/usr/local/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/test.php "$1" "$2" "$3"
测试脚本
1、登陆微信公众号,切换到用户管理界面
2、点开用户的超链接,得到用户的tofakeid
https://https://www.360docs.net/doc/4b3531738.html,/cgi-bin/singlesendpage?t=message/send&action=index&tofakeid=o-pOhs-8XdDaqMxBbViRGUmwB_Xk&token=301887046&lang=zh_CN
[root@iZ25kscmkn3Z alertscripts]# /usr/local/zabbix/share/zabbix/alertscripts/weixin o-pOhs-8XdDaqMxBbViRGUmwB_Xk "" "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] => 0
[err_msg] => ok //微信借口正常,微信端可以收到信息
)
)
故障解决方法:
[err_msg] => system error // config.php文件的微信公众号和密码不正确
[err_msg] => invalid args //tofakeid号码错误
[err_msg] => invalid session //清空缓存 rm -rf cache/*
验证:zabbix服务器向公众号指定用户发送信息:
[root@iZ25kscmkn3Z WeiXin-Private-API]# /usr/local/zabbix/share/zabbix/alertscripts/weixin o-pOhs-8XdDaqMxBbViRGUmwB_Xk"" "hello"
1.创建媒介
输入脚本名称,类型选择脚本
添加以下3个参数,分别对应sendEmail.sh脚本需要的3个参数:收件人地址、主题、详细内容
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
解释:很多人安装zabbix 3.0之后,写的脚本一直发信不成功,手动执行时可以的。那是因为zabbix3.0之后,可以自定义参数了。所以不写参数,它是不会传参数的。在2.x版本不存在这个问题,默认会传3个参数
2.创建用户
选择微信,输入用户的tofakeid值
点击用户群组,点击zabbix administrator后面的调用模式,点击一下,就启用了
点权限->添加
3、创建触发器动作发送内容
报警问题: {https://www.360docs.net/doc/4b3531738.html,}
报警主机:{HOSTNAME}
报警时间:{EVENT.TIME}
报警状态: {TRIGGER.STATUS}
报警级别: {TRIGGER.SEVERITY}
完成,验证:关闭zabbix_agentd服务,微信可以收到报警信息