如何使用Grafana Agent采集已停止的Docker容器?
问题
使用Grafana Agent的Prometheus docker_sd_config配置采集Docker容器时,仅能采集运行中的容器,无法发现已停止的容器,导致无法触发对应告警。不想用static_config手动维护容器列表,希望通过服务发现实现需求。
现有配置及环境信息如下:
采集配置
configs: - name: agent scrape_configs: - job_name: docker metrics_path: '/prometheus' docker_sd_configs: - host: unix:///var/run/docker.sock relabel_configs: - source_labels: [__meta_docker_port_private] regex: '8081' action: keep - source_labels: ['__meta_docker_container_name'] regex: '/(.*)' target_label: 'job'
告警规则
- alert: ServerDown expr: up{} < 1 for: 15m annotations: summary: Server down
当前容器状态
f8070378f38b gitlab.mycomp.com:5005/test/my-app1:latest "java -jar app.jar" 2 weeks ago Up 12 hours (healthy) 0.0.0.0:8205->8081/tcp, :::8205->8081/tcp my-app1 c4a5042b9fcf gitlab.mycomp.com:5005/test/my-app2:latest "java -jar app.jar" 2 weeks ago Exited (143) 40 seconds ago my-app2
解决方案
1. 修改Docker服务发现配置,包含已停止容器
默认docker_sd_configs仅发现running状态的容器,需添加filters参数指定包含exited状态的容器:
docker_sd_configs: - host: unix:///var/run/docker.sock filters: - name: status values: ["running", "exited"]
2. 调整Relabel规则,避免过滤已停止容器
原配置中通过__meta_docker_port_private=8081的规则保留容器,但已停止的容器无端口元数据,会被过滤。需根据业务场景调整relabel逻辑:
- 方案一:基于容器名称/镜像筛选
如果目标容器有统一命名或镜像规则,可替换端口筛选逻辑:relabel_configs: # 保留名称匹配my-app前缀的所有容器(运行中和已停止) - source_labels: [__meta_docker_container_name] regex: '/my-app.*' action: keep - source_labels: ['__meta_docker_container_name'] regex: '/(.*)' target_label: 'job' - 方案二:混合筛选(运行容器按端口+已停止容器全保留)
若需同时保留运行时带8081端口的容器,以及所有已停止容器:relabel_configs: # 保留运行中且私有端口为8081的容器 - source_labels: [__meta_docker_container_status, __meta_docker_port_private] regex: 'running;8081' action: keep # 保留所有已停止的容器 - source_labels: [__meta_docker_container_status] regex: 'exited' action: keep - source_labels: ['__meta_docker_container_name'] regex: '/(.*)' target_label: 'job'
3. 验证告警触发逻辑
已停止容器被服务发现后,Grafana Agent尝试采集时会失败,对应的up指标会变为0,满足告警规则up{} <1,等待15分钟后会触发ServerDown告警。
注意事项
- 添加
status=exited筛选后,需定期清理长期停止的无用容器,避免服务发现列表冗余。 - 调整relabel规则时,需确保逻辑符合业务监控范围,避免引入无关容器。
内容的提问来源于stack exchange,提问作者dur
相关产品推荐
相关产品推荐

