文章目录
一、Prometheus 监控容器
prometheus是一款面向云原生应用程序的开源监控工具,作为第一个从CNCF毕业的监控工具而言,开发者对于Prometheus寄予了巨大的希望。 在Kubernetes社区中,很多人认为Prometheus是容器场景中监控的第一方案,成为容器监控标准的制定者。
二、什么是 cAdvisor
cAdvisor (Container Advisor) 是 Google 开源的一个容器监控工具,可用于对容器资源的使用情况和性能进行监控。它以守护进程方式运行,用于收集、聚合、处理和导出正在运行容器的有关信息。具体来说,该组件对每个容器都会记录其资源隔离参数、历史资源使用情况、完整历史资源使用情况的直方图和网络统计信息。
cAdvisor 本身就对 Docker 容器支持,并且还对其它类型的容器尽可能的提供支持,力求兼容与适配所有类型的容器。
由以上介绍我们可以知道,cAdvisor 是用于监控容器引擎的。由于其监控的实用性,Kubernetes 已经默认将其与 Kubelet 融合,所以我们无需再单独部署 cAdvisor 组件来暴露节点中容器运行的信息,直接使用 Kubelet 组件提供的指标采集地址即可。
Cadvisor 进行收集,通过 Prometheus 作为数据源,利用 Grafana 进行展示。
环境准备:
主机名 | IP | 所需软件 |
---|---|---|
master | 192.168.91.138 | docker-ce、prometheus、grafan |
node1 | 192.168.91.137 | docker-ce、node_exporter |
三、node1 节点部署cAdvisor
在client主机上拉取google/cadvisor官方镜像
[root@node1 ~]# docker pull google/cadvisor
运行cadvisor容器
[root@node1 ~]# 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
aaaadb87f18c11448e7be4a77b329372d5b90e300687f21709badacb384bfdb7
[root@node1 ~]# docker images | grep cadvisor
google/cadvisor latest eb1210707573 3 years ago 69.6MB
页面访问
像下翻看
查看所在节点的容器详细信息
可以看见容器名、docker版本、使用系统、节点主机名、容器根目录等信息
在 master 主机上配置prometheus.yml文件
使prometheus能够接受到cadvisor采集的信息从而实现对cadvisor所处主机的监控
[root@master ~]# vim /opt/prometheus.yml
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
- job_name: amu_node1
static_configs:
- targets: ["192.168.91.137:9100"]
- job_name: "cadvisor