38 lines
1.5 KiB
YAML
38 lines
1.5 KiB
YAML
server:
|
|
http_listen_port: 9080
|
|
grpc_listen_port: 0
|
|
|
|
positions:
|
|
filename: /mnt/promtail/positions.yaml # Pfad im gemounteten Volume
|
|
|
|
clients:
|
|
- url: http://loki:3100/loki/api/v1/push # Sendet Logs an den Loki-Service
|
|
|
|
scrape_configs:
|
|
- job_name: docker_containers
|
|
docker_sd_configs:
|
|
- host: unix:///var/run/docker.sock
|
|
refresh_interval: 5s
|
|
relabel_configs:
|
|
# Extrahiere Container-Name (ohne '/')
|
|
- source_labels: ['__meta_docker_container_name']
|
|
regex: '/(.*)'
|
|
target_label: 'container_name'
|
|
# Behalte den Log-Stream (stdout/stderr) als Label
|
|
- source_labels: ['__meta_docker_container_log_stream']
|
|
target_label: 'logstream'
|
|
# Extrahiere Service-Name aus Swarm-Label
|
|
- source_labels: ['__meta_docker_container_label_com_docker_swarm_service_name']
|
|
target_label: 'service_name'
|
|
# Extrahiere Task-Name aus Swarm-Label
|
|
- source_labels: ['__meta_docker_container_label_com_docker_swarm_task_name']
|
|
target_label: 'task_name'
|
|
# Füge 'instance'-Label mit dem Hostnamen des Tasks hinzu (Annäherung an Node-Namen)
|
|
- action: replace
|
|
source_labels: ['container_name'] # Braucht ein existierendes Label als Quelle
|
|
target_label: 'instance'
|
|
replacement: ${HOSTNAME} # Nutzt Swarm HOSTNAME Variable
|
|
# Verwerfe Logs von Promtail selbst (Regex ggf. an Stacknamen anpassen)
|
|
- source_labels: ['container_name']
|
|
regex: 'monitoring_promtail.*' # Passe 'monitoring' an deinen Stack-Namen an!
|
|
action: drop |