cadvisor

cadvisor说明

  • cadvisor工具是由谷歌提供

  • cAdivisor 作用:分析docker中正在运行的容器的资源使用情况和性能特征。【同时cadivisor也另一个作用就是数据收集】

  • 监控Docker Host
    cadvisor会显示当前host的资源使用情况,包括CPU、内存、网络、文件系统等

  • 逻辑简单来说如下图
    在这里插入图片描述

  • 我们创建3个容器,用于后面的测试

[root@ccx ~]# docker run -dit --name=c1 --restart=always hub.c.163.com/library/centos
b1f6dee2e727ef16147a9e0719623ba42d637f8e731dfb1d5f19f0f2dc56782e
[root@ccx ~]# docker run -dit --name=c2 --restart=always hub.c.163.com/library/centos
b50c0b555caa0fd9f64e3b98d0aa15cf0e09eb426ab5cd227eb3e49695a6cfb4
[root@ccx ~]# docker run -dit --name=c3 --restart=always hub.c.163.com/library/centos
49a05079400d9fbafc54fb549fcbc8bc45fcfd94c8517d9b9777cb34e83dcccf
[root@ccx ~]# 
[root@ccx ~]# 
[root@ccx ~]# docker ps
CONTAINER ID   IMAGE                          COMMAND       CREATED          STATUS          PORTS     NAMES
49a05079400d   hub.c.163.com/library/centos   "/bin/bash"   3 seconds ago    Up 2 seconds              c3
b50c0b555caa   hub.c.163.com/library/centos   "/bin/bash"   8 seconds ago    Up 7 seconds              c2
b1f6dee2e727   hub.c.163.com/library/centos   "/bin/bash"   14 seconds ago   Up 13 seconds             c1
[root@ccx ~]# 
  • 前面说明,可以在主机上使用docker stats查看docker的使用情况 ,不过我们这要说的是用图形化监控这些性能了
[root@ccx ~]# docker stats
CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT   MEM %     NET I/O     BLOCK I/O   PIDS
49a05079400d   c3        0.00%     376KiB / 3.683GiB   0.01%     656B / 0B   0B / 0B     1
b50c0b555caa   c2        0.00%     368KiB / 3.683GiB   0.01%     656B / 0B   0B / 0B     1
b1f6dee2e727   c1        0.00%     372KiB / 3.683GiB   0.01%     656B / 0B   0B / 0B     1

cadvisor容器获取

  • 可以直接下载网易的镜像仓库:
    docker pull hub.c.163.com/xbingo/cadvisor:latest
[root@ccx ~]# docker pull hub.c.163.com/xbingo/cadvisor:latest
latest: Pulling from xbingo/cadvisor
09d0220f4043: Pull complete 
151807d34af9: Pull complete 
14cd28dce332: Pull complete 
Digest: sha256:20ddac7ab8fdaff0549c5dcf046f0cb6f8ad064e20d9004dcc07132b907c4b68
Status: Downloaded newer image for hub.c.163.com/xbingo/cadvisor:latest
hub.c.163.com/xbingo/cadvisor:latest
[root@ccx ~]# 
[root@ccx ~]# docker images|grep cad
hub.c.163.com/xbingo/cadvisor        latest    4bc3588563b1   5 years ago    48.2MB
[root@ccx ~]# 
[root@ccx ~]# 
[root@ccx ~]# docker history hub.c.163.com/xbingo/cadvisor:latest |grep POSE
<missing>      5 years ago   /bin/sh -c #(nop) EXPOSE 8080/tcp               0B        
[root@ccx ~]# 

可以看到,cadvisor使用的端口是8080

创建cadvisor容器

  • 创建说明
    • 因为容器的端口是8080,所以我们创建的时候要映射8080端口到本地物理机
    • 又因为开头说过,该容器获取其他容器的信息是通过分析3个文件,所以我们需要把本地的这3个文件同步到容器中
  • 创建过程如下: 3个文件我分开写,是为了更容易理解【-v 这是物理机位置:这是容器中的位置:ro是权限】
[root@ccx ~]# 
[root@ccx ~]# docker images|grep cad
hub.c.163.com/xbingo/cadvisor        latest    4bc3588563b1   5 years ago    48.2MB
[root@ccx ~]# 
[root@ccx ~]# docker run -dit --name=mon --restart=always -p 8080:8080 \
> -v /var/run:/var/run \
> -v /sys:/sys:ro \
> -v /var/lib/docker:/var/lib/docker:ro \
> hub.c.163.com/xbingo/cadvisor:latest
a71418279db98dc62413a17347f293174a8ad2c2bad0861ef3803df3067ab47a
[root@ccx ~]# 
[root@ccx ~]# 
[root@ccx ~]# docker ps | grep mon
a71418279db9   hub.c.163.com/xbingo/cadvisor:latest   "/usr/bin/cadvisor -…"   11 seconds ago   Up 8 seconds    0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   mon
[root@ccx ~]# 

