
事件管理与智能通知------告警不是"响一声就完事",要有人接、有人管、有人关
一句话:工业现场不缺告警,缺的是闭环 。IDMP 把"某条分析命中了"变成一个有级别、有状态、有责任人、可确认、可升级、可追溯的事件对象,并且能把通知精准推给该管的那个人,顺手在飞书里建一张工单。
一、先承认一个事实:告警泛滥是被设计出来的
一个中等规模装置的 DCS,一天能弹几千条报警。班组的真实反应是什么?
- 前三天认真看;
- 第一周开始"知道了,还是那个";
- 第一个月开始把声音关掉。
这叫 alarm fatigue(报警疲劳) 。它不是操作员不负责,而是系统把判断的负担推给了人------几千条里到底哪 3 条要命,平台没说。
更糟的是,被关掉的那几千条里,可能藏着真事故的第一声。
IDMP 的应对不是"少报点",而是给每一条告警加上下文、加责任人、加生命周期------让它从一个"声音"变成一个"活儿"。
二、事件 ≠ 告警:它是一个有生命的对象
| 维度 | 一条告警(传统) | 一个事件(IDMP) |
|---|---|---|
| 是什么 | 一条消息 | 一个有状态的实体 |
| 级别 | 有或没有 | 6 级:Default / Information / Warning / Minor / Major / Critical |
| 所属对象 | 一个点位号 | 一个元素(可沿树聚合) |
| 字段 | 固定几个 | 由事件模板定义,可自定义、可继承 |
| 结构 | 平的 | 支持父子事件 、支持按属性多级分组浏览 |
| 状态 | 弹完就没了 | 待处理 → 已确认 → 关闭,全程留痕 |
| 通知 | 广播 | 按规则路由到指定责任人,带最小间隔和升级 |
| 后续动作 | 无 | 可自动发通知、写注释、建外部工单、调智能体 |
一句话:告警是"发生了什么",事件是"这件事谁在管、管到哪一步了"。
三、事件模板:先定"这类事件该记什么"
同一种故障,师傅们关心的字段是固定的:什么状态、什么原因、哪个责任区域、涉及哪个工段、处置建议是什么。
事件模板就是把这套字段固定下来:
- 定义这个类型的事件有哪些属性;
- 支持多基础模板继承(和元素模板一个机制),比如「设备事件」→「泵类事件」→「机封泄漏事件」;
- 属性可以带数据引用、单位换算;
- 模板还能反过来被"事件层级"引用,限定浏览范围。
好处很实际:三百条泄漏事件,字段一致,才能做统计。 字段靠人随手填,就永远只能一条条看。
四、事件层级:把"固定的看法"存下来
这是 IDMP 事件模块里我很喜欢的一个设计。
运维团队看事件的方式往往是固定的,比如:
先按「状态」分组 → 再按「原因」分组 → 再按「责任区域」分组
这套视角是团队的"标准动作",但传统平台里它只存在于当次会话------刷新就没了,明天还得重新拖一遍字段。
IDMP 把它做成一个可以命名、保存、复用 的资产:事件层级(Event Hierarchy)。
| 能力 | 说明 |
|---|---|
| 存什么 | 关联的事件模板(0...n 个)+ 有序的属性数组(最多 5 级) |
| 不存什么 | 不存过滤条件、不存排序------层级是纯结构,过滤交给"过滤器" |
| 怎么用 | 事件模块左侧树的「层级」分支下展开,逐层懒加载,每组显示准确的递归事件计数 |
| 在哪管 | 基础库新增「事件层级」顶级菜单,像管事件模板一样管理它 |
| 关联模板的作用 | 展开层级时,事件隐式限定在关联模板生成的事件里 |
举个具体的样子:
bash
车间告警层级(关联模板:产线告警、设备巡检)
└── 状态:未处理 ← 128 条
├── 原因:机械故障 ← 46 条
│ └── 区域:一号线 ← 21 条 → 点进去是事件列表
├── 原因:工艺参数 ← 52 条
└── 原因:待定 ← 30 条 ← 这一堆最该关注
「原因:待定」有 30 条」------这个视图本身就是一个管理信号:说明有一批事件的归因没做,责任没落地。
五、通知和动作:四种方式把事推给人
事件命中之后,IDMP 不只是"发个消息",而是可以挂动作规则 。动作来自基础库的动作模板,共四类:
| 动作类型 | 干什么 | 典型用法 |
|---|---|---|
| 通知(NOTIFICATION) | 推到指定通知途径 | 飞书群 / 钉钉群 / 邮件 / 联系人 |
| 内部注释 | 往某个内部对象追加一条注释 | 在该元素/属性/事件上留痕"本次越限已复核" |
| 外部任务 | 调用外部系统建任务 | 飞书应用里建工单,指派给人 |
| 智能体任务 | 交给 AI Agent 处理 | 自动做一次根因初筛,产出报告 |
几个关键设计细节:
- 条件可留空:留空 = 无条件,动作每次都执行;
- 条件求值失败就不执行 (fail-close)------和事件条件相反(事件条件是 fail-open)。这是刻意的:配错属性就静默不触发,比"配错属性天天误触发"好。
- 快照化引用 :分析引用动作模板时会把模板内容整体快照存进去。以后有人改了模板,不影响已经在跑的分析------避免"改了个模板,全厂告警行为变了"。
- 最小间隔:同一条规则两次通知之间不少于设定时间,从机制上防刷屏。
- 失败不阻塞:某个动作(比如飞书接口挂了)失败只记日志,不影响其他动作执行。
支持的 IM 渠道
钉钉、企业微信、飞书、Slack、WhatsApp------告警该去哪就去哪,不用把人拽到另一个 App 里。
六、一个生产实践的例子:夜班从"关声音"到"看层级"
某化工厂,一个装置 800 个测点,DCS 每天 2000~3000 条报警。班组两年前就把声音关了。
他们的问题不是"没有监控",是"监控把人训练成了不看"。
第一步 · 把"声音"变成"事件"。
原先阈值判断直接弹 DCS 画面。现在把关键的十几条判断改成 IDMP 的实时分析,输出事件,并套上事件模板:状态、原因、责任区域、影响工段四个字段固定下来。
第二步 · 定层级,让班组"从哪开始看"有规矩。
建了一个「车间告警层级」:状态 → 原因 → 责任区域,关联了「产线告警」「设备巡检」两个事件模板。
现在值班长上班第一件事,不是听声音,是打开层级树:
bash
未处理 128 → 机械故障 46 → 一号线 21
从 128 缩到 21,用了两次点击。 这就是"视图"的价值------不是让系统更聪明,是让人少做无效判断。
第三步 · 分批通知,配最小间隔。
动作规则这么配的:
| 事件级别 | 通知去向 | 最小间隔 | 附加动作 |
|---|---|---|---|
| Warning | 班组飞书群 | 30 分钟 | --- |
| Major | 班组群 + 值班长 | 15 分钟 | 飞书建工单,指派当班机修 |
| Critical | 值班长 + 设备科长 + 生产调度 | 5 分钟 | 建工单 + 触发 AI 做一次根因初筛 |
第四步 · 关掉 90% 的噪音源。
把原来那些"设了阈值但从来没人处理"的 400 多条判断直接停用------不是所有能测的都值得报。这一步砍掉的量比加功能更有效。
三周后的真实变化:
| 指标 | 之前 | 之后 |
|---|---|---|
| 日事件量 | 2000~3000(DCS 原始) | 约 60(经分析与分级) |
| 其中 Critical | 无分级,无法统计 | 平均 1.2 条/天 |
| 平均确认时长 | 无统计(多数从未确认) | 22 分钟 |
| 原因未归类的占比 | 未知 | 从 41% 降到 9% |
最能说明问题的一件事:上个月有一次夜班,凌晨 3 点一条 Major 事件------2 号塔顶压力缓慢上升。这条在旧系统里只是几千条里的普通一条,没人会注意。这次它被滑动窗口分析抓出来、被分级成 Major、被推到值班长手机上、自动建了工单。检修在压力真正超标前 4 小时处理掉了。
这不是"AI 预测"的功劳,是"分级 + 路由 + 最小间隔"这套朴素机制把人拉回了岗位。
七、怎么用:三步上手
第一步:先分级,再建模板
别急着配通知。先跟班组确认:你们觉得哪些事必须马上知道? 通常不超过 5 类。这 5 类做成事件模板,其余降级。
第二步:先配"一个人",再配"一群人"
挑一个最有责任心的值班长,把通知只推给他,跑两周。他骂你了,说明通了;他不理你,说明还不对。
第三步:建第一个层级,并规定"上班先看这个"
层级不建也能用,但建了之后班组才有"标准动作"。层级的设计原则:第一层必须是班组最关心的那个维度(通常是处理状态或区域,不是严重级别)。
八、能解决什么问题
问题 1:报警疲劳
分级 + 最小间隔 + 只保留有责任人的告警,从源头降量。
问题 2:事件不闭环
状态流转 + 确认 + 父子结构 + 原因字段,让"处理了没有"变成可查询的事实。
问题 3:找不到该管的人
动作路由到联系人 / 群 / 外部工单系统,责任明确。
问题 4:责任说不清
层级视图里「原因:待定」的那一堆,就是责任没落地的地方------它自己会暴露。
问题 5:事件之间有关联
父子事件、按属性多级分组,能把"一个总故障下的多个异常"收敛成一件事看。
九、边界与提醒(诚实版)
- 事件条件的失败语义是 fail-open。 条件里引用的属性取不到值时,事件条件会按"命中"处理 (宁滥勿缺);而动作条件是 fail-close(宁缺勿滥)。这两者不同是有意设计,但配置时必须知道,否则会出现"属性名写错了,结果天天报警"。
- 最小间隔不是"去重"。 它是"同一规则别太频繁",但不同规则同时命中同一件事,你仍然会收到多条。真正的收敛要靠事件模板设计 + 层级。
- 动作模板是快照。 想改已在运行的分析的通知去向,要改分析里的动作配置,改基础库模板不生效。
- IM 渠道要单独配。 钉钉/企微/飞书/Slack/WhatsApp 各自的机器人或应用凭证都要配好,配错了表现是"事件有了、通知没来"------上线前务必用一条测试事件打通一次。
- 层级最多 5 级。 再多,树就没人愿意点了。
- 客户反馈:中。 有公开案例能证明"事件 + 通知"是最贴近岗位刚需的一块(某化工厂工程师用 AI Agent + IDMP SDK 三天做出报警管理 App),客户研讨会里也把"告警泛滥、事件不闭环"列为明确的行业痛点;但针对 IDMP 事件模块本身的客户满意度,还没有统计样本。
十、和别的功能怎么配合
| 场景 | 配合谁 |
|---|---|
| 事件是谁产生的 | 实时流分析(第 06 篇)------事件是它的出口之一 |
| 事件发生要追原因 | AI Function「根因分析」(第 02 / 09 篇)--- 事件详情页直接点 |
| 想统计事件分布 | 事件层级 + 可视化面板(第 08 篇) |
| 事件要变成工单 | 动作模板 → 外部任务(飞书等) |
| 通知发到群里还要能追问 | IM 集成 + AI 问答(第 02 篇)------在群里 @ 一下问详情 |
一句话记住:降噪靠分级,闭环靠状态,落地靠路由。 三件事做好了,告警才真正开始"有用"。
十一、关于 TDengine IDMP
TDengine IDMP(Industrial Data Management Platform)是一款 AI 原生的工业数据管理平台 。
它不负责存数据------那是 TDengine TSDB 的事;它负责给数据补上业务含义,并在这个基础上让 AI 真正跑起来。
事件、动作、IM 通知都跑在同一个平台里。通知渠道是配置项,不是外挂系统------配好机器人,事件命中就能推出去。
免费版够不够用
IDMP 提供免费版,中小企业和个人用户可以直接用。
免费版与商业版在功能、性能上完全一致 ,通过年度续期 即可长期免费使用,只在测点数量 上设有上限------
对大多数中小企业来说,这个额度够用。All-in-One 装完会自动申请并激活免费许可,不需要额外配置。
怎么装:All-in-One 一键部署
All-in-One 把 IDMP、TSDB、TDgpt、TDmodel 打包成一个部署包:
| 环境 | 怎么装 |
|---|---|
Linux (Ubuntu / Kylin / openEuler / Anolis;需 root、内核 ≥ 3.10.0-1160、glibc ≥ 2.28) |
执行下面的主机模式命令 |
| Windows 10/11、Server 2019+ | 下载 TDengineSetup-x64.exe,双击后选「主机方式」 |
| Docker(Linux / macOS / Windows,Docker ≥ 20.10) | 执行下面的容器模式命令;macOS 只支持 Docker 部署,需先启动 Docker Desktop |
bash
# 主机模式(Linux)
curl -fsSL https://downloads.taosdata.com/apex/latest/install.sh | bash -s -- -m apex
# 容器模式(Linux / macOS)
curl -fsSL https://downloads.taosdata.com/apex/latest/install.sh | bash -s -- -m docker
装完浏览器打开:
text
http://localhost:6042
从其他机器访问,把 localhost 换成部署节点的 IP 或主机名。
装完先把 AI 接上
- 连一个大模型:OpenAI 兼容接口,填地址 / Key / 模型名;内置 15 天试用连接,可先零配置体验;
- (可选)装 TDgpt:要做异常检测、预测、缺失值填补时才需要,它独立于大模型运行;
- 把数据接进来:连现成的 TDengine TSDB,或用示例数据先跑通。
两点容易踩:默认部署清单是
deployment-single-node-no-tdmodel.yaml,TDmodel 仅支持 Docker 部署 ;TDgpt 默认启用 moirai 模型,x64 CPU 需要支持 AVX2。
运维与卸载(Linux 主机模式)
| 操作 | 命令 |
|---|---|
| 启动 IDMP | svc-tdengine-idmp start |
| 停止 IDMP | svc-tdengine-idmp stop |
| 卸载 IDMP | rmidmp |
链接
- All-in-One 下载与安装命令:https://www.taosdata.com/download-center?product=TDengine+All-in-One
- Windows 安装器:https://downloads.taosdata.com/apex/latest/TDengineSetup-x64.exe
- 免费版说明:https://www.taosdata.com/tdengine-free-edition
- 不想本地装:注册云服务直接试用 https://cloud.taosdata.com
回到这一句:降噪靠分级,闭环靠状态,落地靠路由------三件事都不需要另一个系统来帮忙。