转载

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 ,我们就会看到下面所示页面。

Docker应用的可视化监控管理

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

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

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

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

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

Docker应用的可视化监控管理

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

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

原文链接: Docker应用的可视化监控管理 ,作者:马俊,天云软件产品总监。

原文  http://dockone.io/article/1469
正文到此结束
Loading...