删除 Loki 中日志的一部分

eik*_*ooc 3 nginx grafana grafana-loki promtail

我已经安装了 Grafana、Loki、Promtail 和 Prometheus 以及grafana/loki-stack.

我还使用Nginx Helm Chart设置了 Nginx 。

Promtail 正在将日志很好地摄取到 Loki 中,但我想自定义日志的外观。具体来说,我想删除日志的一部分,因为它在尝试使用logfmtor jsonError: LogfmtParserErrError: JsonParserErr分别)解析它时会产生错误。

日志如下所示:

2022-02-21T13:41:53.155640208Z stdout F timestamp=2022-02-21T13:41:53+00:00 http_request_method=POST http_response_status_code=200 http_response_time=0.001 http_version=HTTP/2.0 http_request_body_bytes=0 http_request_bytes=63
Run Code Online (Sandbox Code Playgroud)

我想删除它所说的部分,stdout F这样日志将如下所示:

2022-02-21T13:41:53.155640208Z timestamp=2022-02-21T13:41:53+00:00 http_request_method=POST http_response_status_code=200 http_response_time=0.001 http_version=HTTP/2.0 http_request_body_bytes=0 http_request_bytes=63
Run Code Online (Sandbox Code Playgroud)

我发现在摄取方面可能是 Promtail 的问题,但是是否也可以在 Loki 中进行 LogQL 查询来替换该字符串?如何设置 Promtail 配置来实现所需的行为?

ill*_*lug 7

根据文档,更好的方法是启用 cri 管道阶段而不是 docker 阶段。假设您正在从最近使用 CRI 的 kubernetes 安装中获取日志。

https://grafana.com/docs/loki/latest/clients/promtail/configuration/#cri