基于zabbix4.2配置钉钉告警机制及流程测试
概述
环境:centos7.3 zabbix4.2
zabbix通过钉钉机器人进行报警通知,能监视各种网络参数,保证服务器系统的安全运营;灵活的通知机制使用效果还是挺不错的,群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:可将zabbix运维报警提醒通过自定义机器人聚合到钉钉群。
下面介绍下zabbix应该怎么去配置钉钉告警~
一、添加钉钉群机器人,获取webhook地址
钉钉提供了一个 webhook 地址,获取到Webhook地址后,用户可以使用任何方式向这个地址发起 HTTP POST 请求,即可实现给该群组发送消息。
群助手--添加机器人--自定义(通过webhook接入自定义服务)
二、添加zabbix钉钉推送脚本
1、python安装requests模块
--安装setuptoolwget https://files.pythonhosted.org/packages/e0/02/2b14188e06ddf61e5b462e216b15d893e8472fca28b1b0c5d9272ad7e87c/setuptools-38.5.2.zipunzip setuptools-38.5.2.zipcd setuptools-38.5.2python setup.py install--安装pipwget https://files.pythonhosted.org/packages/ce/ea/9b445176a65ae4ba22dce1d93e4b5fe182f953df71a145f557cffaffc1bf/pip-19.3.1.tar.gztar -xvf pip-19.3.1.tar.gzcd pip-19.3.1--安装requestspip install requests
2、查看zabbix_server脚本路径
vim /etc/zabbix/zabbix_server.conf==============================================AlertScriptsPath=/usr/lib/zabbix/alertscripts==============================================
3、配置钉钉推送脚本
cd /usr/lib/zabbix/alertscriptsvim dingding.py====================================================================================================#!/usr/bin/env python#coding:utf-8#zabbix钉钉报警import requests,json,sys,os,datetimewebhook="https://oapi.dxxxxx"user=sys.argv[1]text=sys.argv[3]data={ "msgtype": "text", "text": { "content": text }, "at": { "atMobiles": [ user ], "isAtAll": False }}headers = {'Content-Type': 'application/json'}x=requests.post(url=webhook,data=json.dumps(data),headers=headers)if os.path.exists("/var/log/dingding.log"): f=open("/var/log/dingding.log","a+")else: f=open("/var/log/dingding.log","w+")f.write("\n"+"--"*30)if x.json()["errcode"] == 0: f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+"\n"+str(text)) f.close()else: f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + "\n" + str(text)) f.close()====================================================================================================--授权chmod -R 755 /usr/lib/zabbix/alertscripts/dingding.pychown -R zabbix:zabbix /usr/lib/zabbix/alertscripts/dingding.pychown -R zabbix:zabbix /var/log/dingding.log
4、测试
./dingding.py test 18812341234 "测试告警信息,请忽略"
收到消息如下:
三、web界面添加报警媒介、动作、授权报警用户
1、创建报警媒介(管理--报警媒介类型--创建媒体类型)
三个参数分别是:{ALERT.SENDTO} 、 {ALERT.SUBJECT}、{ALERT.MESSAGE}
测试:
2、用户添加报警媒介(管理--用户--Admin--报警媒介)
收件人是钉钉上的手机号码.这里使用Admin管理员用户,在Admin用户的"报警媒介"里添加收件人信息
特别注意:这里只需要添加钉钉群里的任何一个成员的手机号码即可,即添加一个收件人,这样在机器人群里成员都能看到告警信息.
如果添加多个收件人,则机器人群里就会发送多个告警信息,一个收件人发一条信息.
3、添加动作(配置--动作--创建动作)
动作里的报警信息和恢复信息都发送给Admin用户.
3.1、告警动作
3.2、恢复动作
四、测试钉钉告警
1、停启某台服务器的zabbix客户端
systemctl status zabbix-agent.servicesystemctl stop zabbix-agent.servicesystemctl start zabbix-agent.service
2、钉钉群告警界面
这里每行空的有点多,太难看了,后面优化下~
发生故障提示:
故障解决提示:
3、zabbix告警日志
观察/var/log/dingding.log提示:
到这里关于zabbix配置钉钉告警的部分就介绍完了,有空的朋友可以玩一下~
后面会分享一下更多devops和DBA方面内容,感兴趣的朋友可以关注下!