如何抓取停止的 Docker 容器?

问题描述 投票:0回答:1

我使用 Grafana Agent 来抓取我的所有 Docker 容器。因此,我使用 Prometheus 的

<docker_sd_config>
。它适用于正在运行的 Docker 容器,但不适用于已停止的 Docker 容器。没有发送警报。

配置

  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

Docker 容器

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

研究

  • 如果我使用
    <static_config>
    它可以工作,但我不想手动列出所有 Docker 容器。我想使用服务发现。

问题

如何使用 Grafana Agent 抓取已停止的 Docker 容器?

docker prometheus alert grafana-agent
1个回答
0
投票

遗憾的是,似乎没有简单的开关可以实现这一点。用于检索容器列表的 API (https://docs.docker.com/engine/api/v1.40/#tag/Container) 可以选择显示所有容器,但我没有看到选项在

docker_sd_configs
中使用它。但是,有一个选项可以指定
filters
。我不确定它是否有效,但也许如果您可以创建这样一个过滤器,它将覆盖所有容器。像这样的东西:

docker_sd_configs:
- host: unix:///var/run/docker.sock
  # Optional filters to limit the discovery process to a subset of available
  # resources.
  # The available filters are listed in the upstream documentation:
  # https://docs.docker.com/engine/api/v1.40/#operation/ContainerList
  filters:
  # Not sure which is correct, try either this:
  - name: status
    values: created, restarting, running, removing, paused, exited, dead
  # or this:
  - name: status
    values: created
  - name: status
    values: restarting
  - name: status
    values: running
  - name: status
    values: removing
  - name: status
    values: paused
  - name: status
    values: exited
  - name: status
    value: dead
© www.soinside.com 2019 - 2024. All rights reserved.