Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

从来好事天生俭,自古瓜儿苦后甜。这篇文章主要讲述Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#相关的知识,希望能为你提供帮助。
prometheus使用cadvisor监控docker容器@[toc]
1.cadvisor概述一般公司会有很多docker主机,那么就需要对docker进行监控了,docker监控可以采用docker stats配合shell命令来取值做监控,但是无法传递给prometheus进行采集,zabbix监控docker又比较麻烦,因此就有了谷歌的cadvisor
cadvisor不仅可以搜集一台机器上的所有运行的容器信息,还提供基础查询界面的http接口,方便prometheus进行数据抓取
cadvisor可以对节点机器上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况,但是cadvisor有个缺陷,只能实时展现当前的监控数据,对于历时数据不做保留,因此需要使cadvisor接入prometheus,由prometheus内置的tsdb数据库进行存储历时数据
cadvisor利用Linux的cgroups获取容器的资源使用情况,在k8s中集成,官方标配
cadvisor需要在每台docker主机都要安装
docker主要监控容器内存、CPU、磁盘、网卡
最终配合和grafana展示监控docker容器效果
可以在图中清楚的看到每个容器的CPU、内存使用率以及每台主机上运行容器的数量

Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

2.环境准备
IP 主机名 服务
192.168.81.210 prometheus-server prometheus、grafana
192.168.81.220 192_168_81_220 docker、cadvisor
192.168.81.230 192_168_81_230 docker、cadvisor
3.在docker服务器上部署docker192.168.81.220/92.168.81.230服务器都需要操作
1.获取镜像源 wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.reposed -i s#download.docker.com#mirrors.tuna.tsinghua.edu.cn/docker-ce# /etc/yum.repos.d/docker-ce.repo yum makecache fast2.安装docker yum -y install docker-ce systemctl start docker systemctl enable docker3.配置镜像加速器 tee /etc/docker/daemon.json < < -EOF"registry-mirrors": ["https://zggyaen3.mirror.aliyuncs.com"]EOF4.启动docker systemctl restart docker5.简单运行一个容器 docker run -d nginx:latest

4.docker安装cadvisor监控 4.1.安装cadvisor
在docker主机都操作,192.168.81.220/92.168.81.230服务器都需要操作
docker run \\ --volume=/:/rootfs:ro \\ --volume=/var/run:/var/run:rw \\ --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 \\ google/cadvisor:latest注释:--volume=/:/rootfs:ro#将/目录挂载到容器的/rootfs,权限为读 --volume=/var/run:/var/run:rw#将/var/run挂载到容器的/var/run目录,权限为读写 其他的volume都是这个意思,ro为读,rw为读写 --volume=/var/lib/docker/:/var/lib/docker:ro#这个是将宿主机的docker目录挂载到容器,因为cadvisor需要监控所有容器,因此需要挂载 --publish=8080:8080#开放公共端口

最终效果为,两台机器都启动了cadvisor和nginx镜像
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

4.2.访问cadvisor查看监控数据
访问http://宿主机的ip:8080j即可
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

4.3.查看某一个容器的监控信息
点击首页/docker,跳转进去后,可以看到subcontainers下面容器列表,下面显示的都是容器id,可以用docker ps看到具体的容器
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

打开后即可看到具体的某个容器监控指标
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

也可以看到图像
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

4.4.cadvisor监控指标页面
访问http://宿主机的ip:8080/metrics即可
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

5.prometheus添加cadvisor监控 5.1.prometheus安装
二进制安装详细看上一篇文章 docker安装 [root@prometheus-server ~]# docker run -d -p9090:9090-v /data/prom/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus:latest

5.1.修改prometheus配置文件
1.修改配置文件增加docker监控cadvisor [root@prometheus-server ~]# vim /etc/prometheus/prometheus.yml - job_name: "docker" static_configs: - targets: [192.168.81.220:8080,192.168.81.230:8080] 2.刷新配置 [root@prometheus-server ~]# curl -X POST http://127.0.0.1:9090/-/reload

docker监控主机已经UP
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

查看监控项,关于container开头的都是监控
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

6.prometheus+grafana实现docker容器的监控图形展现 6.1.安装grafana
[root@prometheus-server ~]# rpm -ivh grafana-6.3.2-1.x86_64.rpm [root@prometheus-server ~]# systemctl start grafana-server [root@prometheus-server ~]# systemctl enable grafana-server

访问http://服务器地址:3000
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

6.1.添加prometheus数据源
点击Add data source
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

选择prometheus
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

填写prometheus地址
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

6.2.导入docker监控图形模板
6.2.1.点击+号---import
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

6.2.2.填写监控模板id在这里填写上监控模板的id号,193号docker监控模板比较不错
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

6.2.3.选择prometheus源【Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#】填写完id号之后,会自动找到对应的模板
选择对应的prometheus源之后点击import
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

6.3.查看图形
选择Docker monitoring
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

这个模板美中不足的是看不到具体一台主机上的容器,而是把所有docker主机的容器全部都列在这里了
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

7.可以选docker主机的模板导入终于在grafana找到了一款可以选择主机的docker监控模板
下载地址https://grafana.com/api/dashboards/8321/revisions/3/download
导入后张这个颜值
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片

8.最终效果
Prometheus+Grafana监控系统配合Cadvisor监控Docker容器 #yyds干货盘点#

文章图片


    推荐阅读