干货|Webhook配置钉钉/飞书机器人告警

马嘉炜 | Zabbix开源社区签约专家

SRE运维工程师,六年Zabbix监控系统使用经验。在Zabbix架构设计及性能优化领域有丰富的经验,擅长监控模板制作及Zabbix API的二次开发。

官方使用手册《Zabbix标准模板指南》译者

简介
自 Zabbix 4.4.4 版本开始,Zabbix 的报警媒介类型加入了Webhook的支持。

Webhook 类型可用于使用自定义 JavaScript 代码进行 HTTP 调用,可以很方便的和外部系统进行集成,例如钉钉机器人、飞书机器人、企业微信等。

也可以集成第三方的系统来实现更加高级的功能,例如当主机自动注册到 Zabbix 中时,通过 Webhook 类型调用 API,将资产信息同步到 CMDB 系统,或者报警发生时,调用自动化平台的 API 来实现故障自愈的能力。

Webhook VS 自定义脚本

在这里插入图片描述

配置钉钉机器人告警
一、创建报警媒介
打开 Web 界面,并导航到管理 -> 报警媒介类型,点击右上角创建媒介类型

在这里插入图片描述

  1. 配置报警媒介类型
    配置参考如下:

名称:DingTalk
类型:Webhook
参数:
| 名称 | 值 | 说明 |
| —- | —- | —- |
| HTTPProxy | | Http代理地址 |
| Message | {ALERT.MESSAGE} | 告警消息内容 |
| Subject | {ALERT.SUBJECT} | 告警消息主题 |
| To | {ALERT.SENDTO} | 告警消息接收者 |

脚本:见下文
超时:30s

其他配置及说明参考文档:Webhook

脚本内容:

try {    // 实例化参数var params = JSON.parse(value),req = new HttpRequest(),msg = {msgtype: 'text',text: {content: params.Subject + '\n' + params.Message}},resp;    // 判断是否需要配置HTTP代理if (params.HTTPProxy) {req.setProxy(params.HTTPProxy);}    // 添加header头变量req.addHeader('Content-Type: application/json');    // 发送HTTP Post请求,格式:req.post(url, data)resp = req.post(params.To,        JSON.stringify(msg));    // 判断HTTP请求返回的状态码,非200则抛出异常if (req.getStatus() != 200) {        throw 'Response code: ' + req.getStatus();}    // 返回响应结果resp = JSON.parse(resp);    return JSON.stringify(resp);
}catch (error) {    throw 'Failed with error: ' + error;
}

脚本解析:
var params = JSON.parse(value): 脚本外传入的参数存放在value变量内,数据为json格式。通过JSON.parse方法转换为JavaScript的对象。例如params.Subject对应的就是上面{ALERT.SUBJECT}的值
req = new HttpRequest(): 实例化一个HTTP对象。该对象封装了 cURL 句柄,允许发送简单的 HTTP请求。错误将作为异常抛出。

注意:在Zabbix5.4之前,该对象名为CurlHttpRequest。

msg: HTTP请求的数据,这里是将告警的主题和内容封装为一个钉钉机器人支持的数据格式。
resp: HTTP请求响应对象。
req.setProxy(params.HTTPProxy): 设置HTTP代理。
req.addHeader(‘Content-Type: application/json’): 添加HTTP请求的header头变量。
resp = req.post(params.To, JSON.stringify(msg)): 发送HTTP Post请求。JSON.stringify方法将JavaScript的对象转换为json格式。
req.getStatus(): HTTP请求的响应状态码。

其他Webhook脚本案例参考:Webhook 脚本范例
JavaScript内置的对象及方法参考:JavaScript对象

配置完成后如下图所示

在这里插入图片描述
在这里插入图片描述

  1. 配置消息模版
    选择Message template标签页,并添加Message type(消息类型),消息类型、主题、消息的内容根据实际需求配置即可,也可以直接使用默认的内容。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:主题和消息的内容支持macro宏变量,具体的宏变量可参考官方文档

选项页面可配置告警的并发及重试,可以根据实际情况来配置。

二、获取自定义机器人Webhook

  1. 选择需要添加机器人的群聊,然后依次单击群设置 > 智能群助手。
    在这里插入图片描述

  2. 在机器人管理页面选择自定义机器人,输入机器人名字并选择要发送消息的群,同时可以为机器人设置机器人头像。
    图片
    在这里插入图片描述

  3. 完成必要的安全设置,勾选我已阅读并同意《自定义机器人服务及免责条款》,然后单击完成。
    在这里插入图片描述

  4. 完成安全设置后,复制出机器人的Webhook地址,可用于向这个群发送消息,格式如下:
    https://oapi.dingtalk.com/robot/send?access_token=XXXXXX

三、测试告警发送
回到报警媒介类型页面,找到刚才创建的报警媒介,并点击右侧的测试

在这里插入图片描述

将刚才配置的消息模版的主题粘贴到Subject输入框中,内容粘贴到Message输入框中,并将机器人的Webhook地址粘贴到To的输入框中,点击测试。
在这里插入图片描述

确认钉钉群将收到告警消息

在这里插入图片描述

