【最佳实践】使用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版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
3月前
|
消息中间件 Java 测试技术
消息队列 MQ使用问题之数据流出规则是否支持平台的云RabbitMQ
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
5月前
|
传感器 网络协议 Ubuntu
MQTT协议与EMQ
MQTT协议与EMQ
128 0
|
17天前
|
消息中间件 监控 物联网
MQTT协议对接及RabbitMQ的使用记录
通过合理对接MQTT协议并利用RabbitMQ的强大功能,可以构建一个高效、可靠的消息通信系统。无论是物联网设备间的通信还是微服务架构下的服务间消息传递,MQTT和RabbitMQ的组合都提供了一个强有力的解决方案。在实际应用中,应根据具体需求和环境进行适当的配置和优化,以发挥出这两个技术的最大效能。
77 0
|
2月前
|
物联网 C# 智能硬件
智能家居新篇章:WPF与物联网的智慧碰撞——通过MQTT协议连接与控制智能设备,打造现代科技生活的完美体验
【8月更文挑战第31天】物联网(IoT)技术的发展使智能家居设备成为现代家庭的一部分。通过物联网,家用电器和传感器可以互联互通,实现远程控制和状态监测等功能。本文将探讨如何在Windows Presentation Foundation(WPF)应用中集成物联网技术,通过具体示例代码展示其实现过程。文章首先介绍了MQTT协议及其在智能家居中的应用,并详细描述了使用Wi-Fi连接方式的原因。随后,通过安装Paho MQTT客户端库并创建MQTT客户端实例,演示了如何编写一个简单的WPF应用程序来控制智能灯泡。
50 0
|
2月前
|
物联网 网络性能优化 Python
"掌握MQTT协议,开启物联网通信新篇章——揭秘轻量级消息传输背后的力量!"
【8月更文挑战第21天】MQTT是一种轻量级的消息传输协议,以其低功耗、低带宽的特点在物联网和移动应用领域广泛应用。基于发布/订阅模型,MQTT支持三种服务质量级别,非常适合受限网络环境。本文详细阐述了MQTT的工作原理及特点,并提供了使用Python `paho-mqtt`库实现的发布与订阅示例代码,帮助读者快速掌握MQTT的应用技巧。
51 0
EMQ
|
3月前
|
传感器 人工智能 安全
EMQX 与 MQTT: AI 大模型时代的分布式数据中枢
在以数据为核心的 AI 时代,基于 MQTT 协议的消息服务器 EMQX 能帮助企业更好的利用人工智能和机器学习模型,是智能化系统中核心的数据基础软件。
EMQ
189 10
|
3月前
|
消息中间件 监控 物联网
消息队列 MQ使用问题之如何获取和处理消息堆积数据
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
4月前
|
数据采集 监控 物联网
MQTT协议在智能制造中的应用案例与效益分析
【6月更文挑战第8天】MQTT协议在智能制造中的应用案例与效益分析
108 1
|
5月前
|
消息中间件 Shell 数据处理
rocket mq 查看消费进度,消息堆积,清除堆积数据命令
该内容是关于RocketMQ的消费进度管理和堆积数据处理的指导。首先,需进入RocketMQ的bin目录,然后使用`mqadmin consumerProgress`命令查看消费者或生产者的消费进度。`broker offset`和`consumer offset`的差值表示未消费消息。通过`resetOffsetByTime`命令可重置消费位点来清除堆积数据,未消费消息默认3天后会被丢弃。此外,`CONSUME_FROM WHERE`枚举类定义了消费起点选项,包括从最后、最开始或指定时间点消费。
1240 3
|
5月前
|
消息中间件 JavaScript Java
MQ产品使用合集之视觉智能平台人脸搜索1:N怎么更新人脸数据
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
下一篇
无影云桌面