Azure中如何监控IoT Hub内特定设备并设置未发送消息告警?
Azure IoT Hub单设备未发消息告警的当前支持情况
2018年技术讨论里提到的“不支持单设备粒度消息告警”的限制,在当前版本的Azure平台上已经解除,现在完全可以直接针对指定的单台IoT设备(比如你提到的Device1、Device2、Device3、Device4)配置“未发送消息即触发告警”的规则,实现精细化的设备运行状态监控。
实际配置的实现方式
现在的IoT Hub监控能力已经把原本全Hub聚合的消息指标,下沉到了单设备粒度的维度,不需要额外写自定义代码或者对接第三方服务:
- 进入对应IoT Hub的「指标」面板,选择指标
MessagesReceived(代表Hub从对应通道接收到的设备消息总数),在维度拆分选项里勾选DeviceId,即可看到每台独立设备的实时收消息统计值 - 基于这个单设备维度的指标直接创建告警规则即可:举个例子,针对Device1,设置规则为“过去N个评估周期内,Device1对应的接收消息数为0时,触发预设的告警通知”,完全匹配单设备的在线状态监控需求。
配置提醒
- 告警评估窗口的长度一定要和设备的正常上报间隔匹配:比如设备本身每15分钟才上报一次消息,就不能把告警触发窗口设成5分钟,否则会出现大量无意义的误触发
- 如果要批量监控多台设备,不用逐台重复建规则,可以在告警规则的指标筛选条件里,通过DeviceId的匹配规则批量圈定需要纳入监控的设备列表,统一配置告警阈值和通知动作
与2018年版本的能力差异
2018年阶段的IoT Hub监控仅支持Hub级别的聚合类指标,比如全Hub维度的总接收消息数,没有开放单设备维度的指标拆分,所以当时确实无法直接实现单设备的消息缺失告警,这个能力是后续IoT Hub监控体系迭代升级后才正式上线的。
内容的提问来源于stack exchange,提问作者Tman
相关产品推荐
相关产品推荐

