实时警报通知:微信告警通知的重要性解析
1676
2022-10-18
Zabbix自定义脚本监控nginx以及微信告警的全过程
项目描述
项目步骤
项目心得
在测试接收消息过程中,返回值一直是参数{ALTER.MESSAGE},排查脚本问题,版本问题,最后发现是参数{ALERT.MESSAGE},所以打字一定要细心,认真。同时对监控也有了一定的认识,运维人员不可能7*24小时盯着zabbix看,所以做到及时告警是非常必要的,对之前的高可用web集群项目叶可以进行完善。
详细步骤
zabbix-agent客户端nginx配置监控
nginx打开状态统计功能
nginx配置增加stub_status模块
location = /wyt_status{stub_status;}
测试状态统计功能是否打开
nginx端(zabbix客户端)编写监控脚本
cd /etc/zabbix/zabbix_agentd.d #在zabbix_agentd.d目录下编写监控脚本vim zabbix-nginx_status.sh
vim userparameter_nginx.conf#在zabbix_agentd.d目录下自定义参数配置文件UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/zabbix-nginx_status.sh $1#指定动作chmod +x zabbix-nginx_status.sh#授予可执行权限service zabbix-agent restart#刷新服务zabbix_get -k nginx.status[ping] -s 192.168.2.58#去服务端测试是否返回参数1
zabbix-server-web配置监控
先创建nginx主机master-nginx
添加应用集nginx
在应用集nginx增加监控项
自定义触发器nginx-up-down,监控项为nginx-ping,正常为1,每5s监控一次,若为0,严重警告。
除nginx-ping,nginx-accepts外,需要添加所有状态监控项,只有nginx-ping创建触发器,这里不一一举例。
添加好所有监控项,下一步制图,图中包含所有监控项
因为我们监控实际上就是在一直请求,所以看到nginx-requests在不断增加。
注册成功之后创建一个运维部门
记住自己的企业ID
自建应用
应用名称为zabbix监控
创建成功后,查看信息记住自己的AgentId和Secret
zabbix-server接口脚本配置告警
Shell脚本
cd /usr/lib/zabbix/alertscripts进入脚本配置文件夹vim weixin.sh
测试脚本能否正常接收消息
可以看到正常接收。
然后我们回到zabbix-server-web配置
zabbix-server-web配置告警
管理->报警媒介类型->创建媒体类型
创建用户群组
创建用户
报警媒介
权限->超级管理员
配置->动作
添加触发器
操作
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生{TRIGGER.NAME}故障!告警主机:{HOSTNAME1}告警时间:{EVENT.DATE} {EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息: {TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}
恢复操作
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!告警主机:{HOSTNAME1}告警时间:{EVENT.DATE} {EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息: {TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}
zabbix-agent关停nginx服务测试
可以看到推送成功
Python webhook机器人脚本
新建一个测试群聊,在群里添加机器人,记住webhook地址
除了使用Shell脚本配置接口之外,还可以使用Python脚本
测试
python weixin.py test
web配置同上
总结
您可能感兴趣的文章:zabbix自定义监控nginx状态实现过程zabbix监控Nginx/Tomcat/MySQL的详细教程zabbix配置nginx监控的实现
发表评论
暂时没有评论,来抢沙发吧~