普罗米修斯 – 如何监控其他docker集装箱

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

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

关于设置Prometheus来监视Docker的 一篇很好的文章是使用这个架构:

与prometheus cAdvisor

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

为了从cAdvisor收集数据到Prometheus ,你需要编辑一个configuration文件 ( prometheus.yml ):

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

当你在Prometheus中有一些数据时,你必须使用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 } ] 

获取使用的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仓库中find的监控输出。

与grafana的普罗米修斯