将来自微服务的日志汇总到单个 Web 界面

将来自微服务的日志汇总到单个 Web 界面

我想知道是否存在一个项目,可以收集来自一组微服务的所有日志并在 Web 界面上跟踪它们。目前所有的日志解决方案似乎都忽略了实时查看。

我正在使用 kubernetes,服务在 stdout 上输出 - 我想象我会使用 fluentd 或类似的东西作为传输。日志可以进入 redis 或类似的东西,然后通过一个非常简单的 API 访问,该 API 发送最近 5 分钟的日志,然后每秒更新一次(或一些 websocket magic)。

我所寻找的效果类似于'tail -f /var/log/messages'

有什么建议么?

干杯,

安德鲁

答案1

promtail => loki => grafana就是为此而制作的。

将 docker 日志记录驱动程序设置为 journald,并要求 promtail 从 journald 中抓取日志,最终提供给 loki 实例

使用 grafana 实例,您将能够检查特定时间范围内的日志,甚至可以转到“实时”分析

答案2

安德鲁,您可能会发现一些有趣的工具。

只是记录

  • 吴飞用于聚合 Kubernetes 日志。

此工具将根据开发人员的需求将每个 Pod 的 Kubernetes 日志写入文件或标准输出,具体到容器级别,并且还能够记录在命名空间中启动的新 Pod。有一个通知器,用于通知 wufei 何时启动新 Pod。

  • 库贝泰尔是一个小型 bash 脚本,可让您将来自多个 pod 的日志聚合到一个流中。初始 Kubetail 版本没有过滤或突出显示功能,但有一个额外的 Kubetail在 Github 上。这可以使用多尾工具形成并执行日志着色。

使用 UI 进行记录

  • Fluentd+Elasticsearch+Kibana 是 Kubernetes 集群上非常强大的日志聚合系统。“如何”

  • 阿波罗是一款开源应用程序,为团队提供自助服务 UI,用于创建服务并将其部署到 Kubernetes。Apollo 允许操作员一键查看日志并将部署恢复到任何时间点。Apollo 具有灵活的部署权限模型。每个用户只能部署自己需要部署的内容。

如果您一直在寻找类似的东西,请告诉我。

相关内容