首页 > 其他分享 >cAdvisor+Pro+Grafana 监控Docker容器

cAdvisor+Pro+Grafana 监控Docker容器

时间:2023-03-29 18:26:14浏览次数:40  
标签:容器 container cAdvisor -- Pro Grafana prometheus docker

cAdvisor(Container Advisor) 

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

由以上介绍我们可以知道,cAdvisor 是用于监控容器引擎的,由于其监控的实用性,Kubernetes 已经默认将其与 Kubelet 融合作为容器监控指标的默认工具,所以,对于云原生集群直接使用 Kubelet 组件提供的指标采集地址即可。

一、cAdvisor部署

1、启动cAdvisor

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=8080:8080 \
  --detach=true \
  --name=cadvisor \
  --privileged \
  --device=/dev/kmsg \
  google/cadvisor:latest

2、此时,cAdvisor组件已经启动,我们可以使用浏览器访问 http://自己IP地址:8080 访问到cAdvisor组件Web UI

3、cAdvisor默认只保存2分钟的监控数据。cAdvisor已经内置了对Prometheus的支持。

访问http://自己的IP地址:8080/metrics即可获取到标准的Prometheus监控样本输出

4、下面表格中列举了一些cAdvisor中获取到的典型监控指标:

指标名称类型含义
container_cpu_load_average_10s gauge 过去10秒容器CPU的平均负载
container_cpu_usage_seconds_total counter 容器在每个CPU内核上的累积占用时间 (单位:秒)
container_cpu_system_seconds_total counter System CPU累积占用时间(单位:秒)
container_cpu_user_seconds_total counter User CPU累积占用时间(单位:秒)
container_fs_usage_bytes gauge 容器中文件系统的使用量(单位:字节)
container_fs_limit_bytes gauge 容器可以使用的文件系统总量(单位:字节)
container_fs_reads_bytes_total counter 容器累积读取数据的总量(单位:字节)
container_fs_writes_bytes_total counter 容器累积写入数据的总量(单位:字节)
container_memory_max_usage_bytes gauge 容器的最大内存使用量(单位:字节)
container_memory_usage_bytes gauge 容器当前的内存使用量(单位:字节
container_spec_memory_limit_bytes gauge 容器的内存使用量限制
machine_memory_bytes gauge 当前主机的内存总量
container_network_receive_bytes_total counter 容器网络累积接收数据总量(单位:字节)
container_network_transmit_bytes_total counter 容器网络累积传输数据总量(单位:字节)

二、Prometheus部署

1、创建prometheus存储数据外挂目录,避免容器重启丢失:

mkdir -p /disk/docker-monitor/prometheus/data
chmod 777 /disk/docker-monitor/prometheus/data

2、prometheus配置文件外挂出来,方便修改,vi /disk/docker-monitor/prometheus/prometheus.yml

global:
  scrape_interval: 15s
  evaluation_interval: 15s 

alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

rule_files:
  - rule/record/*.yml

scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]
  - job_name: "cadvisor"
    static_configs:
      - targets: ["124.222.45.207:8080"]

3、docker版本

docker run -d -p 9090:9090 --name prometheus \
    -v /disk/docker-monitor/prometheus/conf:/opt/bitnami/prometheus/conf \
    -v /disk/docker-monitor/prometheus/data:/opt/bitnami/prometheus/data \
    bitnami/prometheus:2.42.0 \
    --web.enable-lifecycle --web.enable-admin-api\
    --config.file=/opt/bitnami/prometheus/conf/prometheus.yml\
    --storage.tsdb.path=/opt/bitnami/prometheus/data

--web.enable-lifecycle --web.enable-admin-api提供rest api接口方式管理prometheus,比如配置热加载:curl -XPOST http://localhost:9090/-/reload。

注意:这里将prometheus配置文件和存储目录外挂出来,避免容器重启后数据丢失。

4、当能够正常采集到cAdvisor的样本数据后,可以通过以下表达式计算容器的CPU使用率

sum(irate(container_cpu_usage_seconds_total{image!=""}[1m])) without (cpu)

三、部署Grafana

1、docker run

docker run -d --name=grafana -p 3000:3000 -v grafana:/var/lib/grafana grafana/grafana

2、导入Docker容器监控面板,这里使用11277

 

 

 

 

 

 

 

 

 

标签:容器,container,cAdvisor,--,Pro,Grafana,prometheus,docker
From: https://www.cnblogs.com/dgp-zjz/p/17269917.html

相关文章

  • Approximation Theory and Method part 2
    ApproximationTheoryandMethodpart2Approximationoperators在前面的讨论中,我们得到了bestapproximation的一些性质.但是实际上我们并不总是能有bestapproxim......
  • supervisor中的minfds及minprocs参数用途
    使用supervisor遇到的一个坑,为此还撕逼了一下午,先填了再说先来看看minfds及minprocs这两个参数在supervisor官方文档中的说明(官方文档地址http://www.supervisord.org/con......
  • PHP 判断是否使用代理 PHP Proxy Detector
    1.php类IfoundthisclasslookingforsomethingelseactuallybutIrememberedIneededsomewhileagosomethingsimilarandIneverfoundone.I'msureitwi......
  • DOM中Property与Attribute的区别
    property和attribute的汉语翻译几乎相同,都有“属性”的意义(这里姑且称attribute为“特性”,以方便区分),而他们的取值也经常相同,但有时又会踩坑,发现二者会不相等,不同步。0.奇葩......
  • vue-qr引入时报错You may need an appropriate loader to handle this file type. 问
    今天研究了一下vue生成二维码的功能,在使用vue-qr插件的时候,在所需页面引入,报错,于是就研究了一番。  解决方法找到node_modules/vue-qr/dist/vue-qr.js文件,搜...e,将......
  • TypeError: Cannot read property 'resetUpScroll' of null
    在onshow中使用mescroll-body组件this.mescroll.resetUpScroll()方法会报错,延迟50秒会正常 这个报错通常是由于在onShow生命周期中访问某些组件的属性或方法时,这些组件......
  • 利用Project进行工时等的报表统计
    利用Project制定报表不但很方便,而且有很强大的报表统计功能。主要的方法是:Project中自带了开始时间、完成时间、实际开始时间、实际完成时间等字段,但在实际填写进度时,当修改......
  • MySqL Invalid GIS data provided to function st_geometryfromtext. 解决方法
     最近需要通过geoserver显示多边形,首先需要先将数据库的数据转换为地理数据存储类型,但由于原本的信息是按text存储的,将text类型转换为geometry就需要用到ST_GeomFromText......
  • k8s搭建prometheus+grafana监控系统
    安装gityuminstallgit-y登录github,查看kube-prometheus项目https://github.com/prometheus-operator/kube-prometheus查看kubenetes对应版本拉取对应的......
  • Prometheus服务发现之kubernetes_sd_config
    一、为什么要使用Prometheus服务发现之前我们讲过通过配置prometheus-operator的CRDServiceMonitor来达到K8S集群相关组件和微服务的监控的目的,可以在ServiceMonitor的配......