移除洛基的一部分原木



我已经用grafana/loki-stack安装了Grafana、Loki、Promtail和Prometheus。

我也设置了Nginx和Nginx掌舵图表。

Promtail正在将原木摄入Loki中,但我想定制我的原木外观。具体来说,我想删除日志的一部分,因为它在尝试使用logfmtjson(分别为Error: 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

我想删除上面写着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

Promtail应该配置为用replace阶段替换字符串。

下面是一个示例配置,它删除了来自命名空间ingress的所有日志的stdout F部分。

promtail:
enabled: true
pipelineStages:
- docker: {}
- match:
selector: '{namespace="ingress"}'
stages:
- replace:
expression: "(stdout F)"
replace: ""

具体来说,此示例适用于grafana/loki-stack图表。

相关内容

  • 没有找到相关文章

最新更新