搭建一个简单的日志监控平台~
Promtail 是代理,负责收集日志并将其发送给 loki 。
Loki 是主服务器,负责存储日志和处理查询 。
Grafana 用于 UI 展示。
promtail-config.yaml
yamlserver:
http_listen_port: 9080
positions:
filename: /tmp/positions.yaml
clients:
- url: http://loki:3100/loki/api/v1/push
scrape_configs:
- job_name: docker
pipeline_stages:
- docker: {}
# ✅ 从日志路径中提取 container_id
- regex:
expression: '/images/docker/containers/(?P<container_id>[a-f0-9]+)/.*\.log'
# ✅ 把 container_id 提升为 label
- labels:
container_id:
static_configs:
- targets:
- localhost
labels:
job: docker
__path__: /images/docker/containers/*/*.log
注:我的 Docker 目录迁移了,/images/docker 改为自己的 Docker 目录
docker-compose.yaml
yamlservices:
loki:
image: grafana/loki:2.9.0
ports:
- "3100:3100"
promtail:
image: grafana/promtail:2.9.0
volumes:
# - /images/docker/containers:/var/lib/docker/containers:ro
- /images/docker/containers:/images/docker/containers:ro
- /var/run/docker.sock:/var/run/docker.sock
- ./promtail-config.yaml:/etc/promtail/config.yml
grafana:
image: grafana/grafana:latest
ports:
- "3101:3000"
volumes:
- ./grafana-data:/var/lib/grafana
docker compose up -d
进入 3101 端口 Grafana,默认账号密码 admin/admin

Save & test




本文作者:42tr
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!