概述
环境:centos7.3 zabbix4.2
zabbix通过钉钉机器人进行报警通知,能监视各种网络参数,保证服务器系统的安全运营;灵活的通知机制使用效果还是挺不错的,群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:可将zabbix运维报警提醒通过自定义机器人聚合到钉钉群。
下面介绍下zabbix应该怎么去配置钉钉告警~
一、添加钉钉群机器人,获取webhook地址
钉钉提供了一个 webhook 地址,获取到Webhook地址后,用户可以使用任何方式向这个地址发起 HTTP POST 请求,即可实现给该群组发送消息。
群助手--添加机器人--自定义(通过webhook接入自定义服务)
![9aad50864be1315574da3eda3ac83293.png](https://img-blog.csdnimg.cn/img_convert/9aad50864be1315574da3eda3ac83293.png)
二、添加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(""+"--"*30)if x.json()["errcode"] == 0: f.write(""+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+""+str(text)) f.close()else: f.write(""+str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + "" + 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 "测试告警信息,请忽略"
![3eb4376b4b0452321dafd92777d7bc79.png](https://img-blog.csdnimg.cn/img_convert/3eb4376b4b0452321dafd92777d7bc79.png)
收到消息如下:
![aaa13cafa9dd2ccb297801320edaa489.png](https://img-blog.csdnimg.cn/img_convert/aaa13cafa9dd2ccb297801320edaa489.png)
三、web界面添加报警媒介、动作、授权报警用户
1、创建报警媒介(管理--报警媒介类型--创建媒体类型)
三个参数分别是:{ALERT.SENDTO} 、 {ALERT.SUBJECT}、{ALERT.MESSAGE}
![d9bfc77a7c851be55207f7adfaef3d55.png](https://img-blog.csdnimg.cn/img_convert/d9bfc77a7c851be55207f7adfaef3d55.png)
测试:
![d2e8e2b2ae3939cbc0c1c693d6d216c2.png](https://img-blog.csdnimg.cn/img_convert/d2e8e2b2ae3939cbc0c1c693d6d216c2.png)
2、用户添加报警媒介(管理--用户--Admin--报警媒介)
收件人是钉钉上的手机号码.这里使用Admin管理员用户,在Admin用户的"报警媒介"里添加收件人信息
特别注意:这里只需要添加钉钉群里的任何一个成员的手机号码即可,即添加一个收件人,这样在机器人群里成员都能看到告警信息.
如果添加多个收件人,则机器人群里就会发送多个告警信息,一个收件人发一条信息.
![d433f881dd92831cc28ee296216885ef.png](https://img-blog.csdnimg.cn/img_convert/d433f881dd92831cc28ee296216885ef.png)
3、添加动作(配置--动作--创建动作)
动作里的报警信息和恢复信息都发送给Admin用户.
3.1、告警动作
![f7491fcee197121218330e03e74fb5e4.png](https://img-blog.csdnimg.cn/img_convert/f7491fcee197121218330e03e74fb5e4.png)
![3758274a2e2b8d4af9bf4f40ad3bf927.png](https://img-blog.csdnimg.cn/img_convert/3758274a2e2b8d4af9bf4f40ad3bf927.png)
3.2、恢复动作
![a5aa809d377ea1128a5b1dbbf877ee1c.png](https://img-blog.csdnimg.cn/img_convert/a5aa809d377ea1128a5b1dbbf877ee1c.png)
![6f5b2185bba2b3f7fafc932bfb0d6d7b.png](https://img-blog.csdnimg.cn/img_convert/6f5b2185bba2b3f7fafc932bfb0d6d7b.png)
四、测试钉钉告警
1、停启某台服务器的zabbix客户端
systemctl status zabbix-agent.servicesystemctl stop zabbix-agent.servicesystemctl start zabbix-agent.service
2、钉钉群告警界面
这里每行空的有点多,太难看了,后面优化下~
发生故障提示:
![e0b2cf97a12247fd3a684a4e9b0dde02.png](https://img-blog.csdnimg.cn/img_convert/e0b2cf97a12247fd3a684a4e9b0dde02.png)
故障解决提示:
![8748b55b8bbcf0bdc0d9471e5269ea35.png](https://img-blog.csdnimg.cn/img_convert/8748b55b8bbcf0bdc0d9471e5269ea35.png)
3、zabbix告警日志
观察/var/log/dingding.log提示:
![66ca14d6764d1b2b73d881e74b8f5032.png](https://img-blog.csdnimg.cn/img_convert/66ca14d6764d1b2b73d881e74b8f5032.png)
到这里关于zabbix配置钉钉告警的部分就介绍完了,有空的朋友可以玩一下~
后面会分享一下更多devops和DBA方面内容,感兴趣的朋友可以关注下!
![907eac14af27f1f8f881b41e9cb4a1a5.png](https://img-blog.csdnimg.cn/img_convert/907eac14af27f1f8f881b41e9cb4a1a5.png)