Kubernetes:如何将 Promtail 设置为 sidecar 以读取自定义日志路径

Posted

技术标签:

【中文标题】Kubernetes:如何将 Promtail 设置为 sidecar 以读取自定义日志路径【英文标题】:Kubernetes: How to setup Promtail as a sidecar in order to read custom log paths 【发布时间】:2021-12-12 06:35:22 【问题描述】:

有谁知道如何配置 Promtail 以监视和跟踪 Kubernetes pod 中的自定义日志路径?我有一个部署,它在像/var/log/myapp 这样的目录中创建自定义日志文件。我找到了一些文档here,上面写着将 Promtail 作为 sidecar 部署到要从中收集日志的容器中。我希望有人能解释这种方法在实践中是如何工作的。是否需要作为 sidecar 来完成,还是可以作为 Daemonset 来完成?或者,如果您有其他已被证明有效的解决方案,请给我举个例子。

【问题讨论】:

您可以找到有用的 Medium 文章,其中包含 Sidecar 的示例:medium.com/bb-tutorials-and-thoughts/… 你好@atlee19。有更新吗? @WytrzymałyWiktor 我发现这个舵图有助于让它工作:github.com/giantswarm/simple-logger 【参考方案1】:

发布评论作为社区 wiki 答案以获得更好的可见性:


以下信息来自 atlee19 提供的 GitHun repo 中的 README.md:

本文档假设

您已经部署了 loki 和 grafana。安装请参考官方文档

您要抓取的日志文件是 JSON 格式

这个 Helm 图表部署了一个带有 2 个容器的应用程序 pod: - 一个 Golang 应用程序,在一个单独的文件中写入日志。 - 读取该日志文件并将其发送给 loki 的 Promtail。

文件路径可以通过./helm/values.yaml文件更新。

sidecar.labels 是一张地图,您可以在其中添加标签,这些标签将添加到 Loki 中的日志条目中。

例子:

Logfile 位于/home/slog/creator.log 添加标签 job: promtail-sidecar test: golang
sidecar:
  logfile:
    path: /home/slog
    filename: creator.log
  labels:
    job: promtail-sidecar
    test: golang

【讨论】:

你好@atlee19。如果可以解决您的问题,请考虑 accepting the answer。

以上是关于Kubernetes:如何将 Promtail 设置为 sidecar 以读取自定义日志路径的主要内容,如果未能解决你的问题,请参考以下文章

Promtail:如何从文件名中删除时间戳?

如何在 Promtail 中解析嵌套的 json

如何使用 Promtail / Loki - AlertManager 为我的日志中的每个错误发送警报?

Helm 图表忽略配置文件或给定键值

使用 Loki 实现 Kubernetes 容器日志监控

使用 Loki 实现 Kubernetes 容器日志监控