EMQX 是一款强大的开源 MQTT Broker,广泛应用于物联网领域,用于管理数百万台设备的连接和消息传输。在日常使用中,尤其是当涉及到大规模设备的管理时,日志分析成为定位问题、优化性能的关键工具。
无论是追踪设备连接问题,分析消息传输频率,还是评估服务端 ACL 的性能表现,日志都是获取原始数据的重要来源。然而,EMQX 生成的日志文件往往非常庞大且复杂,手动分析这些日志不仅耗时费力,还容易遗漏重要信息。因此,一个自动化的日志解析脚本显得尤为必要。

这里提供近期我自己使用的基于 Python 编写的 EMQX 日志解析脚本。这个 Python 脚本的主要功能是解析 EMQX 集群日志,并对设备在线时间、消息传输频率、MQTT 连接状况等关键数据进行统计分析。
脚本GitHub地址:https://github.com/yibiner/parse-emqx-log
脚本的主要功能:
1、支持 EMQX 集群日志的时间合并:脚本能够对多个日志文件进行按时间顺序的合并处理,使得跨多个节点的日志可以统一分析。
2、统计设备在线时长及 MQTT 消息传输频次:脚本能够精确计算设备在指定时间段内的在线时长,并统计发送和接收的 MQTT 消息数量及频率。例如,以下输出结果展示了设备在日志监听期间的在线占比,以及最大每秒和每 15 秒的消息传输情况:
3、MQTT 连接与订阅主题统计:通过分析日志中的连接信息,脚本能够统计出设备的连接稳定性、连接延迟等指标。此外,订阅主题的统计能够显示出设备对不同主题的关注度,以及 EMQX 服务器的订阅处理效率:
4、按 Topic 统计消息发送情况:脚本可以按不同的 Topic 统计接收和发送的 MQTT 消息数量,帮助你了解各个 Topic 的流量分布情况。这对于分析热点主题、优化主题设计具有重要意义:
5、图表可视化:为了更直观地展示数据,脚本还支持生成发送和接收消息数的折线图,以及设备消息间隔的柱状图。这些可视化工具能够帮助你快速识别数据中的趋势和异常,从而更好地理解设备的运行状态。(绘制图表依赖 pyecharts ,请自行安装)


- 作者:Yibin
- 链接:https://yibin.dev/article/a2c44abf-a23f-47f3-9da4-43cc6fff4249
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章







