zabbix--钉钉告警

Posted yanjieli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix--钉钉告警相关的知识,希望对你有一定的参考价值。

zabbix 钉钉告警机制

群机器人是钉钉群的高级扩展功能,群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性. 比如我们可将Zabbix运维报警提醒通过自定义机器人聚合到钉钉群中,以实现钉钉告警。

钉钉机器人创建

登录钉钉客户端,创建一个群,把需要收到报警信息的人员都拉到这个群内.然后点击群右上角的"群机器人"->"添加机器人"->"自定义",记录该机器人的webhook值!

技术图片

zabbix-server 配置

[[email protected] ~]# cat /usr/local/zabbix/etc/zabbix_server.conf |grep ^AlertScriptsPath
AlertScriptsPath=/usr/local/zabbix/lib/zabbix/alertscripts

进入到/usr/local/zabbix/alertscripts下编写dingding.py脚本(脚本中包含钉钉机器人的webhook值):
[[email protected] ~]# cd /usr/local/zabbix/lib/zabbix/alertscripts

[[email protected] alertscripts]# cat dingding.py 
#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=8ea7abd3db4b49a9e898e911920d4899c526ae78f5794c977cfca8b6c0b77fdf"
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("/usr/local/zabbix/log/dingding.log"):
    f=open("/usr/local/zabbix/log/dingding.log","a+")
else:
    f=open("/usr/local/zabbix/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()

赋予脚本执行权限
[[email protected] alertscripts]# chmod +x dingding.py
创建上面脚本中的日志路径
[[email protected] alertscripts]# mkdir /usr/local/zabbix/log/
[[email protected] alertscripts]# touch /usr/local/zabbix/log/dingding.log 
[[email protected] alertscripts]# chown zabbix.zabbix /usr/local/zabbix/log/dingding.log

手动测试脚本是否可以正常发送消息
这个条文档记录的测试信息,忽略
[[email protected] alertscripts]# ./dingding.py test gaojing "测试下"

钉钉收到的测试消息如下: 

技术图片

zabbix web界面配置

1)创建报警媒介   脚本参数:ALERT.SENDTO      ALERT.SUBJECT      ALERT.MESSAGE

技术图片

2)给用户添加报警媒介

说明:收件人是钉钉上的手机号码,我这里使用的是Admin管理员用户。

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

技术图片

测试结果:

技术图片

技术图片

查看日志

技术图片

 

至此、zabbix 钉钉告警就完成了。

消息内容参考:https://www.cnblogs.com/yanjieli/p/10840423.html

邮件告警:https://www.cnblogs.com/yanjieli/p/10814722.html

微信告警:https://www.cnblogs.com/yanjieli/p/10840132.html

 

以上是关于zabbix--钉钉告警的主要内容,如果未能解决你的问题,请参考以下文章

zabbix实现钉钉监控告警

zabbix--钉钉告警

zabbix--钉钉告警

zabbix使用钉钉告警

Linux----------zabbix监控-微信钉钉告警

Zabbix 配置钉钉脚本告警