1.部署cAdvisor
cAdvisor是一个开源的监控单节点Docker资源占用的数据收集工具,相比于大部分容器监控,它的资源消耗较低。在本案例中,它的作用是”采集数据”。
1 2 3 4 5 6 7 8 9 10
| $ docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:ro \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/dev/disk/:/dev/disk:ro \ --publish=8090:8080 \ --detach=true \ --name=cadvisor \ google/cadvisor:v0.24.1
|
2.部署Prometheus
Prometheus是一个开源的系统监控告警工具,在本案例中,它的作用是”数据源”。
1 2 3 4 5 6 7 8 9 10 11 12
| $ wget https://github.com/prometheus//releases/download/v2.8.0/prometheus-2.8.0.linux-amd64.tar.gz $ tar -zxvf prometheus-2.8.0.linux-amd64.tar.gz $ cd prometheus-2.8.0.linux-amd64; vim prometheus.yml static_configs: - targets: ['本机IP:9090'] - job_name: 'docker' static_configs: - targets: - "本机IP:8090" - "本机IP:8090" $ cp prometheus promtool /usr/local/bin/ $ nohup prometheus --config.file=./prometheus.yml > prometheus.log 2>&1 &
|
3.部署Grafana
Grafana是一个开源的监控数据可视化平台,在本案例中,它的作用是”数据展示”。
1 2 3 4 5 6
| $ wget https://dl.grafana.com/enterprise/release/grafana-enterprise_8.3.3_amd64.deb $ sudo dpkg -i grafana-enterprise_8.3.3_amd64.deb $ sudo systemctl daemon-reload $ sudo systemctl start grafana-server $ sudo systemctl status grafana-server $ sudo systemctl enable grafana-server.service
|
4.Grafana配置Prometheus数据源
1 2 3 4
| sum(rate(container_cpu_usage_seconds_total{name=~".+"}[1m])) by (name) * 100 # 每个容器CPU占用率统计 container_memory_usage_bytes{image!=""} / 1024 / 1024 # 每个容器内存占用统计(单位:MB) sum(container_fs_usage_bytes) / sum(container_fs_limit_bytes) * 100 # 容器磁盘占用率统计 sum(rate(container_network_transmit_bytes_total{image!=""}[1m])) without (interface) / 1024 / 1024 * 8 # 每个容器网络传输速率(单位:Mb/s)
|