使用Logtail采集MQTT协议数据

简介: 本文主要介绍如何使用Logtail来采集MQTT协议的数据。


1. 目标读者

IoT系统开发运维工程师、MQTT协议应用工程师

2. 使用场景

MQTT是一个为IoT设计的消息协议,是一种轻量级的基于Pub/Sub模式的通信协议,支持物联网设备与服务器之间的双向通信。广泛应用于自动驾驶、智能家居、制造业、电信等领域。

本文主要介绍如何使用日志服务Logtail作为订阅方来采集基于MQTT协议的消息。并将消息内容采集到日志服务的Logstore。

3. 相关概念

3.1 Logtail

Logtail是日志服务提供的日志采集Agent,用于采集阿里云ECS、自建IDC、其他云厂商等服务器上的日志。本文介绍Logtail的功能、优势、使用限制及配置流程等信息。

3.2 MQTT

全称:Message Queuing Telemetry Transport,是一种轻量级高效的传输协议,主要应用于物联网设备的数据传输等。具有双向通信、高度Scale、支持Qos、支持不稳定网络等特点。

传输方式主要基于Pub/Sub架构。在Pub和Sub中间需要有支持MQTT的Broker

image.png

4. 方案架构

本方案是Logtail作为MQTT协议的订阅方,连接到MQTT Broker进行消息的订阅,并将订阅到的消息采集到日志服务的Logstore中,从而进行后续的消息查询分析、可视化等。

image.png

方案优势

将Logtail作为MQTT的订阅方,只需要进行简单的配置,即可消费设备发来的消息,数据采集到日志服务Logstore后,可以借助日志服务一站式查询分析、数据加工、可视化、告警等。相对于自研系统或者其他开源系统具有便捷、高性能、一站式的优势。

5. 方案实施

5.1 前提条件

  • 已部署好MQTT Broker

  • 有一台可以连通MQTT Broker的机器上已安装Logtail

  • 开通阿里云日志服务

5.2 操作步骤

步骤一:创建Project、Logstore

  1. 登录日志服务控制台,在Project列表页面,选择已有的Project或者创建新的Project。

  2. 日志库标签页,选择已有Logstore或者单击+图标创建新的Logstore。

步骤二:创建/选择机器组

  1. 在数据接入-> Logtail配置,点击+,接入数据

image.png

  1. 快速数据接入页面,选择自定义数据插件。image.png

  1. 创建/选择机器组。

  • 如果您已有可用的机器组,请单击使用现有机器组

  • 如果您还没有可用的机器组,请执行以下操作(以ECS为例)。在ECS机器页签中,通过手动选择实例方式选择目标ECS实例,单击立即执行image.pngimage.png安装完成后,单击确认安装完毕

  • 创建机器组页面,输入名称,单击下一步。日志服务支持创建IP地址机器组和用户自定义标识机器组image.pngimage.png

步骤三:创建MQTT采集配置

本文假定已有MQTT Broker配置的服务器地址、用户名、密码,如果测试需要可以在阿里云微消息队列MQTT版进行创建Broker,具体可以参考链接

配置如下:其中参数根据Broker环境进行配置

{
    "inputs": [
        {
            "detail": {
                "Topics": [
                    "topic name 1",
                    "topic name 2",
                ],
                "Qos": 1,
                "Server": "tcp://mqtt-cn-xxxxxx-internal-vpc.mqtt.aliyuncs.com:1883",
                "Username": "fill in username",
                "ClientID": "fill in clientId",
                "Password": "fill in password"
            },
            "type": "service_mqtt"
        }
    ]
}

image.png

点击下一步,开始查询日志。

步骤四:查询采集后的日志

  1. 登录日志服务控制台

  2. 选择目标Project和Logstore,点开logstore菜单,选择放大镜按钮,查询分析,即可查询采集到的日志。

image.png

如果消息格式为JSON格式,可以将Logstore索引中的content设置为JSON类型。

image.png

6. 参考

image.png

作者介绍
目录