cAdvisor+Prometheus+Grafana配置容器资源监控

2023-09-04 15:22:29

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)