原则:
根据监控内容和场景,选择合适的工具
工具列表
Prometheus
Docker 1.13在容器,镜像和其他守护进程状态中添加了一个具有基本指标的实验性Prometheus式端点。此支持仅在实验版本中可用。
- 对于Docker for Mac,在状态菜单中单击Docker图标
- 选择按钮Preferences…, Daemon, Advanced
- 更新 daemon 设置:
{
"metrics-addr" : "0.0.0.0:1337",
"experimental" : true
}
- 重启docker
- 显示使用的指标的完整列表:curl http://localhost:1337/metrics
- 显示引擎指标列表:curl http://localhost:1337/metrics | grep engine
Prometheus node scraper
Prometheus 通过搜取这些目标上的HTTP端点,从受监控的目标收集指标。由于Prometheus 也以相同的方式公开数据,所以它也可以扫描和监测自己的健康。
- 创建一个新的目录prometheus并更改目录
- 创建一个prometheus.yml
# A scrape configuration scraping a Node Exporter and the Prometheus server
# itself.
scrape_configs:
# Scrape Prometheus itself every 5 seconds.
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
这将是将在9090端口启动的Prometheus容器的采集指标。
3.启动Prometheus 容器:
docker run \
-d \
--name metrics \
-p 9090:9090 \
-v `pwd`:/etc/prometheus \
prom/prometheus
4.Prometheus 工作面板访问: http://localhost:9090
5.显示指标列表
6.选择http_request_duration_microseconds
7.从控制台转到图形化界面
- 将持续时间从1小时改为5米
8.停止容器:docker container rm -f metrics
cAdvisor
cAdvisor(Container Advisor)提供运行容器的资源使用和性能特征。
1. 运行cAdvisor
docker container run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest
2.访问工作面板:http://localhost:8080
3. 显示高级CPU和内存利用率。有关CPU,内存,网络和文件系统使用情况的详细信息,请参见同一页面。 CPU使用情况如下所示:
4.所有Docker容器都在/docker 子容器中
点击任何容器并查看有关容器的更多细节。
注意:cAdvisor样本每隔一秒一次,只有一分钟的历史数据。从cAdvisor生成的数据可以导出到InfluxDB。或者,您可以使用Grafana前端来显示数据