Prometheus - 如何监控其他 docker 容器
Prometheus - how to monitor other docker containers
我想使用 Prometheus 来监控我的 docker 容器。我可以 运行 Prometheus 和 Grafana 但我不知道如何指示它监视其他 docker 容器。
如果可能的话,我想看一些例子。例如,我的主机上有 Ubuntu 容器 运行ning 以及 Gentoo 容器。我如何告诉 Prometheus 监控它们,或者监控内部的某些应用程序 运行ning?
预先感谢您的时间和耐心等待我。
您可以使用 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 来查看它。您可以导入 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 来监控我的 docker 容器。我可以 运行 Prometheus 和 Grafana 但我不知道如何指示它监视其他 docker 容器。 如果可能的话,我想看一些例子。例如,我的主机上有 Ubuntu 容器 运行ning 以及 Gentoo 容器。我如何告诉 Prometheus 监控它们,或者监控内部的某些应用程序 运行ning? 预先感谢您的时间和耐心等待我。
您可以使用 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 来查看它。您可以导入 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 存储库中找到的监控输出。