【最佳实践】使用Logtail采集MQTT协议数据

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: MQTT是一个为IoT设计的消息协议,是一种轻量级的基于Pub/Sub模式的通信协议,支持物联网设备与服务器之间的双向通信。广泛应用于自动驾驶、智能家居、制造业、电信等领域。本文主要介绍如何使用日志服务Logtail作为订阅方来采集基于MQTT协议的消息。并将消息内容采集到日志服务的Logstore。

目标读者

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

使用场景

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

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

相关概念

Logtail

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

MQTT

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

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

方案架构

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

方案优势

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

方案实施

前提条件

  • 已部署好MQTT Broker
  • 有一台可以连通MQTT Broker的机器上已安装Logtail
  • 开通阿里云日志服务

操作步骤

步骤一:创建Project、Logstore

  1. 登录日志服务控制台,在Project列表页面,选择已有的Project或者创建新的Project。
  2. 日志库标签页,选择已有Logstore或者单击+图标创建新的Logstore。

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

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

  1. 快速数据接入页面,选择自定义数据插件。
  2. 创建/选择机器组。
  • 如果您已有可用的机器组,请单击使用现有机器组
  • 如果您还没有可用的机器组,请执行以下操作(以ECS为例)。在ECS机器页签中,通过手动选择实例方式选择目标ECS实例,单击立即执行安装完成后,单击确认安装完毕
  • 创建机器组页面,输入名称,单击下一步。日志服务支持创建IP地址机器组和用户自定义标识机器组

步骤三:创建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"

       }

   ]

}

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

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

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

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

参考

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
2月前
|
消息中间件 安全 物联网
MQTT常见问题之新增自定义主题后平台侧收不到发布的数据如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
2月前
|
物联网 网络性能优化 API
MQTT常见问题之单个消息发送数据不能超过64k如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
2月前
|
消息中间件 物联网 网络性能优化
MQTT常见问题之MQTT不支持5.0的协议如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
3月前
|
消息中间件 存储 监控
|
3月前
|
机器学习/深度学习 开发工具
DP活动:HMI-Board以太网数据监视器(二)MQTT和LVGL
DP活动:HMI-Board以太网数据监视器(二)MQTT和LVGL
33 1
|
2月前
|
消息中间件 物联网 关系型数据库
MQTT常见问题之消息对列mqtt的历史数据查看失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
2月前
|
监控 网络性能优化 网络安全
【MODBUS】Modbus主站为边缘设备通过MQTT协议上云
【MODBUS】Modbus主站为边缘设备通过MQTT协议上云
38 1
|
3月前
|
物联网 Linux 开发工具
MQTT协议接入问题之连接失败如何解决
MQTT接入是指将设备或应用通过MQTT协议接入到消息服务器,以实现数据的发布和订阅;本合集着眼于MQTT接入的流程、配置指导以及常见接入问题的解决方法,帮助用户实现稳定可靠的消息交换。
151 2
|
3月前
|
JSON 物联网 开发工具
MQTT协议问题之如何搭建物联网空调的服务器
MQTT协议是一个轻量级的消息传输协议,设计用于物联网(IoT)环境中设备间的通信;本合集将详细阐述MQTT协议的基本原理、特性以及各种实际应用场景,供用户学习和参考。
85 1
|
3月前
|
JSON 网络协议 物联网
MQTT协议问题之消息类型分类如何解决
MQTT协议是一个轻量级的消息传输协议,设计用于物联网(IoT)环境中设备间的通信;本合集将详细阐述MQTT协议的基本原理、特性以及各种实际应用场景,供用户学习和参考。
52 3