Zabbix的两种报警方式--微信和E-mail(一)
admin
2023-08-01 19:46:05
0

以前,我们在用Nagios监控时,结合飞信、E-mail、短信等方式来报警。如今在使用Zabbix监控时,依然有很多种报警方式,今天我们就来讲一下微信和E-mail这两种报警方式!

Zabbix结合微信报警:

Zabbix_server:192.168.30.192

Zabbix_agent:192.168.30.198

在做此实验之前,你必须要注册一个微信公众号(订阅号或者服务号),然后让你的用户关注你的微信工作号。如何申请公众号请自行百度!


第一步:下载源码

下载微信公众平台私有接口

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

cp -r WeiXin-Private-API  /etc/zabbix/alertscripts  

/etc/zabbix/alertscripts此目录为zabbix默认报警脚本目录,rpm安装的zabbix默认的报警脚本目录在这个目录下,编译安装的可以自己查找。

chown -R  zabbix:zabbix   /etc/zabbix/alertscripts/WeiXin-Private-API


第二步:设置微信公众号

cd   /etc/zabbix/alertscripts/WeiXin-Private-API

修改config.php文件

Zabbix的两种报警方式--微信和E-mail(一)

修改test.php文件,只保留一下几行:

Zabbix的两种报警方式--微信和E-mail(一)

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


第三步:创建测试脚本

vim  /etc/zabbix/alertscripts/weixin

/usr/bin/php /etc/zabbix/alertscripts/WeiXin-Private-API/test.php "$1" "$2" "$3"

Zabbix的两种报警方式--微信和E-mail(一)

chmod +x  /etc/zabbix/alertscripts/weixin

chown -R zabbix.zabbix  /etc/zabbix/alertscripts/weixin


第四步:测试脚本 

在测试脚本之前,你必须要得到用户的tofakeid。

获取tofakeid的方法如下:

登录你的微信公众号,用户管理-->选中你要测试的用户,点击他的图像,你会得到一个地址:

https://mp.weixin.qq.com/cgi-bin/singlesendpage?t=message/send&action=index&tofakeid=o-ARgwmMXLd8IdYIeWajD6glUe4I&token=2046185283&lang=zh_CN

上面网址中tofakeid后面红色的部分即为用户的tofakeid。


[root@server92 alertscripts]# /etc/zabbix/alertscripts/weixin o-ARgwmMXLd8IdYIeWajD6glUe4I "" "hello"

PHP Notice:  Undefined index: HTTP_USER_AGENT in /var/lib/zabbixsrv/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33

PHP Notice:  Undefined index: HTTP_USER_AGENT in /var/lib/zabbixsrv/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33

stdClass Object

(

    [base_resp] => stdClass Object

        (

            [ret] => 0

            [err_msg] => ok

        )


)

当你看到OK时,则测试成功!


如果你在测试时出现如下问题:

[root@server92 alertscripts]# /etc/zabbix/alertscripts/weixin o-ARgwmMXLd8IdYIeWajD6glUe4I "" "hello"

PHP Notice:  Undefined index: HTTP_USER_AGENT in /var/lib/zabbixsrv/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33

PHP Notice:  Undefined index: HTTP_USER_AGENT in /var/lib/zabbixsrv/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33

stdClass Object

(

    [base_resp] => stdClass Object

        (

            [ret] => 10706

            [err_msg] => customer block

        )


)


这是因为该用户48小时之内未与你互动,你不能主动发消息给他。你可以让该用户给你的微信公众号随便发条消息,再重新测试一遍就可以解决了!

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

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


第五步:配置Zabbix

添加警示媒体:Administration --> Media types-->Create media type

Zabbix的两种报警方式--微信和E-mail(一)
点击Administration -> Users, 在Admin用户的Media选项卡中,配置微信好友ID:

Zabbix的两种报警方式--微信和E-mail(一)
此处的用户ID即为用户的tofakeid。

添加报警动作:

Zabbix的两种报警方式--微信和E-mail(一)

报警主机: {HOST.NAME}

报警IP: {HOST.IP}

报警时间: {EVENT.DATE}{EVENT.TIME}

报警问题: {TRIGGER.NAME}

报警状态: {TRIGGER.STATUS}

报警级别: {TRIGGER.SEVERITY}

报警详情: {ITEM.NAME}{ITEM.VALUE}

事件ID:{EVENT.ID}


第六步:报警测试

关闭Zabbix_agent上的HTTP服务,报警如下:

Zabbix的两种报警方式--微信和E-mail(一)
当你解决了zabbix_agent上的HTTP故障后,微信也会给你发相应的提示!


相关内容

热门资讯

豌豆思维与华领人工智能签约,推... 7月9日,广州专精特新企业豌豆思维与华领人工智能集团在北京签署战略合作协议。欢乐童年CEO、豌豆思维...
海西新药:C019199片启动... 7月9日,海西新药(02637)发布公告,宣布其自主研发的C019199片正式启动针对既往至少二线治...
原创 A... 出品丨鳌头财经 面对监管新规,下线相关功能是最经济的选择。 7月4日,字节跳动旗下豆包与阿里旗下通...
以色列总理:不允许伊朗拥核 △以色列总理内塔尼亚胡(资料图)以色列总理内塔尼亚胡当地时间9日表示,无论美国和伊朗是否达成协议,以...
晋江鞋厂着火部位为1层,燃烧物... 7月9日12时4分许,位于福建泉州晋江市的辉腾鞋业有限公司发生火情,火灾发生时该厂房现场有237名本...
失守的坝,失联的人,失收的地 食通社说广西水灾救援还在继续中。在核心受灾区南宁横州,洪水横扫茉莉花、水稻、甘蔗、香蕉种植业及渔业、...
第一完成单位!隆平高科荣获20... 7月8日,2025年度国家科学技术奖励大会在北京隆重举行。由隆平高科作为第一完成单位,中信集团首席科...
2026智慧能源大会在成都开幕 成都7月9日电 (单鹏)由中国能源研究会等主办的2026智慧能源大会9日在成都开幕。本次活动汇聚来自...
国家科学技术“三大奖”揭晓,为... 7月8日,2025年度国家科学技术奖励大会在北京举行,国家自然科学奖、技术发明奖、科技进步奖“三大奖...
原创 安... 今天继续分享6月安卓性价比榜,这次的价格区间是4000元以上,性价比榜机型基于性能榜和京东自营价。比...