docker学习笔记(六)Prometheus+cAdvisor搭建容器监控

Prometheus+cAdvisor容器监控

Prometheus介绍及其架构

官网Prometheus - Monitoring system & time series database

Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。

cAdvisor
cAdvisor (Container Advisor) 是 Google 开源的一个容器监控工具,可用于对容器资源的使用情况和性能进行监控。它以守护进程方式运行,用于收集、聚合、处理和导出正在运行容器的有关信息。具体来说,该组件对每个容器都会记录其资源隔离参数、历史资源使用情况、完整历史资源使用情况的直方图和网络统计信息。

cAdvisor 本身就对 Docker 容器支持,并且还对其它类型的容器尽可能的提供支持,力求兼容与适配所有类型的容器。

官方推荐的为Prometheus采集数据的软件,可以获取宿主机的资源使用和容器的资源使用

搭建思路

redis容器作为被监控容器,Cadvisor 进行收集,通过 Prometheus 作为数据源,grafana出土软件和exporter容器数据采集软件后续会补充

 搭建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

注意:这一条命令单独使用也会在local本地没有找到镜像的时候自动下载镜像

 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的镜像国内无法访问下载,需要自行准备,这里自动下载cadvisor的时候显示超时了

cadvior可以获取容器数据的原因:/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

 

 
 搭建成功!

  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值