nginx - 在 Loki 中删除部分日志

标签 nginx grafana grafana-loki promtail

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

我还使用 Nginx helm chart 设置了 Nginx .

Promtail 可以很好地将日志提取到 Loki 中,但我想自定义日志的外观。具体来说,我想删除日志的一部分,因为它在尝试使用 logfmtjson 解析它时会产生错误(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/

相关文章:

docker - 为什么 Loki 的 Docker Driver Client 在一段时间后停止记录?

azure - 从 Loki 下载日志

sql - 在组织 InfluxDB 数据库时,这两种方法中哪一种更受欢迎?

php - 我应该使用 Elastic Search 而不是 MySQL 作为我的数据存储吗?

php - Docker - 在 docker 容器外使用 PHP 创建目录

angular - Docker Nginx Angular2/Angular 路由

grafana - 如何仅在 influxdb 中对超过 14 天的数据进行下采样并将其保存在与原始数据相同的表中?

Grafana-web 可视化只读/信息亭模式,用于集成到企业应用程序中

reactjs - 为什么迁移到 https 会中断客户端和服务器之间的通信?