zabbix--钉钉告警

zabbix--钉钉告警

 

zabbix 钉钉告警机制

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

钉钉机器人创建

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

zabbix-server 配置

复制代码
[root@SrtAly120 ~]# cat /usr/local/zabbix/etc/zabbix_server.conf |grep ^AlertScriptsPath
AlertScriptsPath=/usr/local/zabbix/lib/zabbix/alertscripts

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

[root@SrtAly120 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()

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

手动测试脚本是否可以正常发送消息
这个条文档记录的测试信息,忽略
[root@SrtAly120 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

转载于:https://www.cnblogs.com/gucb/p/11493053.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zabbix 是一款开源的监控工具,它可以帮助您监控各种服务器、网络设备以及应用程序的状态,并能够自动发现并跟踪网络性能及故障。钉钉告警是指将 Zabbix 的报警信息通过钉钉机器人发送出去的一种通知机制。 ### 设置钉钉告警Zabbix 中设置钉钉告警通常需要以下步骤: 1. **创建钉钉机器人**:首先,您需要在钉钉群组中创建一个机器人的账号,然后获取该机器人提供的 Webhook 地址。这是接收告警信息的关键链接。 2. **配置告警策略**:进入 Zabbix 监控界面,在“告警”模块下选择相应的告警策略,比如按照服务项或触发器配置。在告警策略中添加一条规则,指定当满足某种条件时,向钉钉机器人发送消息。 3. **集成Webhook到告警规则**:在告警策略配置界面中,找到用于通知的规则部分,点击“添加新通知”或类似选项。在新增的通知渠道中,选择“自定义”,然后输入从钉钉机器人获取的 Webhook 地址作为通知的目标。 4. **测试告警功能**:为了确保告警配置无误,您可以先进行一次测试,模拟出一种情况下的告警事件,查看是否能成功通过钉钉机器人接收到通知。 ### 使用场景 - **实时监控**:对于重要的系统或应用,可以设定即时告警,一旦状态异常,立即通过钉钉提醒相关人员。 - **日常维护**:定期的健康检查报告也可以通过钉钉共享给团队成员,以便于团队了解系统的运行状况。 - **故障处理**:针对特定的服务或应用出现问题时,快速响应,通过钉钉及时传达关键信息至相关人员,提高故障解决效率。 ### 关联问题: 1. **如何更有效地利用钉钉告警来提升团队协作效率?** - 利用钉钉群组分类管理不同类型的告警通知,便于快速定位问题责任人。 - 定义清晰的告警等级,如紧急、重要、普通等,以便优先处理高优先级告警。 2. **在Zabbix中,如何配置多台钉钉机器人为不同环境提供告警服务?** - 为每个环境创建单独的钉钉机器人账号,对应不同的Webhook地址。 - 分别在Zabbix中为每台机器或环境配置对应的钉钉告警规则,确保告警信息精确到达正确的接收者。 3. **遇到Zabbix钉钉告警失败的情况,应如何排查问题?** - 检查Zabbix发送的数据格式是否符合钉钉Webhook的要求。 - 确认钉钉机器人的活跃状态以及Webhook地址的准确性。 - 测试直接将告警信息发送到Webhook地址是否能正常接收,排除中间传输过程的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值