gpt4 book ai didi

docker - Prometheus - 如何监控其他 docker 容器

转载 作者:IT老高 更新时间:2023-10-28 21:24:51 28 4
gpt4 key购买 nike

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

最佳答案

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

一个 very good article关于设置 Prometheus 来监控 Docker 正在使用这种架构:

cAdvisor with prometheus

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

要从 cAdvisorPrometheus 收集数据,您必须编辑 configuration file (prometheus.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

关于docker - Prometheus - 如何监控其他 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43999394/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com