普罗米修斯 - 如何监控其他码头集装箱

时间:2017-05-16 10:50:16

标签: docker prometheus

我想使用 Prometheus 来监控 docker 容器。我可以使用 Grafana 运行 Prometheus ,但我不知道如何指示它监视其他docker容器。 如果可能的话,我想看一些例子。例如,我在主机上运行 Ubuntu 容器以及 Gentoo 容器。我如何告诉普罗米修斯监控它们,或者监控一些在里面运行的应用程序? 提前感谢您的时间和对我的耐心。

1 个答案:

答案 0 :(得分:11)

您可以使用cadvisor,它可以让容器用户了解正在运行的容器的资源使用情况和性能特征。

关于设置 Prometheus 以监控 Docker very good article正在使用此架构:

cAdvisor with prometheus

简而言之,我们的想法是使用 cAdvisor 收集有关容器的信息,并将它们放入 Prometheus 数据库中。 Grafana 将查询 Prometheus 数据库并呈现监控图表/值。

要从 cAdvisor 收集数据到 Prometheus ,您必须修改configuration fileprometheus.yml):

scrape_configs:
  - job_name: 'cadvisor'
    scrape_interval: 5s
    static_configs:
      - targets: ['cadvisor:8080']

如果您在 Prometheus 中有一些数据,则必须使用 Grafana 进行查看。监控可以导入 Grafana json查询的(简短)示例如下:

获取用户CPU百分比:

  "targets": [
    {
      "expr": "sum(rate(container_cpu_user_seconds_total{image!=\"\"}[1m])) / count(node_cpu{mode=\"system\"}) * 100",
      "interval": "10s",
      "intervalFactor": 1,
      "legendFormat": "",
      "refId": "A",
      "step": 10
    }
  ]

获取使用的RAM百分比:

  "targets": [
    {
      "expr": "(sum(node_memory_MemTotal) - sum(node_memory_MemFree+node_memory_Buffers+node_memory_Cached) ) / sum(node_memory_MemTotal) * 100",
      "interval": "10s",
      "intervalFactor": 2,
      "legendFormat": "",
      "refId": "A",
      "step": 20
    }
  ]

对于完整的json数据(在此处发布的时间太长),您可以克隆此存储库:

git clone https://github.com/stefanprodan/dockprom

并尝试导入此Grafana json

我目前正在使用这种架构来监控生产中的docker swarm mode集群,这里是您可以在github存储库中找到的监控输出。

prometheus with grafana