我正在玩 Grafana 和 Promtail。我有以下设置:
version: "3.3"
networks:
loki:
services:
loki:
image: grafana/loki:k88-c660a7e
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
networks:
- loki
promtail:
image: grafana/promtail:k88-c660a7e
volumes:
- /var/lib/docker/containers:/var/lib/docker/containers
- /var/run/docker.sock:/var/run/docker.sock
- ./promtail-config.yaml:/etc/promtail/promtail-config.yaml
command: -config.file=/etc/promtail/promtail-config.yaml
networks:
- loki
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
volumes:
- ./grafana-config.yaml:/etc/grafana/provisioning/datasources/default.yaml
networks:
- loki
mycontainer: # Prints debug output to stdout
build: .
labels:
- "mylabel=true"
networks:
- loki
我想要实现的目标:
- 让 Promtail 忽略除具有
mylabel=true
的容器之外的所有其他容器
- 让 Grafana 在日志浏览器中显示一个以容器名称作为标签的标签
我当前的 promtail-config.yaml
抓取配置:
scrape_configs:
- job_name: containers
docker_sd_configs:
- host: unix:///var/run/docker.sock
relabel_configs: # For some reason this drops all logs
- source_labels: [__meta_docker_container_label_mylabel]
regex: "true"
action: keep
static_configs:
- targets:
- localhost
labels:
job: containerlogs
__path__: /var/lib/docker/containers/*/*-json.log
pipeline_stages:
- docker:
我该如何改变它来实现它?
编辑:这可能会出现 - 对 docker_sd_configs
选项的支持尚未正式发布,但我有 confirmed with a contributor向项目表明它可用并且实际上在他们的云中运行。
最佳答案
使用 filters
进行 docker 标签选择。使用 relabel_configs
根据元值设置额外的标签
server:
http_listen_address: 0.0.0.0
http_listen_port: 9080
positions:
filename: /var/run/promtail/positions.yaml
clients:
- url: https://[YOUR_LOKI_SERVER_NAME]/loki/api/v1/push
tenant_id: [YOUR_TENANT_ID]
scrape_configs:
- job_name: containers
docker_sd_configs:
- host: unix:///var/run/docker.sock
refresh_interval: 15s
filters:
- name: label
values: ["mylabel=true"]
pipeline_stages:
- docker: {}
- static_labels:
job: "promtail"
relabel_configs:
- source_labels: ['__meta_docker_container_name']
regex: '/(.*)'
target_label: 'container'
关于docker - Promtail - 基于带有 docker-compose 标签的服务发现和 Grafana 日志浏览器中的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71516943/