Zabbix 微信与钉钉告警配置部署
系统环境准备好:
Lnmp +zabbix-server:172.20.26.167
Mysql主从+zabbix-agent:172.20.26.198、172.20.26.24
zabbix的安装部署可以查阅之前的文章:Zabbix 4.0安装部署+自动发现及自动注册、自动添加监控主机-CSDN博客
下面开始部署微信告警
微信报警,需要用的是微信企业号,个人也可以注册微信企业号,可以不进行认证。企业微信申请好后,在通讯录添加部门,以及运维人员,用于接收微信报警。
在企业微信网页登录后,点击“应用管理”,点击“创建应用”
微信接口调试
https://open.work.weixin.qq.com/wwopen/devtool/interface?
doc_id=15074
corpid 为企业微信的ID
corpsecret 为应用secret,是刚刚创建的监控应用的secret 信息
微信报警所需信息准备完毕。
报警是在172.20.26.167 zabbix-server 端进行,报警是服务端的报警进程负责管理,报警的脚本在zabbix服务端来配置。
在172.20.26.167服务器上将微信报警脚本上传到/usr/src目录下
[root@localhost src]# vim /etc/zabbix_server.conf?
查看zabbix_server配置文件中已定义好的报警脚本文件的路径,根据这个路径创建存放脚本的目录
[root@localhost src]# mkdir -p /var/lib/zabbixsrv/alertscripts
进入/var/lib/zabbixsrv/alertscripts 目录下,将weixin_alert脚本移动过来,并进行授权
[root@localhost src]# cd /var/lib/zabbixsrv/alertscripts???????????????????????? [root@localhost alertscripts]# mv /usr/src/weixin_alert .
[root@localhost alertscripts]# chmod +x weixin_alert
测试脚本
Corpid为企业微信ID号
Corpsecret 为创建的监控应用的secret信息
User 为通讯录某个人的账号信息,而不是姓名名称
Agentid为创建的监控应用的Agentid信息
[root@localhost alertscripts]# /var/lib/zabbixsrv/alertscripts/weixin_alert --corpid=ww445b42e470ffd0c7 --corpsecret=vDj1oEsUuuIYt6eGUn10hu8f6Od17Hvpa9E-KWwV0-Q --msg="zabbix告警测试" --user=LiQinChang --agentid=1000006?
{"errcode":0,"errmsg":"ok","invaliduser":""}
Web端创建报警媒介
回到zabbix监控平台,点击管理----报警媒介类型,点击“创建媒介类型”
--corpid=ww445b42e470ffd0c7
--corpsecret=vDj1oEsUuuIYt6eGUn10hu8f6Od17Hvpa9E-KWwV0-Q
--agentid=1000006
--user={ALERT.SENDTO}
--msg={ALERT.MESSAGE}
用户绑定媒介
创建动作
点击配置---动作,创建动作
配置完成后,我们手动将172.20.26.198服务器上的nginx服务stop掉,看看刚才我们设置的微信报警是否起作用
当nginx 服务stop后,因之前我们配置了执行远程命令(systemctl start nginx),所以nginx服务自动启动了.
至此微信告警配置、测试完成。
部署钉钉告警
下载钉钉电脑版,注册登录后, 左上角的按钮,选择“机器人管理”
点击“自定义”,
点击“添加”
给需要监控的项目起个名字,如“钉钉告警”,添加要发送到告警信息的群组里,定义好关键词,如:故障,已解决,点击完成。
在172.20.26.167服务器的/var/lib/zabbixsrv/alertscripts目录下上传钉钉告警脚本
将webhook地址写入dingding_alert.py脚本文件里
[root@localhost alertscripts]# vim dingding_alert.py
webhook:
安装requests 模块
[root@localhost alertscripts]# yum install python-pip -y && pip install requests
[root@localhost alertscripts]# chmod +x /var/lib/zabbixsrv/alertscripts/dingding_alert.py
测试脚本
/var/lib/zabbixsrv/alertscripts/dingding_alert.py jfedu alert "故障:nginx down"
/var/lib/zabbixsrv/alertscripts/dingding_alert.py jfedu alert "已解决:nginx down"
ps:
jfedu 表示指定向那个用户告警,这里只是测试,正确写法应该是写用户的手机号码
alert 表示告警的主题
“故障:nginx down” 表示告警的消息,这里的“故障”是一定要写的,它是关键字,否则不会进行告警。
Web端创建报警媒介
回到zabbix监控平台,点击管理----报警媒介类型,点击“创建媒介类型”
{ALERT.SENDTO}?
{ALERT.SUBJECT}
{ALERT.MESSAGE}
用户绑定媒介
?
收件人:可以指定用户手机号码(注册钉钉的手机号码),指定对谁告警
创建动作
配置完成后,我们手动将172.20.26.198服务器上的nginx服务stop掉,看看刚才我们设置的钉钉报警是否起作用?钉钉告警已成功发出。
当nginx 服务stop后,因之前我们配置了执行远程命令(systemctl start nginx),所以nginx服务自动启动了。
至此钉钉告警配置、测试完成。
创建图形
创建聚合图形