共计 3537 个字符,预计需要花费 9 分钟才能阅读完成。
10 分钟搞定 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 再通过各自的 Web UI 查看监控信息显然不太不便,同时 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/datachmod 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:9093rule_files: – rule/record/*.ymlscrape_configs: – job_name: “prometheus” static_configs: – targets: [“localhost:9090”] – job_name: “cadvisor” static_configs: – targets: [“124.222.45.207:8080”]
❝
job_name: “prometheus” 配置抓取 Prometheus 本身相干指标;
job_name: “cadvisor” 配置抓取之前配置的 cAdvisor 组件指标。
❞
3、Docker 部署 Prometheus:
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、Prometheus 启动实现后,浏览器拜访:
拜访 Status -> Targets 页面,发现配置的两个抓取 Job 曾经显示,并且 State 是绿色 UP,则接入胜利。
5、当可能失常采集到 cAdvisor 的样本数据后,能够通过以下表达式计算容器的 CPU 使用率:sum(irate(container_cpu_usage_seconds_total{image!=””}[1m])) without (cpu)
Grafana 部署
1、部署 Grafana:
docker run -d –name=grafana -p 3000:3000 -v grafana:/var/lib/grafana grafana/grafana
❝
/var/lib/grafana 门路外挂进去,该目录存储 Grafana 插件、数据信息,防止 Docker 容器重启数据失落。
❞
2、拜访:http:// 本人的 IP:3000/login,输出账号 admin/admin:
3、创立 Prometheus 类型数据源,指向方才搭建的 Prometheus:
4、导入 Docker 容器监控面板,这里应用 11277:
5、监控面板就能够看到 Docker 容器运行状况,如下图,以后运行中容器有 4 个,总占用内存 319MB,总 CPU 使用率大略 1.84%,并以曲线形式展现每个容器的 CPU 使用率、内存使用率、网络 IO 和磁盘 IO 等。
[更多云原生监控运维,请关注微信公众号:Reactor2020]