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

相关推荐
有代理ip4 小时前
详解 HTTP 代理 8080 与 3128 的端口特性及用途
网络·网络协议·http
Hill_HUIL9 小时前
学习日志23-路由高级特性(静态路由)
网络·学习
cyhty9 小时前
静态路由实验报告
网络·网络安全
Chen放放9 小时前
【华三】VXLAN-三层集中式网关配置
运维·网络
花火Neko`9 小时前
openwrt防火墙安全配置
网络·安全·智能路由器·istoreos
Wen9 小时前
小米路由器4A千兆刷OPENWRT(简单快速)
网络·经验分享·智能路由器
碎梦归途9 小时前
思科网络设备配置命令大全,涵盖从交换机到路由器的核心配置命令
linux·运维·服务器·网络·网络协议·路由器·交换机
七维大脑虚拟机9 小时前
飞牛NAS公网IPv6+DDNS远程访问零延迟教程
运维·服务器·网络
珠海西格电力科技10 小时前
微电网系统架构设计:并网/孤岛双模式运行与控制策略
网络·人工智能·物联网·系统架构·云计算·智慧城市
浩浩测试一下10 小时前
从Web 到 域控 <----> 企业级内网渗透思路
网络