首页 > 其他分享 >docker学习笔记:Prometheus+cAdvisor搭建容器监控

docker学习笔记:Prometheus+cAdvisor搭建容器监控

时间:2023-05-23 18:01:08浏览次数:52  
标签:容器 cAdvisor myprom prometheus Prometheus docker root cadvisor

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

相关文章

  • prometheus学习笔记-alertmanger告警配置
    以上是prometheus架构图,一个完整的监控流程是数据采集(exporter),采集到数据之后,做数据可视化(grafana),然后是监控告警部分。promethues的角色是数据的采集,存储,定制告警规则,数据的展示是grafna,告警则是借助alertmanger来实现。详细参考官方网站https://prometheus.io/docs/alertin......
  • docker 安装 nginx
    从https://blog.csdn.net/u010148813/article/details/126172372摘要的内容1.下载镜像dockerpullnginx:1.22.02.创建挂载目录mkdir/root/apply/docker/apply/nginx3.从容器中复制要挂载的文件dockerrun--namenginx1.22-p10080:80-dnginx:1.22.0dockercpngi......
  • 动力节点Docker深入浅出(一)Docker概述
    分享一下最近正在b站上看动力节点的docker课程,整理了相关学习笔记,会按照学习进度慢慢更新的,加油本套课程适合零基础、技术提升乃至所有编程语言开发者;课程对应包含含基础篇、提升篇与高级篇,共计十二大章节。本课程主要学习知识点:“7个深度/3个全面”;针对Docker的知识体系,无......
  • https部署与docker下nginx的转发+文件获取
    进入nginx容器查看是否有etc/nginx/cert目录将https的域名证书放到cert目录下配置80和443server{#listen80;#侦听80端口listen80;#侦听443端口,用于SSLserver_name127.zyfdtsite.com;client_max_body_size1024m;#charsetkoi8-r;#acc......
  • Docker如何上传本地文件到容器目录?
    先贴上命令:dockercp本地文件路径ID全称:容器路径下面来举个例子:我要把本地电脑的mysql-connector-java-5.1.46.jar上传到Linux下Docker里面的logstash容器下的/usr/share/logstash/lib目录。1.首先使用ssh工具上传jar包到Linux的/usr/local目录:2.使用docker命令赋值到docker容器......
  • 使用prometheus监控docker
    CAdvisorCAdvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行CAdvisor用户可以轻松的获取到当前主机上容器的运行统计信息,并以图表的形式向用户展示。安装部署#安装部署dockerpullgoogle/cadvisor:v0.24.1#centos7上安装指定版本#启动d......
  • 基于Docker安装RabbitMQ
    安装步骤1.在线拉取dockerpullrabbitmq:3-management2.安装RabbitMQdockerrun\-eRABBITMQ_DEFAULT_USER=wzh\-eRABBITMQ_DEFAULT_PASS=1234\-vmq-plugins:/plugins\--namemq\--hostnamemq\-p15672:15672\-p5672:5672\-d\rabbitmq:3-m......
  • docker 容器备份和恢复
    1、将容器生成镜像dockercommit-pe2882bb3b904keyan-42-backup-202305222、将镜像保存为tar文件dockersave-okeyan-42-backup-20230522.tarkeyan-42-backup-202305223、恢复dockerload-ikeyan-42-backup-20230522.tar ......
  • 四、Jenkins集成Docker
    重用之前的my_test项目增加Jenkins集成Docker。之前是构建完项目后,上传jar包并执行sh脚本启动jar包。现在是将jar包上传到Docker服务器上,并用Dockerfile构建镜像,启动容器。一、Jenkins新增SSHserver 找到SSHServers:  Jenkins部署在阿里云云主机上,这里用另一台云主机,......
  • docker的安装
    1.安装yum: 2.查看docker版本库版本由高到底: 3.指定docker版本进行安装: 4.启动docker服务命令: 5.设置docker在linux开机自动启动: 6.查看docker版本: 7.查看镜像: 8.拉取hello-world镜像: 9.拉取后查看hello-world的镜像: ......