四、配置告警

  1. 创建动作
    Web界面导航到配置 -> 动作 -> Trigger actions,点击右上角的创建动作
    在这里插入图片描述

配置动作的名称
在这里插入图片描述

配置具体的操作细节

注意:需要配置指定的发送用户,及发送的媒介
在这里插入图片描述

2. 配置告警通知Webhook
Web界面导航到管理 -> 用户,找到刚才配置的发送用户,并选择报警媒介的标签页

类型选择刚才创建的报警媒介DingTalk,并将钉钉机器人的Webhook地址填入收件人的输入框,如图所示
在这里插入图片描述

注意:用户需要有具体主机的可读权限才可以收到主机的告警信息。

3. 确认能够接受告警
在这里插入图片描述

配置其他Webhook类型的告警
Webhook 类型除了能够配置钉钉机器人,同样也支持飞书、企业微信等。区别仅仅是在JavaScript脚本及飞书、企业微信的Webhook地址不一样。

一、配置飞书机器人告警

  1. 配置报警媒介类型
    配置参考如下:

名称:Feishu
类型:Webhook
参数:
| 名称 | 值 | 说明 |
| —- | —- | —- |
| HTTPProxy | | Http代理地址 |
| Message | {ALERT.MESSAGE} | 告警消息内容 |
| Subject | {ALERT.SUBJECT} | 告警消息主题 |
| To | {ALERT.SENDTO} | 告警消息接收者 |

脚本:见下文
超时:30s

其他配置及说明参考文档:Webhook

脚本内容:

t

ry {    // 实例化参数var params = JSON.parse(value),req = new HttpRequest(),msg = {msg_type: 'text',content: {text: params.Subject + '\n' + params.Message}},resp;    // 判断是否需要配置HTTP代理if (params.HTTPProxy) {req.setProxy(params.HTTPProxy);}    // 添加header头变量req.addHeader('Content-Type: application/json');    // 发送HTTP Post请求,格式:req.post(url, data)resp = req.post(params.To,        JSON.stringify(msg));    // 判断HTTP请求返回的状态码,非200则抛出异常if (req.getStatus() != 200) {        throw 'Response code: ' + req.getStatus();}    // 返回响应结果resp = JSON.parse(resp);    return JSON.stringify(resp);
}catch (error) {    throw 'Failed with error: ' + error;
}

细心的同学可以发现,脚本内容和钉钉机器人相比,只有msg变量的部分有些许更改。

2. 配置消息模版
选择Message template标签页,并添加Message type(消息类型),消息类型、主题、消息的内容根据实际需求配置即可,也可以直接使用默认的内容。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:主题和消息的内容支持macro宏变量,具体的宏变量可参考官方文档

选项页面可配置告警的并发及重试,可以根据实际情况来配置。

二、获取自定义机器人Webhook
配置飞书机器人参考:自定义机器人指南

配置完成后获取到的Webhook地址,格式如下:

https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxxxxxxxxxx

其余测试及配置告警的方法可参考上文钉钉机器人配置部分。

注意: 发送的媒介及用户的报警媒介收件人地址需要更改。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/69468.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

钉钉群聊机器人.go

来源于个人博客:https://agou-ops.cn 最近需要做一个钉钉群聊机器人,需求是:艾特该机器人并发送相应关键字,机器人会进行相应的自动回复。 通过钉钉开放平台钉钉机器人的企业自建机器人官方文档以及网络上其他语言(Ja…

python操作钉钉机器人推送消息

