MQTT 代理 - Mosquitto 事件记录

问题描述 投票:0回答:2

是否可以在 Ubuntu 12.04 上使用 MQTT Broker Mosquitto 将所有事件(例如发布到所有频道的消息、订阅、客户端连接/断开连接和错误)记录到带有时间戳的日志文件中,然后让程序将其插入到Mongodb 或 SQL 数据库?

如果是这样,这是如何实现的?

mongodb logging mqtt database
2个回答
0
投票

AFAIK 现在用蚊子是不可能的。对于这样的用例,我建议使用 MQTT 代理,它有一个插件和消息拦截系统,如HiveMQ。要查看所有交互,可以使用一些开源插件,例如 Message Log Plugin。源代码也可以在 Github 上找到。

写例如到数据库的消息,看看这篇博文,这应该可以帮助您入门。

请注意,我可能有偏见,因为我在 HiveMQ 上工作。


0
投票

是的,你可以做到这一点。

您可以通过执行以下操作将时间戳数据添加到 Mosquitto 输出中:

mosquitto_sub -v -t '#' | xargs -d$' '-L1 sh -c '日期“+%D %T $0”'

您显然也可以通过执行以下操作将其输出到文本文件:

mosquitto_sub -v -t '#' | xargs -d$' ' -L1 sh -c '日期 "+%D %T $0"' > /var/tmp/My_Mosquitto.log

您可以通过以下方式查看日志文件:

cat /var/tmp/My_Mosquitto.log

然后你必须写一个 php 脚本来读取这个文本文件并将数据添加到数据库表中。

另一个(好得多)选项是使用 node.js 将所有 MQTT 数据记录到 mysql 数据库表中。整个互联网上都有如何做到这一点的例子——我就是这样做的。

© www.soinside.com 2019 - 2024. All rights reserved.