Prometheus+cAdvisor容器监控
简介
Prometheus
官网Prometheus - Monitoring system & time series database
CNCF云原生基金会的第二个项目
cAdvisor
cAdvisor (Container Advisor) 是 Google 开源的一个容器监控工具,可用于对容器资源的使用情况和性能进行监控。它以守护进程方式运行,用于收集、聚合、处理和导出正在运行容器的有关信息。具体来说,该组件对每个容器都会记录其资源隔离参数、历史资源使用情况、完整历史资源使用情况的直方图和网络统计信息。
cAdvisor 本身就对 Docker 容器支持,并且还对其它类型的容器尽可能的提供支持,力求兼容与适配所有类型的容器。
官方推荐的为Prometheus采集数据的软件,可以获取宿主机的资源使用和容器的资源使用
搭建思路
redis容器作为被监控容器,Cadvisor 进行收集,通过 Prometheus 作为数据源
搭建Prometheus+cAdvisor监控容器
1.拉取Prometheus镜像
[root@docker harbor]# docker pull prom/prometheus
2.启动prometheus容器
[root@docker harbor]# docker run -d -p9090:9090 --name myprom-1 prom/prometheus
3.网页访问
4.从容器里拷贝得到Prometheus的配置文件,放在/myprom/下,并且停止运行prometheus,防止后续启用Prometheus容器发生端口占用
[root@docker harbor]# mkdir /myprom
[root@docker harbor]# cd /myprom/
[root@docker myprom]# ls
[root@docker myprom]# docker cp myprom-1:/etc/prometheus/prometheus.yml .
Successfully copied 2.56kB to /myprom/.
[root@docker myprom]# ls
prometheus.yml
[root@docker myprom]# docker stop myprom-1
5.修改prometheus.yml配置文件,添加监控的容器cAdvisor为目标容器
[root@docker myprom]# vim prometheus.yml
global:
alerting:
alertmanagers:
- static_configs:
- targets:
rule_files:
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: cadvisor
scrape_interval: 5s
static_configs:
- targets:
- cadvisor:8080
6.使用docker compose启动redis、Prometheus、cadvisor
[root@docker myprom]# vim docker-compose.yml
version: '3.2'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- 9090:9090
command:
- --config.file=/etc/prometheus/prometheus.yml
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
depends_on:
- cadvisor
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
ports:
- 8080:8080
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
depends_on:
- redis
redis:
image: redis:latest
container_name: redis
ports:
- 6379:6379
由于cadvisor的镜像国内无法访问下载,需要自行准备
/var/lib/docker/:/var/lib/docker:ro docker的所有数据都挂载到了cadvisor下,所以cadvisor可以监控容器
7.上传准备的cadvisor镜像到linux的/myprom下,并导入镜像
[root@docker myprom]# ls
cadvisor.tar docker-compose.yml prometheus.yml
[root@docker myprom]# docker load -i cadvisor.tar
8.启动docker compose
[root@docker myprom]# docker compose up -d
[root@docker myprom]# docker ps
Prometheus、cadvisor、redis都已经成功启动
如果报错,很可能是之前启动的Prometheus占用了9090端口,docker stop把之前的容器停止掉就行了
9.网页访问cadvisor,prometheus
搭建成功!
标签:容器,cAdvisor,myprom,prometheus,Prometheus,docker,root,cadvisor From: https://blog.51cto.com/u_16070827/6333892