Zabbix使用微信接口实现微信报警功能

此教程仅适用于服务号、订阅号;企业号在此不适合,使用企业号实现微信告警功能请前往:Zabbix使用微信企业公众号接口实现报警完整版(Python+Shell)

当然如果大家感觉配置麻烦可以试试OneAlert一键集成zabbix,轻松实现微信、电话、邮件、短信、APP的告警通知。地址是:http://www.onealert.com/activity/zabbix.html

首先:你要到微信公众平台上开通你的微信公众号并让你的用户使用微信关注你的微信公众号,如何申请微信公众号自行度娘。

其次:您可以选择下载本博客提供的压缩包,当然你可以到官方的git上clone一份脚本(https
://github.com/lealife/WeiXin-Private-API),不过要做更改地方挺多的,索性老蔡就将修改的源码直接放到本博客了。

第一步:下载源码

第二步:设置微信公众号

第三步:测试脚本

测试脚本之前需要知道某一关注你微信公众号的用户的tofakeid,下面老蔡教你如何查询用户的tofakeid;

1、登陆微信公众号,切换到用户管理界面

1

2、点开用户的超链接,得到用户的tofakeid

https://mp.weixin.qq.com/cgi-bin/singlesendpage t=message/send&action=index&tofakeid=213291000&token=1328049598&lang=zh_CN

我们得到用户tofakeid后就可以用来测试我们的脚本是否能够顺利执行,以便我们开始下一步;

如果上面出现错误信息使得微信收不到测试信息,请分析下你的账号信息是否填写错误;如果不是,请检查你的公众号是否由于长时间没和用户互动被微信平台封锁了,这时请要求需要接受此报警信息的用户发送任意信息到你的公众账户上即可。如何还是不行,请将cache目录下的文件全部删除即可。

注意:如果你更改了公众号密码,cache目录下的文件同样需要删除掉;

第四步:配置Zabbix

添加示警媒介

2

添加用户示警媒介,主要是填写用户的tofakeid

4

然后老蔡故意关掉swap;这时微信就会收到报警信息啦!

1

添加报警动作

3

当然,老蔡还是挺友好滴,这里提供报警动作里面的模板内容。

故障解决方法

一、确认config.php文件中的公众号和密码是否正确;

    A+
发布日期:2015年09月14日  所属分类:系统监控
  1. [[email protected] WeiXin-Private-API]# /home/zabbix/share/zabbix/alertscripts/weixin 953372602 "" "http://lcbk.net"
    PHP Notice: curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2 will be used instead in /home/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 32
    PHP Notice: Undefined index: HTTP_USER_AGENT in /home/zabbix/share/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 /home/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 32
    PHP Notice: Undefined index: HTTP_USER_AGENT in /home/zabbix/share/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33
    stdClass Object
    (
    [base_resp] => stdClass Object
    (
    [ret] => -1
    [err_msg] => system error
    )

    )
    楼主能帮忙看下这个问题吗 账户密码没有错 验证三遍

  2. 我也遇到了这个问题。。但是账号密码是对的,,这是什么原因啊????
    PHP Warning: file_get_contents(/usr/lib/zabbix/alertscripts/WeiXin-Private-API/cache/webToken): failed to open stream: No such file or directory in /usr/lib/zabbix/alertscripts/WeiXin-Private-API/include/WeiXin.php on line 96
    PHP Notice: Undefined index: HTTP_USER_AGENT in /usr/lib/zabbix/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33
    PHP Notice: Undefined index: redirect_url in /usr/lib/zabbix/alertscripts/WeiXin-Private-API/include/WeiXin.php on line 79
    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] => -1
    [err_msg] => system error
    )

    )

  3. 首先先感谢楼主分享,关于微信报警 我用你的手机订阅号,前几天测试通过可以微信报警,今天测试微信,报200003的错误,查看需要清除缓存,楼主有什么比较好的办法一次性解决吗?不知道明天 或者下次使用会不会还出现这样的情况。

  4. php test.php
    PHP Notice: Undefined index: HTTP_USER_AGENT in /home/redhat/scripts/gun/weixin/include/LeaWeiXinClient.php on line 33
    PHP Notice: Undefined index: HTTP_USER_AGENT in /home/redhat/scripts/gun/weixin/include/LeaWeiXinClient.php on line 33
    stdClass Object
    (
    [base_resp] => stdClass Object
    (
    [ret] => -1
    [err_msg] => system error
    )

    )
    这个是什么原因呀,配置没错,但是发不出去,是接口不能用了么

  5. 微信报警每天都需要清理缓存文件,要么就报200003的错误,有没有办法解决呢?

  6. [0] => Array
    (
    [id] => 400894438
    [type] => 1
    [fakeid] => 368795915
    [nick_name] => 大海给老婆跪了
    [date_time] => 1447936986
    [content] => test
    [source] =>
    [msg_status] => 0
    [has_reply] => 0
    [refuse_reason] =>
    [multi_item] => Array
    (
    )

    [to_uin] => 3075558040
    )
    以上我我的消息记录,怎么针对 [id] => 400894438 这条消息进行回复?用命令行 让他的 [has_reply] => 0变成1