基于zabbix4.2配置钉钉告警机制及流程测试

概述

环境:centos7.3 zabbix4.2

zabbix通过钉钉机器人进行报警通知,能监视各种网络参数,保证服务器系统的安全运营;灵活的通知机制使用效果还是挺不错的,群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:可将zabbix运维报警提醒通过自定义机器人聚合到钉钉群。

下面介绍下zabbix应该怎么去配置钉钉告警~


一、添加钉钉群机器人,获取webhook地址

钉钉提供了一个 webhook 地址,获取到Webhook地址后,用户可以使用任何方式向这个地址发起 HTTP POST 请求,即可实现给该群组发送消息。

群助手--添加机器人--自定义(通过webhook接入自定义服务)

基于zabbix4.2配置钉钉告警机制及流程测试


二、添加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 "测试告警信息,请忽略"

基于zabbix4.2配置钉钉告警机制及流程测试

收到消息如下:

基于zabbix4.2配置钉钉告警机制及流程测试


三、web界面添加报警媒介、动作、授权报警用户

1、创建报警媒介(管理--报警媒介类型--创建媒体类型)

三个参数分别是:{ALERT.SENDTO} 、 {ALERT.SUBJECT}、{ALERT.MESSAGE}

基于zabbix4.2配置钉钉告警机制及流程测试

测试:

基于zabbix4.2配置钉钉告警机制及流程测试

2、用户添加报警媒介(管理--用户--Admin--报警媒介)

收件人是钉钉上的手机号码.这里使用Admin管理员用户,在Admin用户的"报警媒介"里添加收件人信息
特别注意:这里只需要添加钉钉群里的任何一个成员的手机号码即可,即添加一个收件人,这样在机器人群里成员都能看到告警信息.
如果添加多个收件人,则机器人群里就会发送多个告警信息,一个收件人发一条信息.

基于zabbix4.2配置钉钉告警机制及流程测试

3、添加动作(配置--动作--创建动作)
动作里的报警信息和恢复信息都发送给Admin用户.

3.1、告警动作

基于zabbix4.2配置钉钉告警机制及流程测试

基于zabbix4.2配置钉钉告警机制及流程测试

3.2、恢复动作

基于zabbix4.2配置钉钉告警机制及流程测试

基于zabbix4.2配置钉钉告警机制及流程测试


四、测试钉钉告警

1、停启某台服务器的zabbix客户端

systemctl status zabbix-agent.servicesystemctl stop  zabbix-agent.servicesystemctl start  zabbix-agent.service

2、钉钉群告警界面

这里每行空的有点多,太难看了,后面优化下~

发生故障提示:

基于zabbix4.2配置钉钉告警机制及流程测试

故障解决提示:

基于zabbix4.2配置钉钉告警机制及流程测试

3、zabbix告警日志

观察/var/log/dingding.log提示:

基于zabbix4.2配置钉钉告警机制及流程测试


到这里关于zabbix配置钉钉告警的部分就介绍完了,有空的朋友可以玩一下~

后面会分享一下更多devops和DBA方面内容,感兴趣的朋友可以关注下!

基于zabbix4.2配置钉钉告警机制及流程测试

相关推荐