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 钉钉告警

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值