【Docker 那些事儿】容器监控系统,来自Docker的暴击


在这里插入图片描述

🌟 前言

在企业中通常业务是不允许随意停止的否则将给企业带来巨大的经济损失。
 
运维工程师要保证业务正常运行就必须利用工具时刻监控业务的运行状态容器中的业务也不例外。
 
除了容器自身的监控命令外还有一些针对容器的动态特征而开发的第三方监控工具。
 
本章将对 容器监控 及其相关内容进行详解。

1. Docker 监控命令

在容器中通常可以通过执行命令或利用第三方工具获取当前容器中的数据并将数据呈现给用户。

安装完成的 Docker 自带一些用于监控容器的子命令这是 Docker 开发者为用户提供的容器监控方式。

🍑 docker ps 命令

docker ps 命令是之前中讲过的命令用来查看容器状态示例代码如下
在这里插入图片描述
另外通过 docker container ls 命令也可以达到相同的效果示例代码如下
在这里插入图片描述
注意若是 docker container ls 命令执行失败更新 Docker 版本即可。

🍑 docker top 命令

docker top 命令用于查看容器中的进程示例代码如下
在这里插入图片描述
以上示例通过 docker top 命令添加容器 ID 号查看到了容器内进程。

除此之外还可以在命令中添加容器名称达到相同的效果示例代码如下
在这里插入图片描述
docker top 命令中添加参数即可显示特定的进程信息此处以 -u 参数为例示例代码如下
在这里插入图片描述
以上示例通过给 docker top 命令添加 -u 参数将 sysdig 容器的进程信息以用户为主的格式显示出来。

🍑 docker stats 命令

docker stats 命令用于查询容器的各项资源的消耗情况示例代码如下
在这里插入图片描述
以上示例执行了 docker stats 命令在终端通过一个动态列表显示出各个容器的资源使用情况如 cpu 使用率、内存、容器网络等信息。

在没有限制容器内存的情况下此处将会显示宿主机的内存。

此处的动态列表有一项明显的不足就是只能显示容器 ID 号不显示容器名称。

但只要在命令中添加容器名称即可查看指定容器的信息示例代码如下
在这里插入图片描述
Docker 自带的容器监控命令能够灵活捕捉容器的实时信息且使用方便。

但它们无法反映容器资源占用的趋势且只能显示有限的数据。

2. Sysdig

Sysdig 是一款命令行监控工具因其轻量级的特点深受广大用户的喜爱。

Sysdig 就像放大镜使用户可以更清晰地看到宿主机与容器的各项行为。

它相当于多种 Linux 监控工具的合集如 strace、htop、lsof 等将这些工具的功能及查询结果整合到同一个界面中供用户操作。

Sysdig 为在 Docker Hub 中提供了容器镜像用户可以将 Sysdig 以容器的形式运行示例代码如下
在这里插入图片描述
以上示例中Sysdig 容器以挂载宿主机目录的方式收集系统信息并给予其足够的系统权限。

注意该命令中必须使用绝对路径否则会在执行时出错。

容器启动后将直接进入容器终端若通过 Ctrl+P+Q 组合键退出容器或者容器在后台运行通过 exec 命令即可进入 Sysdig 容器示例代码如下
在这里插入图片描述
Sysdig 容器中通过以下命令启动 Sysdig 监控
在这里插入图片描述
执行成功之后将显示 Sysdig 功能界面如图所示。
在这里插入图片描述
功能界面中不仅有各项资源的使用信息下方还有各类选项用户可以根据不同要求从不同角度去监控不同类型的资源。

F2 键或者单击 Views 选项进入监控选项列表如图所示。
在这里插入图片描述
在该界面中左边列出了 Sysdig 的各个监控项右边是关于监控项的说明。

通过键盘方向键即可移动界面中的光标从而切换监控项。

下面将光标移动到 Containers 项按回车键或者双击该选项进入容器监控界面如图所示。
在这里插入图片描述
若是用户觉得图中的内容太过繁琐或者难以理解可以按 F7 键进入数据说明界面。

其中有对各项数据的解释能帮助用户更快掌握 Sysdig 的使用方法如图所示。
在这里插入图片描述
进入该界面之后按任意键即可退出。

另外在监控界面中还可以指定按照某一项数据进行排序单击列表中某一项数据的表头即可。

此处以内存为例按照占用内存排序的监控列表如图所示。
在这里插入图片描述
若要查看单个容器内部信息将光标移动到该容器信息上按回车键即可如图所示。
在这里插入图片描述
再移动光标到指定信息按回车键还可以查看容器进程中的线程信息如图所示。
在这里插入图片描述
若要返回上一级在键盘上按退格键即可。

为方便用户管理Sysdig 还支持搜索功能通过 Ctrl+F 组合键即可启动该功能再输入关键字即可查询。此处关键字以 usr 为例如图所示。
在这里插入图片描述
如果在操作过程中遇到问题可以按 F1 键或者单击某选项进入帮助文档。

帮助文档详细介绍了 Sysdig 的操作方式供用户学习。

若动态列表变化太快导致用户无法准确查看到信息可以按P键将列表暂停。

Sysdig 为用户提供了较为全面的监控视角但其本质是命令行工具缺乏更具直观性的监控角度。

