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故障后,微信也会给你发相应的提示!


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...