Promtail Pipelines
Auf dieser Seite finden sich gesammelte Vorlagen für Pipelines.
Dies sind lediglich Vorlagen und können abweichen, wenn die Konfiguration für das Loggen geändert wurde oder eine andere Software-Version eine andere Syntax loggt! |
Bei der Vergabe von Dynamische Labels sind zu unterlassen, um eine unnötig hohe Kardinalität zu vermeiden. |
Siehe auch:
Wenn bereits Daten gesammelt wurden, bietet das Tool logcli
eine gute Orientierung:
logcli-linux-amd64 series --analyze-labels {}
Im folgenden Beispiel sollten einige Labels (mindestens request
und remote_addr
) überdacht werden, da diese dynamische Werte haben können, die bspw. durch anfragende Clients belegt werden (potenziell sehr viele verschiedene Werte). Alternativ wäre auch thread
ein guter Kandidat.
Total Streams: 9428
Unique Labels: 21
Label Name Unique Values Found In Streams
request 5936 5971
systemd_unit 895 3130
thread 177 196
remote_addr 63 6050
http_user_agent 23 5971
host 18 9428
syslog_identifier 18 3156
logger 10 196
filename 8 6272
status 8 6050
job 7 9427
level 7 3350
app 6 9428
project 6 9428
f_end 5 79
b_server 5 79
b_end 5 79
part 4 3372
stage 3 9428
method 2 5971
component 1 1
INUBIT
Trace
pipeline_stages:
- match:
selector: '{app="inubit", part="tomcat"}'
stages:
- multiline:
firstline: '^\d{2}-\w+-\d{4} \d{2}:\d{2}:\d{2}\.\d{3}?'
max_wait_time: 3s
max_lines: 512
- regex:
expression: '(?P<local_time>\d{2}-\w+-\d{4} \d{2}:\d{2}:\d{2}\.\d{3}) (?P<level>\w+) \[(?P<thread>\w+)\] (?P<logger>[\w\d.]+) (?P<msg>(?s:.*))?'
- labels:
level:
thread:
logger:
BPC
Karaf
pipeline_stages:
- match:
selector: '{app="bpc", part="karaf"}'
stages:
- multiline:
firstline: '^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2},\d{3}?'
max_wait_time: 3s
max_lines: 512
- regex:
expression: '^(?P<time>\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2},\d{3}) \| (?P<level>[\w]{1,5})\s+\| (?P<action>\S+) \| (?P<component>\S+)\s+\| (?P<bundle_id>\d+) \- (?P<bundle_name>\S+) \- (?P<bundle_version>[\d.]+) \| (?P<msg>(?s:.*))?'
- labels:
level:
node:
component:
Elasticsearch
pipeline_stages:
- match:
selector: '{app="haproxy"}'
stages:
- regex:
expression: '^(?P<local_time>\w+\s+\d+ [\d\d:]+:\d\d) (?P<host>\w+) (?P<process>\w+)\[(?P<pid>\d+)\]: (?P<remote_addr>[\w\.]+):(?P<remote_port>\d+) \[(?P<time>.*)\] (?P<f_end>[\w\~\-]+) (?P<b_end>[\w-]+)\/(?P<b_server>[<>\w\.-]+) (?P<tq>[\d\-]+)\/(?P<tw>[\d\-]+)\/(?P<tc>[\d\-]+)\/(?P<tr>[\d\-]+)\/(?P<tt>[\d\-]+) (?P<status>\d+) (?P<bytes>\d+) (?P<req_cookie>\S?) (?P<res_cookie>\S?) (?P<t_state>[\w\-]+) (?P<actconn>\d+)\/(?P<feconn>\d+)\/(?P<beconn>\d+)\/(?P<srv_conn>\d+)\/(?P<retries>\d+) (?P<srv_queue>\d+)\/(?P<backend_queue>\d+) \{?(?P<req_headers>[^}"]*)\}? ?"(?P<request>[^"]*)"?'
- labels:
f_end:
b_end:
b_server:
status:
HAProxy
pipeline_stages:
- match:
selector: '{app="haproxy"}'
stages:
- regex:
expression: '^(?P<local_time>\w+\s+\d+ [\d\d:]+:\d\d) (?P<host>\w+) (?P<process>\w+)\[(?P<pid>\d+)\]: (?P<remote_addr>[\w\.]+):(?P<remote_port>\d+) \[(?P<time>.*)\] (?P<f_end>[\w\~\-]+) (?P<b_end>[\w-]+)\/(?P<b_server>[<>\w\.-]+) (?P<tq>[\d\-]+)\/(?P<tw>[\d\-]+)\/(?P<tc>[\d\-]+)\/(?P<tr>[\d\-]+)\/(?P<tt>[\d\-]+) (?P<status>\d+) (?P<bytes>\d+) (?P<req_cookie>\S?) (?P<res_cookie>\S?) (?P<t_state>[\w\-]+) (?P<actconn>\d+)\/(?P<feconn>\d+)\/(?P<beconn>\d+)\/(?P<srv_conn>\d+)\/(?P<retries>\d+) (?P<srv_queue>\d+)\/(?P<backend_queue>\d+) \{?(?P<req_headers>[^}"]*)\}? ?"(?P<request>[^"]*)"?'
- labels:
f_end:
b_end:
b_server:
status: