扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
以前,我们在用Nagios监控时,结合飞信、E-mail、短信等方式来报警。如今在使用Zabbix监控时,依然有很多种报警方式,今天我们就来讲一下微信和E-mail这两种报警方式!
成都创新互联公司是专业的龙马潭网站建设公司,龙马潭接单;提供网站制作、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行龙马潭网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!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文件
修改test.php文件,只保留一下几行:
注意这里 $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"
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
点击Administration -> Users, 在Admin用户的Media选项卡中,配置微信好友ID:
此处的用户ID即为用户的tofakeid。
添加报警动作:
报警主机: {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_agent上的HTTP故障后,微信也会给你发相应的提示!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流