6.5 告警与通知
当实时分析生成事件时,TDengine IDMP 可自动向已配置的联系途径发送通知——支持邮件、飞书、企业微信、钉钉、Slack、Microsoft Teams 等多种渠道。本节介绍如何设置联系途径、配置元素上的通知规则,以及了解通知系统的行为方式。
6.5.1 联系途径
联系途径是通知系统的基础投递渠道,在系统范围内统一配置和管理。联系途径定义了通知的具体投递目标,各元素的通知规则通过引用联系途径来指定通知的发送渠道。
6.5.1.1 管理联系途径
联系途径在管理后台 → 系统配置 → 通知联系途径中集中管理。
联系途径列表展示以下信息:
| 列 | 说明 |
|---|---|
| 名称 | 该联系途径的描述性名称(例如 Jeff_default_contact_point) |
| 类型 | 投递渠道类型(邮件、飞书、企业微信、钉钉、Slack、Microsoft Teams) |
| 地址 | 收件人地址或端点 URL |
| 描述 | 可选描述 |
点击 + 并填写名称、类型、地址和描述字段,即可创建新联系途径。系统支持以下渠道类型:
| 渠道类型 | 说明 |
|---|---|
| 邮件 | 通过电子邮件发送通知,需选择系统内的收件人用户 |
| 飞书 | 通过飞书自定义机器人 Webhook 发送通知 |
| 企业微信 | 通过企业微信群机器人 Webhook 发送通知 |
| 钉钉 | 通过钉钉自定义机器人 Webhook 发送通知 |
| Slack | 通过 Slack Incoming Webhook 发送通知 |
| Microsoft Teams | 通过 Microsoft Teams Workflow Webhook 发送通知 |
| Webhook | 通过通用 Webhook 向任意 HTTP(S) 端点发送 JSON 通知 |
联系途径在系统范围内共享。同一联系途径可被多个不同元素的通知规则引用。为每个收件人或渠道创建一个联系途径,然后在需要的地方复用。
6.5.1.2 Webhook 联系途径
Webhook 联系途径是一种通用的投递渠道,可将通知以 JSON 格式发送到任意 HTTP(S) 端点。与飞书、钉钉、Slack 等平台专用渠道不同,Webhook 渠道不对消息做平台化格式化,适合接入自有告警系统、IT 运维平台或第三方服务。
6.5.1.2.1 配置方式
- 在通知联系途径列表中点击 +,类型选择 Webhook。
- 在 地址 字段填写接收通知的 HTTP(S) URL。
- 默认仅允许 HTTPS URL。如需向 HTTP 端点发送,开启 允许非 HTTPS URL 开关。
为防止服务端请求伪造(SSRF),Webhook URL 会做安全校验:拒绝回环地址(127.x.x.x、::1、localhost)、链路本地地址(169.254.x.x)以及云元数据主机名;私有网络地址(10.x、172.16.x、192.168.x)允许,以便对接企业内网接收端。
6.5.1.2.2 消息体格式
Webhook 联系途径的消息正文以 JSON 格式编辑,正文支持变量替换,占位符会被替换为对应的事件字段值。在通知规则的消息编辑器中,选择 Webhook 联系途径后,消息标签旁会提供 查看 JSON 示例 入口,可快速获取模板。
一个典型的 JSON 消息体如下:
{
"elementName": "{elementName}",
"elementPath": "{elementPath}",
"eventName": "{eventName}",
"analysisName": "{analysisName}",
"startTime": "{startTime}",
"endTime": "{endTime}",
"ackRequired": "{ackRequired}",
"severityLevel": "{severityLevel}",
"unAckedEventCount": "{unAckedEventCount}",
"eventUrl": "{eventUrl}",
"reasonCodeDisplayName": "{reasonCodeDisplayName}",
"eventRealtimeValues": "{eventRealtimeValues}",
"eventCustomAttributes": "{eventCustomAttributes}"
}
支持的变量如下:
| 占位符 | 说明 |
|---|---|
{elementName} | 元素名称 |
{elementPath} | 元素路径 |
{eventName} | 事件名称 |
{analysisName} | 关联的分析 |
{startTime} | 开始时间 |
{endTime} | 结束时间 |
{ackRequired} | 是否需要确认 |
{severityLevel} | 严重级别 |
{unAckedEventCount} | 未确认事件数量 |
{eventUrl} | 事件地址 |
{reasonCodeDisplayName} | 原因代码 |
{eventRealtimeValues} | 事件实时值 |
{eventCustomAttributes} | 事件自定义属性 |
6.5.1.2.3 接口内容
事件触发通知时,系统通过 HTTP POST 向 Webhook 地址发送 JSON 请求,请求体结构如下:
{
"title": "通知标题",
"data": {
"content": "消息正文的原始字符串(变量替换后)",
"contentJson": {
"elementName": "具体元素名",
"eventName": "具体事件名"
}
}
}
| 字段 | 说明 |
|---|---|
title | 通知标题(变量替换后)。 |
data.content | 消息正文的原始字符串,始终存在。 |
data.contentJson | 仅当消息正文是合法的 JSON 对象或数组时附带,为解析后的原生 JSON 值;否则省略该字段。 |
因此,将消息正文配置为合法 JSON(如上面的示例),接收端既可读取 data.content 字符串,也可直接读取 data.contentJson 结构化对象,无需自行解析。
6.5.2 通知规则
通知规则定义了元素级别的事件通知策略。一个元素可以配置多条相互独立的通知规则,每条规则各自决定匹配条件、联系点、消息内容、非重复抑制、重发和升级设置。同一事件可以同时命中多条规则——此时每条规则独立投递、独立维护抑制与重发历史,但共享事件的确认状态:事件被确认一次,其全部通知实例的后续提醒一并停止。
6.5.2.1 管理通知规则
通知规则的配置入口位于元素的事件标签页工具栏中。导航到资产树中的目标元素,打开其事件标签页,然后点击工具栏中的通知规则图标(显示带铃铛文档的图标)。系统在页面右侧打开通知规则面板,显示当前元素的全部有效规则及规则数量。元素上的通知规则仅作用于当前元素;要在类型级别统一管理,请使用通知规则模板。
规则列表展示以下信息:
| 列 | 说明 |
|---|---|
| 名称 | 规则名称,在同一元素的有效规则集合内唯一 |
| 条件 | 匹配条件的摘要——来源模式(分析 / 事件搜索)、主要筛选字段及是否配置属性条件 |
| 状态 | 已启用 / 已停用 |
| 来源 | 规则来源:模板(自元素模板继承)、模板(已修改)(继承后本地覆盖了部分字段)、元素(在元素上独立创建) |
针对每条规则可执行的操作:
| 操作 | 说明 |
|---|---|
| 新建通知规则 | 在元素上创建独立规则,来源为"元素" |
| 查看 / 编辑 | 打开规则编辑器查看或修改设置 |
| 启用 / 停用 | 单独切换该规则的启停,不影响其他规则 |
| 删除 | 仅"元素"来源的独立规则可删除;模板来源的规则只能停用 |
| 恢复为模板值 | 仅"模板(已修改)"的规则可见——丢弃本地覆盖,内容字段回到模板当前定义;启停状态保持不变 |
6.5.2.2 规则参数
在规则编辑器中可配置以下参数:
| 参数 | 说明 |
|---|---|
| 名称(必填) | 规则名称,在同一元素的有效规则集合内唯一 |
| 联系途径(必填) | 事件通知的主要投递渠道,从预配置的联系途径中选择。默认不预选任何联系途径 |
| 升级联系途径 | 可选。事件长时间未被确认时,重发通知改发此联系途径,用于在一线操作人员未响应时通知主管或值班人员 |
| 非重复间隔 | 同一元素同一规则跨事件的抑制窗口,默认 30 分钟。设为不限制可关闭跨事件抑制;否则取值 10 秒 ~ 30 天 |
| 重发间隔(必填) | 对活动的未确认事件重新发送通知的频率,默认 1 小时,取值 10 秒 ~ 30 天。例如设置为 1 小时,则每小时提醒操作人员,直到事件被确认或关闭 |
| 升级间隔 | 事件未被确认多长时间后重发目标切换为升级联系途径,默认 10 小时。仅在配置了升级联系途径时有效,取值 10 秒 ~ 30 天 |
| 最大重发次数 | 首次发送之后业务重发的最大次数,默认 5,取值 0 ~ 100 的整数。0 表示首发后不再重发,可防止长时间运行的事件无限重发 |
| 标题 | 通知标题,支持变量替换,留空时使用默认标题(如 通知:{elementName} - {eventName}) |
| 消息 | 通知消息正文,支持变量替换,可用占位符见消息体格式。默认正文共 12 项,第一项为元素名称与路径,第二项为事件地址 |
| 条件 | 规则的匹配条件,决定哪些事件触发该规则的通知,见下节 |
6.5.2.3 匹配条件
每条规则包含一个条件,分为两种互斥模式:
分析(默认)——按事件的来源实时分析匹配:
| 字段 | 说明 |
|---|---|
| 分析 | 单选触发通知的实时分析,可选全部 |
| 子事件 | 子事件通知策略,比较范围固定为同一元素、同一规则、同一分析和同一根事件过程内的历史:严重级别高于此前所有已触发条件时(默认)、严重级别高于前一次触发条件时、任一触发条件成立时 |
| 最低严重级别 | 可选全部或某一严重级别;事件级别必须大于等于该阈值才可能命中 |
| 属性条件 | 见下文 |
事件搜索——按事件自身字段匹配,字段交互与事件搜索一致:
| 字段 | 说明 |
|---|---|
| 事件模板 | 单选,可选全部 |
| 分类 | 单选,可选全部 |
| 名称包含 | 按事件名称包含匹配,留空不筛选 |
| 最低严重级别 | 可选全部或某一严重级别;事件级别必须大于等于该阈值才可能命中 |
| 属性条件 | 见下文 |
属性条件对事件首次评估时的属性快照做进一步过滤:每行由属性、比较运算符(等于、不等于、大于、大于等于、小于、小于等于、包含)和值组成,多行之间用且 AND / 或 OR组合。未配置属性条件时所有事件均符合;属性缺值或类型不兼容时该行判为不满足。
6.5.2.4 输入校验
保存规则时执行以下校验:
| 校验 | 行为 |
|---|---|
| 启用的规则必须配置主联系途径 | 未配置时保存失败。可先将规则停用再保存草稿;系统不会自动选择联系途径 |
| 间隔范围 | 非重复、重发、升级间隔取值须在 10 秒 ~ 30 天之间;非重复间隔可设为不限制 |
| 重发与非重复的关系 | 需要重发(最大重发次数大于 0)时,重发间隔必须大于非重复间隔;不重发或非重复为不限制时不比较 |
| 升级配置 | 未配置升级联系途径时不校验升级间隔,也不产生升级发送 |
| 名称唯一 | 同一元素的有效规则名称不得重复 |
6.5.2.5 预览与试发送
- 预览:在编辑器中选择一个示例事件并发起预览,由后端对条件求值并渲染标题、正文。预览不发送任何消息,也不推进非重复时钟和重发计数。结果按条件字段逐项列出规则值、示例事件值和结果,未命中时可直接看出原因。
- 发送消息:显式的试发送操作,以所选示例事件按正式告警相同的方式渲染标题与正文,真实发送一次测试通知,便于验证联系途径与消息格式。试发送需先选择主联系途径,缺失或已删除时保存/发送报错;试发送不评估匹配条件——不受最低严重级别、子事件策略、属性条件和非重复窗口影响,不创建通知投递记录,也不计入重发次数。
6.5.3 通知行为
通知系统遵循从规则评估、初始发送到重发、升级直至停止的完整生命周期。了解通知生命周期有助于配置合适的非重复、重发和升级设置。
6.5.3.1 事件评估
事件生成并完成首次属性准备后,系统以事件的实际元素为准解析其全部有效规则并逐一评估——包括元素自建规则和从模板继承的规则。评估使用事件发生时的属性快照:
- 实时分析生成的新事件自动进入评估;
- 手工新建事件需要在创建对话框中勾选评估通知规则(默认不勾选);
- CSV 导入、回放产生的事件默认不纳入;
- 修改规则、修改已有事件的时间/属性/原因代码,或事后补齐原本缺失的属性值,都不会触发重新评估。
6.5.3.2 通知流程
通知流程描述了事件生成后系统自动执行的通知投递逻辑:
-
规则评估 — 同一事件可同时命中多条规则;每条命中的规则各形成一个独立的通知实例,即使目标联系途径相同也不合并。全部规则未命中时,不产生任何通知。
-
首发 — 每个实例先通过子事件策略(分析模式,见匹配条件)和非重复窗口检查,通过后向主联系途径发送首次通知。被抑制的告警会记录抑制原因(可在通知记录中查看),不会排队或事后补发。
-
重发机制 — 如果事件需要确认(在事件模板中配置),且事件在重发间隔内未被确认,系统按重发间隔继续发送通知,直到:
- 操作人员确认事件,或
- 事件关闭(设置了结束时间),或
- 达到最大重发次数。
渠道发送失败引发的技术重试不计入业务重发次数。
-
升级 — 若配置了升级联系途径,且事件在升级间隔后仍未被确认,后续业务重发改为发往升级联系途径——升级切换重发目标,而不是在主联系途径之外额外多发一路。未配置升级联系途径时不产生任何升级发送。
-
通知停止 — 事件被确认或关闭后,该事件的全部通知实例不再发送任何通知。
-
恢复通知 — 事件关闭时,实际成功收到过告警的联系途径(去重后)会收到一条恢复通知。恢复通知不受非重复窗口约束,也不推进其计时;关闭前未成功发出首发的实例不产生恢复通知。
6.5.3.3 非重复窗口
非重复间隔是跨事件的抑制窗口,作用于同一元素的同一条规则:上一次成功发出首发通知后,窗口内的新事件即使命中条件也会被抑制,以避免事件频发时通知过载。两个例外:
- 上一次事件已被确认;
- 上一次事件无需确认(事件模板未开启允许确认)。
窗口内被抑制的告警在通知记录中留有原因,不会因随后的事件被确认而追发。将非重复间隔设为不限制可关闭跨事件抑制。
6.5.3.4 活动事件
活动事件是指已发生但尚未关闭的事件。活动事件将按通知规则继续触发重新通知。事件列表会标记活动事件以便于识别。事件关闭后,系统停止该事件的所有自动通知。
6.5.3.5 应用内通知弹窗
事件生成时,IDMP 在屏幕右下角显示应用内新事件通知弹窗,供所有已登录用户实时掌握新发生的事件。无论当前登录用户正在查看哪个页面,弹窗均会出现。弹窗显示事件名称、开始时间、结束时间和严重程度,以及系统中未确认事件的当前数量。点击 × 按钮可关闭弹窗。
6.5.3.6 通知记录
通知记录提供完整的通知审计追踪,位于事件详情页底部的通知记录标签页。每次通知尝试——无论成功、失败还是被抑制——均按实际投递记录为一行,主要列包括:
| 列 | 说明 |
|---|---|
| 规则 | 通知发生时的规则名称快照、来源(模板 / 模板(已修改) / 元素)与修订号;规则事后改名或删除不影响历史行 |
| 联系点 | 实际投递的联系途径名称快照及其角色(主 / 升级) |
| 通知时间 | 成功行为渠道成功时间;失败行为尝试时间;待发送与被抑制行显示计划/决策时间,不虚构已通知时间 |
| 投递类型 | 告警 / 重发 / 恢复 |
| 结果 | 待处理 / 已认领 / 成功 / 失败 / 已取消 / 未知 / 等待中 / 新建 |
| 错误信息 | 失败时的错误摘要 |
同一事件命中多条规则、同一规则的不同联系途径、同一联系途径的多次重发均各占一行,不做合并。被抑制的行标记已阻止并注明具体原因(如处于非重复窗口期、低于历史最高严重级别、低于上次通知级别、事件已确认、事件已关闭等)。每行可展开查看逐次技术尝试的明细。
6.5.3.7 手动重发
事件详情页工具栏的重新发送和事件列表行菜单的发送通知用于手动补发通知:系统为该事件全部告警实例各创建一条重发待办,按各实例首次发送时的内容快照外发。手动重发不受最大重发次数限制。
以下情况会明确报错,而不是发送空内容:事件已确认、事件已关闭、事件没有可重发的通知实例(例如评估时没有规则命中)。某条实例的规则已被删除或停用、或其联系途径缺失时,仅跳过该实例,其余实例照常发送。
6.5.4 通知规则模板
通知规则模板支持在元素模板级别统一定义通知策略,避免逐个元素重复配置。当相同类型的元素都需要相同的通知设置时,可以在元素模板的通知规则模板标签页中维护一组模板规则——参数与元素上的通知规则一致(见规则参数),另有以下模板特有行为:
- 从模板创建时启用通知规则:每条模板规则上的创建时初值字段。从模板创建元素、或模板后续新增规则时,元素上对应规则的初始启停取该字段当时的值;之后再修改该字段不影响已有元素。模板规则本身没有运行态的启用开关。
- 元素上每条规则的当前启停独立保存在系统中,不随模板内容变化,也不进入资产的版本历史;从模板新建元素时不复制完整规则副本。
- 模板普通字段(如间隔、消息)的修改会传播到未覆盖该字段的元素;在元素上编辑某条模板规则只保存显式修改的字段,规则来源变为模板(已修改);恢复为模板值丢弃本地覆盖,内容字段回到模板当前定义,启停保持元素当前设置。
- 模板来源的规则在元素上不能删除,只能停用;模板删除规则时会一并清理元素上的覆盖和启停关联,历史通知记录保留。
模板规则列表显示每条规则在派生元素上的启用统计(已在 x / N 个元素上启用)。进入元素启停管理后,可按元素或元素子树批量启停:缺少主联系途径的元素会被跳过并列出原因,不会整批失败,也不会静默开启。









