聚合来自嵌入式设备的日志

物联网 数据传输
2021-06-05 11:19:27

我正在尝试将来自多个嵌入式设备的日志集中在一个集中位置,以便能够对其进行分析。

这是系统的样子:

  • 我有许多嵌入式设备。
  • 一些部署在现场,系统可能无法访问互联网。所以我需要要求客户转储日志并将它们发送给我们。
  • 除了现场按客户部署外,还有一台服务器在云上为多个客户运行。
  • 设备使用 grpc 与服务器通信。
  • 我也安装了 RabbitMQ。

我如何处理日志:

  • 对它们运行通用分析
  • 收到错误报告后,请客户提供日志以进行调查。

我应该如何从设备收集日志?在服务器中创建端点?让设备发布日志到rabbitmq?将本地 RabbitMQ 实例部署到设备并从那里收集日志?使用其他一些日志堆栈?

1个回答

有Apache Flume、logstash等解决方案来处理收集日志。如果您想自己托管。如果您想要现成的解决方案,请查看 logz.io

就您而言,也许最简单的方法是将它们作为 JSON 或 CSV 条目写入文件中,并最终将这些文件直接从设备或通过某些上传器通过 USB 输入到 S3 中。然后,您可以从 cli 运行 S3 select 命令,或者如果您想要进行大型处理,您可以使用 AWS Athena。

还有其他选项,例如将文件加载到 elastisearch 中,然后使用 kibana。S3 选项将允许您稍后扩展,因为您可以稍后对 S3 事件执行其他操作,包括将这些数据放入其他工具中。