群里面设置 使用关键词,必须要携带这个关键词才能调用这个机器人 下一步,这个就是操作这个钉钉机器人的接口 allure测试报告 关键词一定要写在 content字段里面 import jsonimport requestsdef dd_robot():HEADERS {"Content-Type": …

Python - 接入钉钉机器人

背景 想将 Python 爬下来的内容通知到钉钉 钉钉群聊机器人概述 所谓群聊机器人,指可以在群内使用的机器人,目前主要为 webhook 机器人和企业自建机器人两大类,另外通过场景群模板的方式,也可以预先配置好机器人并通过启用模板的方…

钉钉机器人怎么使用?钉钉机器人如何设置自动发送消息

在企业中,需要使用许多CRM系统,例如交易系统、监控报警系统等应用支撑着公司的核心业务流程;有时候也需要行政人事定时发送一些企业人文关怀、疫情通知等信息。通过钉钉的自定义机器人,可以将这些系统事件或消息自动发送至聊天群。…

开通与使用钉钉群机器人、企业微信等消息推送 [附API代码]

目录 开通方式 参考代码 使用示范 其他的 企业微信 TG Plusplus Server Server酱 开通方式 免费,有群就能开,任何用户都可开 官方文档:自定义机器人接入 - 钉钉开放平台 注意事项:用电脑版钉钉来开通,手机上…

前端 sentry 接入钉钉机器人

sentry 接入钉钉机器人 打开钉钉,添加机器人 此时会得到Webhook地址,记录一下,以后会用到 sentry 端设置 看看这里有木有钉钉插件,有的话开启插件,并配置这里我说一下没有的情况下,我们何如设置 这里需要填写webhook url 这个的url 需要是一个公网的地址,不可以是本地…

让服务器实时跟你报告 —— 钉钉机器人 企业微信机器人

写在前面 一入炼丹深似海,希望天下没有空闲的GPU 每次训练开始跑起来总是要不断看什么时候结束,永远副屏都要开着终端实时查看GPU占用情况 原本想着能不能服务器有空闲时给我发邮件提醒呢,简单搜索了一番发现了更优雅的解决方案 最终效果…

爬虫-接入钉钉机器人

前言 又间隔了好久都没发博客了,心血来潮来写写博客,今天就写一下用pthon实现钉钉群机器人自动发消息的功能吧,也就是通过去爬取数据,通过钉钉内置的群机器人去做一个自动通知的这么一个操作 钉钉机器人相关文档 链接: 钉钉群机…

Ruminococcus gnavus

Capsular polysaccharide correlates with immune response to the human gut microbe Ruminococcus gnavus 有趣的是,R. gnavus在克罗恩病患者短暂开花(10),并与多种其他免疫疾病有关如狼疮(11)&#xff…

小小的纳豆居然有这么多好处,难怪岛国人为它疯狂

纳豆,起源于中国古代,自秦汉(公元前221年-公元220年)以来开始制作,由黄豆通过纳豆菌(枯草杆菌)发酵制成豆制品,具有黏性,气味较臭,味道微甜,不仅保…

[文献分享] 父母炎症性肠病与儿童自闭症(国家登记数据队列研究、连锁不平衡分数回归、多基因风险评分、孟德尔随机化)

文献来源:Sadik A, Dardani C, Pagoni P, et al. Parental inflammatory bowel disease and autism in children. Nat Med. 2022;28(7):1406-1411. doi:10.1038/s41591-022-01845-9 目录 1.基本信息 2. 主要内容概览: 3. 主要结果 3.1. Study 1: Pare…

如何解读肠道菌群检测报告中维生素指标

​在谷禾肠道菌群健康检测中,我们会看到结果报告中关于维生素的评估如下: 摄入水平建议保持在70-80分之间最佳,如果单项指标低于5表明摄入比例在人群中属于最低的5%,评估为缺乏,如上图中维生素B2;低于15评估…

生命早期肠道微生物群与儿童呼吸道疾病之间的关联

谷禾健康 儿童呼吸系统疾病,包括呼吸道感染、反复喘息和哮喘,是儿童及其以后年龄发病和死亡的重要原因。 而哮喘是其中比较典型的一种,哮喘是全球最常见的慢性疾病之一,是一种复杂的、异质性的免疫介导的紊乱集合,以气…

肠道核心菌属——普拉梭菌F. prausnitzii,预防炎症的下一代益生菌

谷禾健康 Faecalibacterium prausnitzii(F. prausnitzii),普氏栖粪杆菌,又名:普拉梭菌,是人类肠道菌群中最重要的细菌之一,占健康人粪便样本中检测到的细菌总数的 5-15%,是丁酸的重要…

你想要的宏基因组-微生物组知识全在这(2023.3)

欢迎点击上方蓝色”宏基因组”关注我们! 宏基因组/微生物组是当今世界科研最热门的研究领域之一,为加强宏基因组学技术和成果交流传播,推动全球华人微生物组领域发展,中科院青年科研人员创立“宏基因组”公众号,联合海…

人类微生物组和缺失遗传力--读论文

读读论文,用谷歌学术翻译一下,重要的部分做一下笔记。正文部分是翻译,加黑部分是个人笔记。 本次学习的论文:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5468393/ 1. 摘要 “缺失遗传力”问题表明,全基因组关联…

IgA | 对抗病原菌,帮助共生菌定植的“重要开关”

导 语:关于抗体,免疫和微生物 肠道微生物群的组成因个体而异,肠道微生物群中的特定细菌类群可能是某些肠内外疾病的独特有效驱动因素。对人类而言,精准且优先识别影响疾病易感性和严重性的细菌仍然是一项重大挑战。 很多时候我们想…

随着年龄增长,我应该怎样对抗肌肉流失?

肌肉减少症,也称为肌肉损失,是一种常见疾病,影响 10% 的 50 岁以上成年人。 虽然它会降低预期寿命和生活质量,但你可以采取一些措施来预防甚至逆转这种情况。 虽然肌肉减少症的一些原因是衰老的自然结果,但其他原因是可…

为什么“隐性知识”比“刻意练习”更重要?

我与巴菲特之间的差距,找到了。 ​​编者按:“隐性知识”是不能仅通过语言获取的知识,这些知识不能光靠听和看学会,也不能靠所谓的“刻意练习”学会。就像跟着巴菲特学习投资,哪怕这位投资大师把自己的决策理念和方式…

梭杆菌(Fusobacterium)——共生菌,机会菌,癌杆菌

谷禾健康 梭杆菌属(Fusobacterium),是梭菌门最主要的菌属,厌氧革兰氏阴性细菌,与拟杆菌属、普氏菌属、卟啉单胞菌属一样都是医学上重要的厌氧革兰氏阴性杆菌。 梭杆菌属是人类和动物的身体共生菌之一,主要定…