vlambda博客
学习文章列表

Zabbix新功能3-使用MQTT订阅采集IoT设备数据

     今天业务部门有一个物联网数据采集需求,正好从Zabbix5.2开始支持2个重要的IoT协议-MQTT与Modbus,所以今天我们就来看看如何使用ZABBIX和MQTT监控采集物联网设备数据。

  1. 什么是MQTT

    为了满足当下物联网IoT 应用的多样化需求,市面上开放了包括 CoAP、XMPP 和 DDS 在内的多种协议,可供各个应用场景按需选择。其中,消息队列遥测传输 (MQTT) 及其衍生协议 MQTT-SN 正广泛应用在日益普遍的低功耗广域 (LPWA) 网络中。

    作为一种轻量级协议,MQTT 拥有简单紧凑的架构和较小的代码占用空间,适用于低成本、低功耗的IoT微控制设备。MQTT 可在 TCP/IP 协议上兼容运行,专攻延迟较高、质量不佳的网络环境。该协议适用于具有以下通信需求的应用:使用极小带宽无线网络通信低功耗必要时保证高可靠性对处理和内存资源的需求很低。

    MQTT 基于发布和订阅模型,有两个功能实体——MQTT 服务器和 MQTT 客户端。IoT 网络上的任何“事物”,无论是硬件设备还是软件程序,都可以视为 MQTT的 客户端。所有的客户端并非直接向彼此发布或订阅消息,而是向MQTT 服务器所管理的“主题”来发布或订阅消息。“主题”可理解为电子邮件的收件箱;客户端向主题发布消息,订阅该主题的其他客户端都将收到该消息。

  2. MQTT与ZABBIX的集成

    1. 安装【zabbix-agent2】(注意:不是zabbix-agent,这是zabbix客户端使用go语言全新实现的)5.2及以上版本,这里在Centos7下直接使用rpm包安装。

      rpm -ivh zabbix-agent2-6.0.4-1.el7.x86_64.rpm#修改配置文件,MQTT数据采集只能使用主动模式向ZABBIX服务端发送数据#所以必须配置ServerActiveHostnam

    2. 定义监控主机并配置监控项

      Zabbix新功能3-使用MQTT订阅采集IoT设备数据

      类型:必须选择“ZABBIX客户端(主动式)"

      键值:必须使用”mqtt.get[MQTT服务(如tcp://xx-iot.com:1833),订阅的主题,用户名,密码]“格式。

    3. 定义完成后启动ZABBIX客户端查看日志,如果有相关报错说明配置或网络联通性存在问题,如下面就是连接mqtt服务端不正常。

    4. 查看监控数据(这里是原始的JSON格式数据,当然通常还会做处理分解成各个监控项,这也是ZABBIX的新功能,下次我们来讲讲这个功能)。


           如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!