ThingsBoard 规则链配置create alarm:遥测数据触发告警

当前版本:ThingsBoard4.2、kafka4.0

ThingsBoard 规则链配置:遥测数据触发告警

本文将详细介绍如何在 ThingsBoard 中配置规则链,实现基于遥测数据的告警触发功能。适用于需要对设备上传的温湿度、电压、电流等遥测指标进行实时监控,当数据超出预设阈值时自动触发告警的场景。

一、配置前准备

  1. 环境确认:确保 ThingsBoard 服务正常运行,管理员账号可正常登录(默认地址:http://\<服务器IP\>:8080,默认账号:tenant@thingsboard.org,密码:tenant)。

  2. 设备准备 :已在 ThingsBoard 中添加目标设备,且设备能正常上传遥测数据(如:temperature-温度、humidity-湿度、voltage-电压等)。可通过"设备->遥测数据"页面验证数据上传情况。

    假设我们有个设备,遥测数据如上图所示,即mqtt上报的数据格式如下:

    {

    "333333": {

    "type": "ddddd",

    "temperature": "20",

    "deviceid": "0xc4822b42f5273f147e16f0b34581",

    "Memory": "3.80 GB>3.17 GB",

    "Emmc": "25.57 GB>25.19 GB",

    "timebuild": "Sat Dec 20 16:23:54 CST 2025",

    "timestamp": 1766460819437,

    "ip": "广东省飞机市 电信-ip:10.19.8.171-480100"

    }

    }

因此对应键名则是333333,数值是一个json字符串。我们需要提取中的temperature,当温度大于70度,则创建告警信息。最终效果如下图所示:

二、核心配置步骤

本次配置将创建一条"遥测数据接收->阈值判断->生成告警->推送通知"的完整规则链,具体步骤如下:

步骤 1:创建自定义规则链

  1. 登录 ThingsBoard 后台,点击左侧导航栏【规则链】,进入规则链管理页面。

  2. 点击Root Rule Chain,拷贝待用。

  3. 点击页面右上角【+】,选择【创建规则链】,填写规则链信息:

    1. 名称:自定义名称(如:"AC8015")。

    2. 描述:可选,填写规则链用途(如:"监控设备温湿度、电压数据,超出阈值触发告警")。

  4. 点击【添加】,完成自定义规则链创建,进入规则链编辑界面(画布模式)。

  5. 右击【粘贴】,这样你就有了一份和默认/根节点同样的规则。

步骤 2:添加"告警判断"节点

该节点用于判断设备上传的遥测数据是否满足要求。

  1. 在规则链编辑界面,点击左侧【节点库】,找到"筛选器",选择【script】,拖拽至画布中。

  2. 双击节点,配置节点信息:

    1. 节点名称:自定义(如:"A77")。

    2. 选择JavaScript

    3. 点击test filter function,实现逻辑判断代码

  3. 修改消息中的温度值,点击【测试】,查看右边输出的结果;如果有报错,自行解决语法问题。

  4. 点击【保存】,完成入口节点配置。

步骤 3:添加"告警生成"节点(核心节点)

该节点用于定义告警规则(如:温度>70℃触发告警),当遥测数据满足规则时,自动生成告警信息。

  1. 在节点库中搜索"create alarm",拖拽至画布中。

  2. 节点名称:自定义(如:"A78")。

  3. 逻辑判断同样我们采用javascript。

    function Details(msg, metadata, msgType) 函数中实现逻辑。

  4. 点击【测试】,查看右边输出的结果。

  5. 点击【保存】,完成告警判断节点配置。

步骤 4:"连接"节点

把前面创建节点,按图示连接。

三、验证与调试

配置完成后,需要把当前规则,应用保存。

  1. 设备配置:

确保我们上面创建的规则,正确的配置给对应的设备!!!


  1. 模拟发送

    1. 使用MQTTX,模拟发送遥测数据:

    2. 查看告警通知

四、常见问题与优化建议

1. 常见问题

  • 为什么不采用单一的遥测数据 :我们常见的遥测数据:

    {"temperature": 22.4, "humidity": 78},这样是可以的。不采用常规的方式上报遥测,主要是把设备当成一个集合,而并非单一的某个设备。这样键名,例如33333,它就是某一个设备的唯一标识。这样就能在一个设备集合中收集很多设备的数据。

  • 告警未推送通知 :在规则中启动调试,一步一排查问题。

  • 误告警频繁:添加"触发延迟"(如:5秒内持续满足条件才触发);优化阈值设置,避免因瞬时波动导致误告警。

2. 优化建议

  • 多设备分组管理:对不同类型的设备创建设备组,在遥测数据节点中按设备组过滤,实现针对性监控。

  • 告警升级机制:添加"告警升级节点",若告警长时间未处理(如:10分钟),自动提升告警级别并推送至更高层级的运维人员。

  • 数据持久化:添加"保存到数据库节点",将遥测数据和告警记录持久化存储,便于后续统计分析。

  • 规则链复用:将通用的告警逻辑(如:温湿度监控)配置为模板规则链,后续新增设备可直接复用,提高配置效率。

五、总结

通过以上步骤,即可完成 ThingsBoard 中基于遥测数据的告警规则链配置,实现"数据采集-阈值判断-告警生成-通知推送"的全流程自动化。核心在于准确配置遥测数据过滤条件和告警触发规则,同时根据业务需求选择合适的通知渠道。实际应用中,可根据设备类型、监控指标的差异,灵活调整规则节点配置,优化告警策略。

相关推荐
ん贤2 小时前
io.copy
运维·服务器·网络·io.copy
乾元2 小时前
红队 / 蓝队:用 AI 自动生成攻击场景并评估防御效果——从“安全演练”到“可计算的网络对抗系统”
运维·网络·人工智能·网络协议·安全·web安全·架构
_Orch1d2 小时前
非对称加密AKA协议:安全认证与密钥交换
网络·tcp/ip·安全
Ha_To10 小时前
2025.12.22 OSPF多区域原理与配置方法
网络
Smile_25422041812 小时前
vlc的使用
网络·webrtc·实时音视频
清水白石00813 小时前
《requests vs httpx:Python 网络请求库的全面对比与实战指南》
网络·python·httpx
德迅云安全—珍珍13 小时前
什么是udp攻击,为什么udp攻击难防御
网络·网络协议·udp
运维行者_14 小时前
OPM 与传统管理工具的区别,在网络修复与自动化运维方面的优势在哪里?
运维·服务器·开发语言·网络·自动化·php·ssl
广州灵眸科技有限公司15 小时前
瑞芯微(EASY EAI)RV1126B 音频输入
linux·开发语言·网络·音视频