我在集群中有多个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
我认为您的表达式不匹配,因为您在使用单引号时使用了双转义符。要么尝试去掉双转义符,要么使用双引号。