3. Weave Scope

Weave Scope 为用户提供了更直观的监控视角它将整个监控以图形界面的形式呈现出来。

🍑 安装 Weave Scope

首先下载 Weave Scope 的二进制安装包到指定的路径下示例代码如下
在这里插入图片描述
Weave Scope 安装包的本质是一个脚本所以需要赋予其执行权限示例代码如下
在这里插入图片描述
然后通过命令执行该脚本示例代码如下
在这里插入图片描述
此时Weave Scope 监控已经开启通过浏览器访问系统提示中的 http://192.168.77.128:4040/ 即可进入监控界面。

在进入界面之前先查看容器状态示例代码如下
在这里插入图片描述
从以上示例中可以看到宿主机中增加了一个被命名为 weavescope 的新容器这说明 Weave Scope 以容器的方式在宿主机中运行。

下面根据提示进入 Weave Scope 界面如图所示。
在这里插入图片描述
图中宿主机中的所有容器都以图形的形式呈现出来更加便于用户管理。

🍑 监控容器

Weave Scope 界面中宿主机上的容器被分为多个种类默认不显示 Weave Scope 本身的容器。

若要查看所有容器就需要在界面左下角的选项中进行操作如图所示。
在这里插入图片描述
在左下方单击 All 选项即可查看宿主机中所有运行中的容器如图所示。
在这里插入图片描述
若要查看容器的资源占用情况需要在界面上方选项中进行操作如图所示。
在这里插入图片描述
在上方单击 CPU 选项即可显示界面中容器的 CPU 使用情况如图所示。
在这里插入图片描述
单击 CPU 选项之后CPU 使用情况将会以液位高度的形式在容器图标上显示。

此时将鼠标指针移动到容器图标之上即可显示具体数据如图所示。
在这里插入图片描述
若要查看某一容器的详细信息单击该容器图标即可如图所示。
在这里插入图片描述
其中容器的详细信息包括以下各项

  • Status

CPU与内存的实时状态曲线图。

  • Info

镜像、镜像标签、命令等信息。

  • Processes

该容器中实时运行的进程信息。

  • Docker labels

维护人员或容器的启动命令等信息。

  • Image

该容器的镜像信息。

容器详细信息界面中有一行可对该容器直接进行操作的选项如图所示。
在这里插入图片描述
图中的选项从左到右分别表示

通过 docker attach 命令进入容器终端

通过 docker exec 命令进入容器终端

通过 docker restart 命令重新启动容器

通过 docker pause 命令暂停容器

通过 docker stop 命令终止容器。

有了这些选项用户就不需要在终端中输入命令直接单击选项即可对容器进行操作。

若需要执行这些选项之外的操作可通过选项进入容器终端完成。

🍑 监控宿主机

Weave Scope 为用户提供广阔的监控视角除了监控容器还可以对宿主机进行监控。

单击界面上方的 Hosts 选项即可查看宿主机如图所示。
在这里插入图片描述
与容器操作相同单击宿主机图标即可查看其详细信息如图所示。
在这里插入图片描述
与容器相比宿主机的 Staus 项中增加了负载信息。

详细信息还包含了宿主机中的容器信息单击容器名称即可查看容器的详细信息。

宿主机的信息中只有一个供用户对其进行操作的选项单击即可进入宿主机终端如图所示。
在这里插入图片描述

🍑 多宿主机监控

在企业生产环境中通常需要使用多台宿主机部署容器业务所以容器监控也需要同时监控多台宿主机。

Weave Scope 恰好拥有多宿主机监控的功能下面通过示例来演示该功能的使用方式。

首先准备两台安装了 Weave Scope 的服务器并分别在启动命令中添加两个服务器的 IP 地址进行启动示例代码如下
在这里插入图片描述
根据两台宿主机中启动命令的执行结果无论是访问 http://192.168.77.128:4040/ 还是 http://192.168.77.130:4040/都可以监控到两台宿主机如图所示。
在这里插入图片描述
单击界面上方的 Containers 选项查看所有宿主机中的容器如图所示。
在这里插入图片描述
为了便于用户分辨Weave Scope 在每个容器图标下的容器名称后都会标注该容器所属宿主机的主机名。

在生产环境中部署大量容器需要对某一容器进行操作时可以使用 Weave Scope 界面左上角的搜索功能对该容器进行搜索。

此处以关键字 "reg" 为例搜索结果如图所示。
在这里插入图片描述
另外Weave Scope 还支持逻辑条件搜索。

例如搜索 CPU 占用率大于 1% 的容器在搜索栏中输入 "cpu>1 即可如图所示。
在这里插入图片描述
界面的右下角有四个选项从左到右前三个是调试界面显示的选项最后一个是 Weave Scope 的帮助选项如图所示。
在这里插入图片描述
单击帮助选项即可查看 Weave Scope 的帮助文档如图所示。
在这里插入图片描述

4. 总结

本章讲解了 Docker 自带的监控命令以及一些第三方监控软件的安装与使用。

其中Sysdig 是一款优秀的命令行监控工具

Weave Scope 不仅操作简单还为用户提供了更为直观的图形界面。

希望大家通过本篇文章的学习能够熟练掌握 Docker 容器的监控方式以保证容器中业务的正常运行。

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
    标签: Docker