Welcome!
致力于分享问题的解决办法

[Zabbix]通过钉钉webhook推送告警(Markdown)

传统的钉钉群机器人告警为text格式,最近研究了下使用markdown来传,感觉比text看起来更适读。

废话不多说,直接开淦。

复制群机器人webhook地址:

https://oapi.dingtalk.com/robot/sendaccess_token=xxxxxxxxxxxxxxxxece8053e86414ee67c015e63b315304eee79

Zabbix端需安装Python3环境,Zabbix调用的脚本如下:

#!/usr/bin/python3
import requests, json, sys, os, datetime

#webhook = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxx634ece8053e86414ee67c015e63b315304eee79"  # 阿里测试
webhook = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxx0f64da8aaac4bb95885e277f1c48aafb462d17a60"  # 正式群

#user = sys.argv[1] #用户
subject = sys.argv[1] #标题
text = sys.argv[2] #消息
data = {
    "msgtype": "markdown",
    "markdown": {
        "title": subject,
        "text":text
    },
    "at": {
        "atMobiles": [
            "138XXXX7526"
        ],
        "isAtAll": False
    }
}
headers = {'Content-Type': 'application/json'}
x = requests.post(url=webhook, data=json.dumps(data), headers=headers)

其中subject对应的是报警媒介中Message type的主题,在钉钉中显示为标题,不出现在正文,只在消息列表中出现,text对应的就是正文。

接下来我们配置Zabbix的告警配置

  • 创建新的告警媒介:媒介类型选择脚本,提前将上方的脚本放置于/usr/local/share/zabbix/alertscripts中并在脚本名称处填写你命名的文件名,这里要注意一下如果你在Windows 下编辑,必须将行尾序列改为LF,否则Python执行会报错。
  • 添加告警参数:我这里只用到了2个参数,一个是{ALERT.SUBJECT}告警标题,一个是{ALERT.MESSAGE}告警正文,按照填写即可。
  • 增加Message type:一般增加3个就足够了,发现问题、问题恢复、问题更新,详细的设置在下方说明。
  • 检查其他影响告警的设置:1,动作:记得开启动作,不然Zabbix告警测试可以,但是没办法推送。2,用户开启告警:在用户配置中,关联相应的Message type,做一下简单的配置。

重点:关于Zabbix推送钉钉机器人webhook在网上已经有很多教程,上方只是略过,下面才是重点。以下配置都是个人习惯,可根据实际情况调整。

在Message type中,比如我添加一个发现告警的信息,默认配置如下:

要实现以上的功能,先将主题改为自己想要显示的标题,如“Zabbix-发现故障”,这样,在手机提示及电脑钉钉上的消息列表中都会显示这个。

我再将原来的标题内容Problem: {EVENT.NAME}复制到消息中,使用###将其作为3级标题,正文使用>符号设为引用文本,需要注意的是,使用>之后的文本将会换行,如果引用的文本需要换行,在结尾处增加2个空格即可。

### Problem: {EVENT.NAME}
 > Problem started at {EVENT.TIME} on {EVENT.DATE}    
Problem name: {EVENT.NAME}    
Host: {HOST.NAME}    
Severity: {EVENT.SEVERITY}    
Operational data: {EVENT.OPDATA}    
Original problem ID: {EVENT.ID}    
{TRIGGER.URL}

赞(0)
未经允许不得转载:fuRyZ's Blog » [Zabbix]通过钉钉webhook推送告警(Markdown)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址