MQTT Broker - Mosquitto事件记录

时间:2014-01-26 07:49:27

标签: mongodb logging mqtt database

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

如果是这样,怎么能实现呢?

2 个答案:

答案 0 :(得分:1)

是的,你可以这样做。

您可以通过以下操作将时间戳数据添加到Mosquitto输出,例如:

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

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

mosquitto_sub -v -t'#'| xargs -d $'\ n'-L1 sh -c'date“+%D%T $ 0”'> /var/tmp/My_Mosquitto.log

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

cat /var/tmp/My_Mosquitto.log

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

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

答案 1 :(得分:0)

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

要写例如消息到数据库look at this blog post,这应该可以帮助您入门。

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