是否可以在Ubuntu 12.04上使用MQTT Broker Mosquitto将所有事件(例如发布到所有通道的消息,订阅,客户端连接/断开连接和错误)记录到带有时间戳的日志文件中然后具有程序将此插入Mongodb或SQL数据库?
如果是这样,怎么能实现呢?
答案 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上工作。