zabbix实现钉钉监控告警

Posted 雅冰石

tags:

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

需求:

将Zabbix告警信息发送到钉钉群组。

一 创建钉钉机器人

 

 

 

二 配置zabbix

2.1 部署钉钉脚本

mkdir /opt/zabbix/alertscripts

mkdir /opt/zabbix/log

#修改/opt/zabbix/etc/zabbix_server.conf,设置监控脚本路径

AlertScriptsPath=/opt/zabbix/alertscripts

#重启zabbix server

systemctl restart zabbix_server

#部署监控脚本

cd /opt/zabbix/alertscripts

vi dingding.py,添加如下内容:

#!/usr/bin/env python
#coding:utf-8
 
import requests,json,sys,os,datetime
webhook="之前复制的webhook地址"
 
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("/opt/zabbix/log/dingding.log"):
    f=open("/opt/zabbix/log/dingding.log","a+")
else:
    f=open("/opt/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()

#为脚本赋予权限

chmod 755 dingding.py

#手动测试是否能发消息到钉钉

① 要确保zabbix server服务器能联网

#确保能ping通。

ping oapi.dingtalk.com

② 获取下个人钉钉账号id,示例:

③ 测试

./dingding.py 钉钉号  自定义主题 "上面设置过的关键字"

示例:
./dingding.py uaj1zks  ceshi "告警"

/*

若报错ImportError: No module named requests,则yum install python-requests -y

*/

看下钉钉机器人是否收到了消息:

 

2.2 配置zabbix web

2.2.1 添加报警脚本到zabbix

管理——报警媒介类型——创建报警媒介类型:

 ALERT.SENDTO

ALERT.SUBJECT

ALERT.MESSAGE

2.2.2 配置用户

这里配置Admin用户:

 

 添加完后,记得点击‘更新’。

2.2.3 创建动作

 

 在‘操作’处点击‘添加’:

/*

告警:EVENT.NAME

告警主机:HOSTNAME1

告警时间:EVENT.DATE EVENT.TIME

告警等级:TRIGGER.SEVERITY

告警信息: TRIGGER.NAME

告警项目:TRIGGER.KEY1

问题详情:ITEM.NAME:ITEM.VALUE

当前状态:TRIGGER.STATUS:ITEM.VALUE1

事件ID:EVENT.ID

*/

在‘恢复操作’处点击‘添加’:

/*

告警主机:HOSTNAME1

告警时间:EVENT.DATE EVENT.TIME

告警等级:TRIGGER.SEVERITY

告警信息: TRIGGER.NAME

告警项目:TRIGGER.KEY1

问题详情:ITEM.NAME:ITEM.VALUE

当前状态:TRIGGER.STATUS:ITEM.VALUE1

事件ID:EVENT.ID

*/

最后记得点击前面‘动作’选项卡出的‘添加’添加这些动作。

2.3 验证告警功能

配置下zabbix对某个组件的监控(示例mysql),将该组件停止,验证下是否能收到告警。

告警信息如下:

 --本篇文章参考了Zabbix实现钉钉群告警_夏诗曼CharmaineXia的博客-CSDN博客_zabbix 钉钉告警

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

zabbix实现钉钉监控告警

zabbix实现钉钉监控告警

钉钉机器人告警快速实现

zabbix3.0实现钉钉告警

Zabbix 配置钉钉脚本告警

zabbix之自定义告警