我已经使用 grafana/loki-stack
安装了 Grafana、Loki、Promtail 和 Prometheus .
我还使用 Nginx helm chart 设置了 Nginx .
Promtail 可以很好地将日志提取到 Loki 中,但我想自定义日志的外观。具体来说,我想删除日志的一部分,因为它在尝试使用 logfmt
或 json
解析它时会产生错误(Error: LogfmtParserErr
和错误: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
我想删除它说 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
我发现在摄取方面它可能与 Promtail 相关,但是否也可以在 Loki 中进行 LogQL 查询以仅替换该字符串?以及如何为所需的行为设置 Promtail 配置?
最佳答案
根据文档,更好的方法是启用 cri 管道阶段而不是 docker 阶段。假设您正在从最近使用 CRI 的 kubernetes 安装中获取日志。
https://grafana.com/docs/loki/latest/clients/promtail/configuration/#cri
关于nginx - 在 Loki 中删除部分日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71210935/