Zabbix 5.0实现钉钉报警

原创作者:运维工程师 谢晋

Zabbix 5.0 钉钉报警

zabbix 钉钉告警机制

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

钉钉配置

  1. 注册钉钉
    到钉钉官网下载pc版钉钉,安装、注册、登陆:
    钉钉下载地址:https://www.dingtalk.com/
  2. 创建群聊和钉钉机器人
    在这里插入图片描述

创建群聊,把需要收到报警的人员都拉到这个群
在这里插入图片描述

【创建项目群】
在这里插入图片描述

【添加人员】
在这里插入图片描述
【添加智能群助手】
在这里插入图片描述

【添加机器人】
在这里插入图片描述

【选择自定义】

在这里插入图片描述

【告警机器人设置】
在这里插入图片描述

【复制webhook,这个链接很重要,后面钉钉脚本需要用到此链接】

配置zabbix server

  1. 报警脚本配置
取消注释AlertScriptsPath
# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf | grep ^A
AlertScriptsPath=/usr/lib/zabbix/alertscripts

创建脚本
入该定义的脚本存放路径下创建用来推送告警消息的脚本,使用自己的webhook
# cd /usr/lib/zabbix/alertscripts
# vim 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=3a7191b12c8e8f5580b9bedc9e48938421845e7629c8ff0fe2833f1ede9e8b30" (修改为自己的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("/var/log/zabbix/dingding.log"):
    f=open("/var/log/zabbix/dingding.log","a+")
else:
    f=open("/var/log/zabbix/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 +x dingding.py

创建日志文件:

# touch /var/log/zabbix/dingding.log
# chown zabbix.zabbix /var/log/zabbix/dingding.log

手动测试脚本是否可以正常发送消息
# ./dingding.py xiejin test “这是条告警测试信息,请忽略”
在这里插入图片描述
【发送成功】

WEB端配置

  1. 创建报警媒介
    在这里插入图片描述
    【管理——报警媒介类型——创建媒体类型】

添加媒介名称,类型脚本,脚本名称为刚创建的dingding.py,点击更新
在这里插入图片描述

  1. 添加动作
    配置——动作——创建动作
    在这里插入图片描述
    创建动作名称,并添加一个条件,触发报警条件为大于等于警告
    在这里插入图片描述
    添加操作和恢复操作
    在这里插入图片描述
    告警操作
    在这里插入图片描述
    在这里插入图片描述
主题:
Problem: {EVENT.NAME}

消息:
-=【告警啦】=-
告警组:{TRIGGER.HOSTGROUP.NAME}
告警主机:{HOSTNAME1} 
告警主机别名:{HOST.NAME}
主机IP:{HOST.IP}
主机描述:{HOST.DESCRIPTION}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
警报类别:{TRIGGER.NAME}
当前状态:{ITEM.LASTVALUE}
告警平台:http://192.168.10.172/zabbix

告警恢复
在这里插入图片描述

主题:故障恢复:{EVENT.NAME}

消息:

恢复主机:{HOSTNAME1}

恢复时间:{EVENT.DATE} {EVENT.TIME}

主机IP:{HOST.IP}

告警项目:{TRIGGER.KEY1}

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

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

事件ID:{EVENT.ID}

点击添加
在这里插入图片描述
可以看到新加的动作
在这里插入图片描述

  1. 配置报警媒介
    管理——用户——报警媒介——添加
    在这里插入图片描述
    定义需发送消息的告警级别
    在这里插入图片描述
    配置完成即可。

  2. 测试报警效果
    将一台监控主机关闭
    在这里插入图片描述
    重新开机
    在这里插入图片描述

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要配置Zabbix 5.0使用WebHook进行报警,您可以按照以下步骤进行操作: 1. 在Zabbix Server的WEB界面上配置报警媒介类型为脚本。您可以使用JavaScript编写脚本来发送报警信息。 2. 注册企业微信机器人。您需要在企业微信中创建一个机器人,以便用于发送报警信息。 3. 创建一个日志文件,并设置文件权限。您可以使用以下命令创建并设置权限: ``` # touch /var/log/zabbix/dingding.log # chown zabbix.zabbix /var/log/zabbix/dingding.log ``` 4. 添加Zabbix媒介类型为脚本,并指定刚刚创建的dingding.py脚本。在Zabbix的WEB界面上,添加一个新的媒介类型,将其类型设置为脚本,并指定脚本名称为dingding.py。 5. 创建一个动作。在Zabbix的WEB界面上,创建一个新的动作,设置动作名称,并添加一个条件,以便触发报警条件为大于等于警告级别。 6. 添加报警操作和恢复操作。在动作配置中,添加报警操作和恢复操作。在报警操作中,设置报警信息的内容,包括问题名称、告警组、主机信息、告警时间、告警等级、警报类别等。您可以根据需要自定义报警信息的格式。 7. 保存并测试配置。完成以上配置后,保存并测试您的配置是否生效。可以通过模拟一个告警事件,确认是否能正确地通过WebHook发送报警信息。 通过以上步骤,您可以成功地配置Zabbix 5.0使用WebHook进行报警。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值