cAdvisor+Prometheus+Grafana 搞定Docker容器监控平台

cAdvisor+Prometheus+Grafana 搞定Docker容器监控平台

1、先给虚拟机上传cadvisor

cAdvisor(Container Advisor)Google 开源的一个容器监控工具,可用于对容器资源的使用情况和性能进行监控。用于收集、聚合、处理和导出正在运行容器的有关信息。具体来说,该组件对每个容器都会记录其资源隔离参数、历史资源使用情况、完整历史资源使用情况的直方图和网络统计信息。``cAdvisor 本身就对 Docker` 容器支持,并且还对其它类型的容器尽可能的提供支持,力求兼容与适配所有类型的容器。

[root@docker-1 ~]# mkdir /mointor
[root@docker-1 ~]# cd /mointor/
[root@docker-1 mointor]# ls
cadvisor.tar
[root@docker-1 mointor]# 
[root@docker-1 mointor]# docker load -i cadvisor.tar 
ace0eda3e3be: Loading layer  5.843MB/5.843MB
33bb68b99ee4: Loading layer  102.4MB/102.4MB
d3174d703c76: Loading layer  13.25MB/13.25MB
8b7599e512b6: Loading layer  44.19MB/44.19MB
Loaded image: gcr.io/cadvisor/cadvisor:latest
[root@docker-1 mointor]# 
[root@docker-1 mointor]# docker images|grep cadvisor
gcr.io/cadvisor/cadvisor        latest         68c29634fe49   3 years ago    163MB
google/cadvisor                 latest         eb1210707573   5 years ago    69.6MB
[root@docker-1 mointor]# 

2、What is Prometheus?

Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud.
Prometheus joined the Cloud Native Computing Foundation in 2016 as the second hosted project, after Kubernetes.

Prometheus是一个开源系统监控和警报工具包,最初由SoundCloud构建。
Prometheus于2016年加入云原生计算基金会,成为继Kubernetes之后的第二个托管项目。

Cloud Native Computing Foundation --》云原生计算基金会: Prometheus、``kubernetsETCD`

2.1、架构图

image-20240302162553611

普罗米修斯的核心组件

Prometheus server主程序

组件:

  • ``TSDB--->time series database 时序数据库 --》hdd/ssd hdd机械磁盘 hard disk drive ssd 固态磁盘 -->solid state drive`

    • promQL: select ,insert等 promQL是普罗米修斯内部的sql
  • http server web服务

    • Retrieval 是拉取数据的组件:每间隔15s去拉一次数据
  • pushgateway 中间件(代理)—–》临时存放数据的软件

  • alertmanager 告警的软件

  • exporter 收集数据,采集数据 木马程序 : 安装到被监控的机器上 类似于agent代理

采集数据:exporter pushgateway 中间件(代理)
存储数据:tsdb
提供数据:http server
显示数据: grafana
告警、报警:alertmanager

获取数据的方式:
1.pull server --》pull —》client 主动的获取数据,避免大并发
2.push client —>push—》server client 主动送数据过来,数据会非常新,会出现大量的数据同时push过来

3、利用docker安装普罗米修斯

1、编写prometheus.yml文件

[root@docker-1 mointor]# vim prometheus.yml
scrape_configs:
- job_name: cadvisor
  scrape_interval: 5s
  static_configs:
  - targets:
    - cadvisor:8080
[root@docker-1 mointor]# 

2、编写dockerfile文件

'先确定8080和9090,6379端口是否被占用'
[root@docker-1 ~]# lsof -i :9090
[root@docker-1 ~]# lsof -i :8080
[root@docker-1 ~]# lsof -i :6379
[root@docker-1 mointor]# 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
[root@docker-1 mointor]# 

3、启动monitor

[root@docker-1 mointor]# docker compose up -d
[+] Running 3/3
 ✔ Container promredis   Started                                           0.9s 
 ✔ Container cadvisor    Started                                           1.5s 
 ✔ Container prometheus  Started                                           1.7s 
[root@docker-1 mointor]# 

4、可以去访问8080和9090端口了

image-20240302164553027

image-20240302165316640

4、安装grafana

利用容器启动grafana

[root@docker-1 mointor]# docker run -d --name=grafana -p 3000:3000 grafana/grafana
Unable to find image 'grafana/grafana:latest' locally
latest: Pulling from grafana/grafana
97518928ae5f: Pull complete 
5b58818b7f48: Pull complete 
d9a64d9fd162: Pull complete 
4e368e1b924c: Pull complete 
867f7fdd92d9: Pull complete 
387c55415012: Pull complete 
07f94c8f51cd: Pull complete 
ce8cf00ff6aa: Pull complete 
e44858b5f948: Pull complete 
4000fdbdd2a3: Pull complete 
Digest: sha256:18d94ae734accd66bccf22daed7bdb20c6b99aa0f2c687eea3ce4275fe275062
Status: Downloaded newer image for grafana/grafana:latest
0ae83fc8b36d15bc54a757479748ab34c71b620826a887dcb22b2e42275b732a
[root@docker-1 mointor]# 

image-20240302170049296

账号:admin

密码:admin

更新密码:123456

  • 在grafana里添加数据源是Prometheus的数据库
  • 使用模板: 13946 模板编号

image-20240302170915268

  • 14
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
jmeter,PrometheusGrafana是一些在Windows操作系统上常用的工具。这些工具都有着不同的功能和用途,可以帮助我们进行性能测试和监控。 首先是jmeter,它是一个开源的Java应用程序,用于对各种协议(如HTTP,FTP,JMS等)进行负载测试。通过使用jmeter,我们可以模拟大量用户同时对应用程序进行请求,以测试其性能和稳定性。在Windows上使用jmeter十分方便,只需要下载并安装Java Runtime Environment(JRE)即可。 另一个工具是Prometheus,它是一个开源的监控系统和时间序列数据库。Prometheus可以收集和存储应用程序的指标数据,并提供强大的查询和可视化功能。在Windows上使用Prometheus,我们可以通过下载二进制文件并启动Prometheus服务器,然后配置其监控对象,并通过其提供的API接口获取数据。 最后是Grafana,它是一个开源的可视化仪表板工具,可以与Prometheus集成,用于创建漂亮的监控和分析仪表板。通过Grafana,我们可以将Prometheus收集的数据进行可视化展示,并添加各种图表、报表、警报和过滤器等。在Windows上使用Grafana,我们需要下载并安装Grafana软件,并通过其提供的界面配置数据源连接和仪表板的创建。 总结来说,在Windows操作系统上,我们可以使用jmeter进行负载测试,Prometheus进行监控数据的收集和存储,以及Grafana进行数据的可视化展示。这些工具的组合可以帮助我们实现全面的性能测试和监控,提供更好的应用程序性能分析和问题排查能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不冤不乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值