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

ivo*_*ivo 7 docker prometheus

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

Fra*_*rel 11

您可以使用cadvisor,它为容器用户提供对其运行容器的资源使用和性能特征的理解.

一个很好的文章有关设置普罗米修斯监测泊坞窗就是采用这种架构:

与prometheus的cAdvisor

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

要从cAdvisor收集数据到Prometheus,您必须编辑配置文件(prometheus.yml):

scrape_configs:
  - job_name: 'cadvisor'
    scrape_interval: 5s
    static_configs:
      - targets: ['cadvisor:8080']
Run Code Online (Sandbox Code Playgroud)

当你在普罗米修斯有一些数据时,你必须使用Grafana来查看它.监视json可以导入Grafana的查询的(简短)示例如下:

获取用户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
    }
  ]
Run Code Online (Sandbox Code Playgroud)

获取使用的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
    }
  ]
Run Code Online (Sandbox Code Playgroud)

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

git clone https://github.com/stefanprodan/dockprom
Run Code Online (Sandbox Code Playgroud)

并尝试导入这个Grafana json.

我目前正在使用此体系结构来监视docker swarm mode生产中的集群,这里是您可以在github存储库中找到的监视的输出.

普罗米修斯与grafana