概述
告警微服务(Alert Service)是物联网平台中负责告警全生命周期管理的独立服务,接收来自规则引擎、数据服务、设备服务的告警事件,完成告警收敛、分级、通知推送,并支持确认、处理、关闭的闭环管理。在工业监控、能源管理、智能运维等场景中,海量设备产生的异常事件若不加处理直接推送,将导致"告警风暴"——运维人员被大量重复、低价值告警淹没,真正需要关注的故障反而被忽略。告警微服务的核心价值在于"降噪"与"增效"。
物联网告警与IT运维告警存在显著差异:设备数量可达百万级、告警来源多样(离线、超阈、异常波动、通信故障)、通知对象包括现场工人、调度中心、管理层等多角色,且部分场景要求秒级响应(如安防、消防)。告警微服务需针对这些特点设计高吞吐、低延迟、可配置的告警流水线。
核心能力
告警收敛与降噪
- 相同告警合并:同一设备、同一规则在时间窗口内的重复告警合并为一条,附带发生次数
- 频率限制:单用户/单通道的推送频率限制,避免短信轰炸、钉钉刷屏
- 静默期:告警恢复后设置静默期,短期内同一规则不再重复触发
- 告警聚合:按设备组、区域、规则类型聚合,支持"某区域10台设备离线"类汇总告警
多通道通知
支持短信、邮件、钉钉、企业微信、飞书、APP推送、语音电话等多种通知方式。可根据告警级别、值班表、用户偏好进行路由:紧急告警走短信+电话,一般告警走APP推送,批量汇总走邮件日报。与第三方通知网关(阿里云短信、腾讯云SMS等)集成,支持模板配置、发送记录、失败重试。
告警升级与值班
- 升级策略:未确认告警在N分钟后自动升级,通知上一级或值班主管
- 值班轮询:按排班表将告警分配给当前值班人员,支持轮询、随机、负载均衡
- 升级链:一线→二线→三线,或按告警类型路由至不同处理组
闭环管理
告警从产生到关闭的全流程:触发→通知→确认(有人接手)→处理(填写处理措施)→关闭。支持告警统计、响应时长分析、重复告警分析,为运维优化提供数据支撑。与工单系统、CMDB集成,可实现告警自动转工单、关联资产信息。
物联网典型告警类型
设备离线告警:设备超过设定时间未上报心跳或数据,触发离线告警。需区分"真离线"(断电、断网)与"假离线"(设备休眠、批量上报间隔长),避免误报。可结合设备类型、历史行为设置差异化超时阈值。
数据异常告警:传感器数据突变、持续偏离正常范围、数据缺失等。如温湿度传感器读数突然归零、流量计出现负值,可能表示设备故障或通信异常。
阈值超限告警:温度过高、压力超标、电量不足等业务阈值告警。支持多级阈值(预警、告警、严重),不同级别采用不同通知策略。
通信与连接告警:物联网卡欠费停机、信号弱、连接频繁断开等,对依赖蜂窝网络的设备尤为重要。达希物联在物联网卡管理场景中,常将卡状态异常与告警服务联动,及时提醒客户续费或更换卡。
与规则引擎的协同
告警微服务通常不直接对接设备数据,而是接收规则引擎输出的告警事件。规则引擎负责"何时告警"(条件判断),告警微服务负责"如何通知"(收敛、路由、推送)。两者通过消息队列解耦,规则引擎发布告警事件到Kafka/RocketMQ,告警服务消费并处理。这种架构支持规则动态调整、告警服务独立扩缩容。
技术选型与实现
开源方案如Prometheus Alertmanager、Grafana Loki 适用于监控场景;物联网平台多采用自研或基于ThingsBoard、阿里云IoT等平台的告警模块。关键实现点:事件去重(基于设备+规则+时间窗口的Key)、异步推送(避免阻塞主流程)、通知通道的熔断与降级(某通道失败时自动切换)。