Docker应用的可视化监控管理

本文介绍一个开源项目Weave Scope,项目地址是https://github.com/weaveworks/scope。Weave Scope这个项目会自动生成容器之间的关系图,方便理解容器之间的关系,也方便监控容器化和微服务化的应用。

首先,我们在一台机器上面安装docker,然后安装Weave Scope项目。

sudo wget -O /usr/local/bin/scope https://git.io/scope
sudo chmod a+x /usr/local/bin/scope
sudo scope launch

上面的脚本会从Docker Hub上面下载最新的Scope镜像,然后我们在web浏览器中输入http://ip:4040,我们就会看到下面所示页面。

visualization01

在页面中可以按照进程视图、容器视图和主机视图进行呈现,并且可以进行查询。

如果选择的是容器视图,那么在左下角可以根据容器属性进行过滤,可以只显示系统容器,或者只显示应用容器,或者同时显示系统容器和应用容器,在左下角还可以根据容器状态进行过滤,可以只显示停止状态的容器,或者只显示运行状态的容器,或者同时显示停止状态和运行状态的容器。

下图是在容器视图中展现停止状态的应用容器:

visualization02

在容器视图可以按照DNS 名称和镜像进行归类展现,下图是对上图中停止状态的应用容器按照镜像进行归类展现:

visualization03

下图是在容器视图上展现运行状态的应用容器,可以看到机器38dad64f上面存在两个运行状态的应用容器,分别是wordpress-db和wordpress-app,这两个容器的作用会在下面详细介绍:

visualization04

可以在左下角选择监控CPU使用率或者内存使用率:visualization05

下图是选择监控CPU使用率后的界面,选择wordpress-db容器后,会显示CPU使用率:

visualization06

下图是选择监控内存使用率后的界面,选择wordpress-db容器后,会显示内存使用率:

visualization07

当用鼠标左键点击wordpress-db容器后,会显示这个容器的详细信息,如下图所示:

visualization08

在容器详细信息页面,可以点击“docker.io/mysql”查看镜像详细信息:

visualization09

也可以点击“38dad64f”查看主机详细信息:

visualization10

当在主界面中选择主机视图,那么可以对主机进行图形展现,如下图所示:

visualization11

在主机视图中,可以在左下角选择按CPU使用率、负载、内存使用率进行监控:visualization12

在主机视图中,也可以用鼠标左键点击主机“38dad64f”,显示主机“38dad64f”的详细信息。

在进程视图中,可以展现主机上scope进程的信息:

visualization13

在进程视图中,可以在左下角选择按CPU使用率、内存使用率、打开文件数进行监控:visualization14

如果选择按照打开文件数进行监控,那么如下图所示,可以看到scope-probe进程打开了17个文件,scope-app进程打开了9个文件:

visualization15

用鼠标左键点击scope-probe进程,可以看到这个进程的详细信息,如下图所示:

visualization16

在主界面右下角,可以对scope监控进行简单的设置:

  1. 可以暂停监控布局变化,暂停后页面就不会实时进行变化,这样页面中的图形元素就可以保持不变;
  2. 可以强制重绘监控布局,这样就可以不用等下一个重绘时间点;
  3. 可以将监控内容保存成SVG格式文件;
  4. 可以将监控数据保存成JSON格式文件;
  5. 可以将展现图形切换成高对比样式,如下图所示:

visualization17

Weave Scope这个项目还会自动呈现容器之间的关系,方便监控容器化和微服务化的应用。在上面的例子中,可以看到机器38dad64f上面存在两个运行状态的应用容器,分别是wordpress-db和wordpress-app,其中wordpress-db是一个mysql应用容器,wordpress-app是一个wordpress应用容器,服务端口是10080,wordpress应用容器需要使用mysql应用容器,现在已经安装好了wordpress-app容器,但是对wordpress还没有进行安装配置,现在容器视图中界面如下:

visualization18

当在浏览器中输入http://ip:10080,并对wordpress进行安装配置时,容器视图中界面如下,可以看到scope监控到有outbound连接请求,促使wordpress-app进行inbound连接:

visualization19

在安装配置好wordpress后,进入wordpress登录界面,这时候在scope的进程视图中可以看到多了一个apache进程,这个进程就是提供wordpress的web服务:

visualization20

我们登录到wordpress中,对wordpress进行升级,wordpress升级界面如下:

visualization21

此时我们在scope容器视图中查看,可以看到wordpress-app同wordpress-db两个容器之间有通讯,这是因为wordpress升级过程中需要操作mysql数据库,也就是说需要同wordpress-db进行通讯。

visualization22

上面介绍的是在主机上安装scope的例子,scope还可以安装在kubernetes上,还可以安装在Amazon ECS上,还可以安装在DC/OS上。

综上所述,一旦我们将应用容器化之后,传统的应用监控可能不起作用了,需要我们采用新的方式来监控应用、监控进程、监控容器,通过Weave Scope这个项目,可以方便的监控容器之间的关系,也方便监控容器化和微服务化的应用,帮助我们了解应用和容器的运行状况。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页