您可以使用cadvisor,它使容器用户了解其正在运行的容器的资源使用情况和性能特征 .
very good article关于设置 Prometheus 以监控 Docker 正在使用此架构:
简而言之,我们的想法是使用 cAdvisor 收集有关容器的信息,并将它们放入 Prometheus 数据库中 . Grafana 将查询 Prometheus 数据库并呈现监控图表/值 .
要从 cAdvisor 收集数据到 Prometheus ,您必须编辑configuration file( 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
我目前正在使用此体系结构来监视 生产环境 中的 docker swarm mode 集群,这里是您可以在github存储库中找到的监视的输出 .