我想知道是否存在一个项目,可以收集来自一组微服务的所有日志并在 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 具有灵活的部署权限模型。每个用户只能部署自己需要部署的内容。
如果您一直在寻找类似的东西,请告诉我。