如何使用prom-tail scrape_configs提取日志级别



我在集群中有多个pod,Promtail被配置为DaemonSet,用于将日志泵送到Loki。但不知道如何从特定的pod日志中为日志级别创建额外的标签,以便在grafana中查询。

来自pod的日志:

[2021-12-14 11:11:11] INFO forcetask[id=pod-0] message2
[2021-12-14 11:11:11] INFO forcetask[id=pod-0] message1

但在Grafana 中查询{app="loki"}时输出

{log="[2021-12-14 11:11:11] INFO forcetask[id=pod-0] message2", stream="stdout", timestamp ="..."}
{log="[2021-12-14 11:11:11] ERROR forcetask[id=pod-0] Error1", stream="stderr", timestamp="..."}

我在Promtail上配置了scrape_congs,如下所示,但没有运气。有人能告诉我我这里缺了什么吗?

scrape_configs:
- job_name: my-custom-labels
pipeline_stages:
- docke: {}
- json:
log: log
stream: stream
timestamp: timestamp
- labels: 
log:
- match:
selector: '{app="loki"}'.    -- this is one of the labels of Loki instance 
stages:
- regex: 
expression: '\[(?P<timestamp>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2})\]\s(?P<level>\w+)\s(?P<message>.*)'
- labels:
level:
- timestamp:
format: RFC3339Nano
source: timestamp

我认为您的表达式不匹配,因为您在使用单引号时使用了双转义符。要么尝试去掉双转义符,要么使用双引号。

最新更新