普罗米修斯-如何监控其他docker容器

普罗米修斯-如何监控其他docker容器,docker,prometheus,Docker,Prometheus,我想用普罗米修斯来监视我的码头工人。我可以使用Grafana运行Prometheus,但我不知道如何指示它监视其他docker容器。 如果可能的话,我想看一些例子。例如,我的主机上运行着Ubuntu容器以及Gentoo容器。我如何告诉普罗米修斯监视它们,或者监视内部运行的某些应用程序? 提前感谢您的时间和耐心。您可以使用,它让容器用户了解其运行容器的资源使用情况和性能特征 关于设置普罗米修斯来监控Docker的一个例子是使用以下架构: 简单地说,这个想法是使用cAdvisor收集有关容器的信息

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

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

关于设置普罗米修斯来监控Docker的一个例子是使用以下架构:

简单地说,这个想法是使用cAdvisor收集有关容器的信息,并将它们放入Prometheus数据库中Grafana将查询Prometheus数据库并呈现监控图表/值

要从cAdvisorPrometheus收集数据,您必须编辑(
Prometheus.yml
):

当您在普罗米修斯中有一些数据时,您必须使用格拉法纳来查看这些数据。可以导入到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
然后尝试导入这个

我目前正在使用此体系结构监控生产中的
docker swarm模式
集群,下面是您可以在github存储库中找到的监控输出


谢谢!!!我会检查,试试,然后告诉你。我正在寻找一款简单但功能强大的产品,相信普罗米修斯是一个不错的选择。不客气,我正在全球3个生产站点使用此堆栈(+node exporter/alert manager),我非常欣赏仅部署
收集器
容器(cAdvisor/node exporter)的简单性在hosts中,可以看到像魔术一样出现的图形!谢谢分享这个答案。在我的用例中也帮助了我。因此,我已经设法根据需要进行配置。只是我感到困惑,需要弄清楚如何在触发某个事件(警报)时配置电子邮件通知—例如,某个docker容器因任何原因停机。您应该在StackOverflow中提出另一个问题,以便任何人都可以回答您(如果这个答案有用,请不要忘记接受)。
git clone https://github.com/stefanprodan/dockprom