进入cadvisor界面

直接在浏览器输入:容器所属ip:8080 即可进入到下列界面
在这里插入图片描述

查看总资源使用情况

  • 进入后当前界面下拉就可以看到总资源的使用情况了
    在这里插入图片描述

查看单台资源的使用情况

  • 点击 Docker Containers
    在这里插入图片描述
  • 进来以后就可以看到全部容器了,想看哪个容器的使用情况就点击哪个容器哈
    在这里插入图片描述
  • 如,我查看cadvisor的容器,创建名称为mon
    点进去以后界面就和主页一样的了,往下拉,就可以看到各种信息了。
    在这里插入图片描述
    在这里插入图片描述

scope

说明【脚本准备】

  • 这是通过一个脚本自动部署的,比较简单,且功能和cadvisor类似,就不多做说明了

  • 脚本准备
    下载下面脚本并上传到主机中。
    docker资源scope监控搭建脚本

  • 然后给该脚本增加一个x权限

[root@ccx ~]# chmod +x scope

scope镜像获取

  • 镜执行 ./scope会提示 镜像获取的路径
    提示信息如下
[root@ccx ~]# ./scope 
Usage:
scope launch {OPTIONS} {PEERS} - Launch Scope
scope stop                     - Stop Scope
scope command                  - Print the docker command used to start Scope
scope help                     - Print usage info
scope version                  - Print version info

PEERS are of the form HOST[:PORT]
HOST may be an ip or hostname.
PORT defaults to 4040.

Launch options:
Unable to find image 'weaveworks/scope:1.13.1' locally
^C
  • 获取这个镜像的命令:
  • docker pull weaveworks/scope:1.13.1
[root@ccx ~]# docker pull weaveworks/scope:1.13.1
1.13.1: Pulling from weaveworks/scope
c9b1b535fdd9: Pull complete 
550073704c23: Pull complete 
8738e5bbaf1d: Pull complete 
0a8826d26027: Pull complete 
387c1aa951b4: Pull complete 
e72d45461bb9: Pull complete 
75cc44b65e98: Pull complete 
11f7584a6ade: Pull complete 
a5aa3ebbe1c2: Pull complete 
7cdbc028c8d2: Pull complete 
Digest: sha256:4342f1c799aba244b975dcf12317eb11858f9879a3699818e2bf4c37887584dc
Status: Downloaded newer image for weaveworks/scope:1.13.1
docker.io/weaveworks/scope:1.13.1
[root@ccx ~]# 
[root@ccx ~]# 
[root@ccx ~]# docker images| grep sco
weaveworks/scope                     1.13.1    cd4cd8fcce1b   13 months ago   89.7MB
[root@ccx ~]# 

启动scope容器

  • 这是用脚本自动部署的,直接执行:./scope launch 【脚本所属路径执行】
    执行完毕以后,会提示你一些网址,然后用浏览器打开这些网址即可
[root@ccx ~]# ./scope launch
4f0335f0cc064f544d8ad8e89e05cc14dd6558485e628f8d3563c56e3ebd9a3d
Scope probe started
Weave Scope is listening at the following URL(s):
  * http://192.168.159.129:4040/
  * http://192.168.159.128:4040/
  * http://10.1.0.1:4040/
  * http://192.168.122.1:4040/
  * http://172.18.0.1:4040/
[root@ccx ~]# 
[root@ccx ~]# 
[root@ccx ~]# docker ps |grep sc
4f0335f0cc06   weaveworks/scope:1.13.1                "/home/weave/entrypo…"   3 minutes ago    Up 3 minutes                                                weavescope
[root@ccx ~]# 

关闭scioe容器

  • 这个容器的创建是通过上面命令,容器删除是通过下面命令的:
    ./scope stop
    【不建议直接删除容器啊,还是需要通过这种方式来停止该容器】
[root@ccx ~]# ./scope stop
[root@ccx ~]#

打开scope界面

  • 直接在浏览器输入:容器所属ip:4040 即可进入到下列界面【容器部署完毕的时候也会告诉你可以访问的所有地址,用任意一个就行】
    注:如果打不开该网址,去主机上关闭防火墙:systemctl stop firewalld
    在这里插入图片描述

查看总资源情况

注意看红色圈中的选项,这种模式虽然展示了所有容器【不包括自己scope的容器】,但并不是全部使用率都显示出来了,需要选择cpu或内存,然后鼠标放在容器名称上显示使用率
【选择了单台以后,回到当前界面就是点击下面红色框中内容】
在这里插入图片描述

查看单台

在主界面点击想查看的容器名以后,就到了下面这个界面。
在这里插入图片描述

特点功能说明

  • scope比cadvisor多一个好处,就是有一个类似于控制台的功能,能够直接通过scope自带的功能进入容器的操作台,好评!
  • 在主界面点击想进入控制台的容器,然后有一个显示器的标,点一下就好了。
    在这里插入图片描述

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