40 张图 详解 Docker 容器监控

71a541261bc7b417627291a3704dc7bc.gif

作者 | 飞向星的客机

来源 | CSDN博客

前言

在企业中,通常业务是不允许随意停止的,否则将给企业带来巨大的经济损失。

运维工程师要保证业务正常运行,就必须利用工具时刻监控业务的运行状态,容器中的业务也不例外。

除了容器自身的监控命令外,还有一些针对容器的动态特征而开发的第三方监控工具。

本章将对容器监控及其相关内容进行详解。

46f9afeaf87481640499e9ee2e7684a8.png

Docker 监控命令

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

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

🍑 docker ps 命令

docker ps 命令是之前中讲过的命令,用来查看容器状态,示例代码如下:

9021d8fd13678b482b3bdcf9c8234e42.png

另外,通过 docker container ls命令也可以达到相同的效果,示例代码如下:

8f2b7d9f67f8c8f65108a67853620685.png

注意,若是 docker container ls命令执行失败,更新 Docker 版本即可。

🍑 docker top 命令

docker top 命令用于查看容器中的进程,示例代码如下:

e8ec2c843d88d2699c6c7ef078ff24cb.png

以上示例通过 docker top 命令添加容器 ID 号查看到了容器内进程。

除此之外,还可以在命令中添加容器名称,达到相同的效果,示例代码如下:

e6a35b115b759dc9f7b82629c7a48958.png

在 docker top 命令中添加参数即可显示特定的进程信息,此处以 -u 参数为例,示例代码如下:

6ec0d827b42c33cad27dece363c92207.png

以上示例通过给 docker top 命令添加 -u 参数,将 sysdig 容器的进程信息以用户为主的格式显示出来。

🍑 docker stats 命令

docker stats 命令用于查询容器的各项资源的消耗情况,示例代码如下:

aaa685de47f604a65ede484c8b259b83.png

以上示例执行了 docker stats 命令,在终端通过一个动态列表显示出各个容器的资源使用情况,如 cpu 使用率、内存、容器网络等信息。

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

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

但只要在命令中添加容器名称,即可查看指定容器的信息,示例代码如下:

75693adf6e56d5d252ba30ceecf4010d.png

Docker 自带的容器监控命令能够灵活捕捉容器的实时信息,且使用方便。

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

60655ccc8af4f3695498d2866f51d5a1.png

Sysdig

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

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

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

Sysdig 为在 Docker Hub 中提供了容器镜像,用户可以将 Sysdig 以容器的形式运行,示例代码如下:

98ce5fb64a1969172cf88dd25aa19b6f.png

以上示例中,Sysdig 容器以挂载宿主机目录的方式收集系统信息,并给予其足够的系统权限。

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

容器启动后将直接进入容器终端,若通过 Ctrl+P+Q 组合键退出容器或者容器在后台运行,通过 exec 命令即可进入 Sysdig 容器,示例代码如下:

8a1b8d8fdd4df5fbc6e759b30011a1c9.png

在 Sysdig 容器中,通过以下命令启动 Sysdig 监控:

e93bdc85c6999ac43d9a80e4f08f36e1.png

执行成功之后,将显示 Sysdig 功能界面,如图所示。

9f5577c6392096e8da18da6c60b9dd7e.png

功能界面中不仅有各项资源的使用信息,下方还有各类选项,用户可以根据不同要求从不同角度去监控不同类型的资源。

按 F2 键或者单击 Views 选项,进入监控选项列表,如图所示。

b0a60aa0f25b35b97aa04ee83c9e6b4b.png

在该界面中,左边列出了 Sysdig 的各个监控项,右边是关于监控项的说明。

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

下面将光标移动到 Containers 项,按回车键或者双击该选项,进入容器监控界面,如图所示。

30630e6b01c7ee3ecc5583494e040195.png

若是用户觉得图中的内容太过繁琐,或者难以理解,可以按 F7 键,进入数据说明界面。

其中有对各项数据的解释,能帮助用户更快掌握 Sysdig 的使用方法,如图所示。

b974e62139a72d065865606583bc61a4.png

进入该界面之后,按任意键即可退出。

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

此处以内存为例,按照占用内存排序的监控列表,如图所示。

938801fda6f376314b2f37f5652c1151.png

若要查看单个容器内部信息,将光标移动到该容器信息上,按回车键即可,如图所示。

ab5d3161fd7fc8d8ed1f9f1052861000.png

再移动光标到指定信息,按回车键还可以查看容器进程中的线程信息,如图所示。

305916ac5ed41e2945d6eed175d6bf26.png

若要返回上一级,在键盘上按退格键即可。

为方便用户管理,Sysdig 还支持搜索功能,通过 Ctrl+F 组合键即可启动该功能,再输入关键字即可查询。此处关键字以 usr 为例,如图所示。

bf25254d852cb8e93b6f48b9d745a64a.png

如果在操作过程中遇到问题,可以按 F1 键或者单击某选项,进入帮助文档。

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

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

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

946408bfcb1f531e1d55bbbf203085b5.png

Weave Scope

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

🍑 安装 Weave Scope

首先,下载 Weave Scope 的二进制安装包到指定的路径下,示例代码如下:

8f95b9c2bb3df60832b40b8d2235eb61.png

Weave Scope 安装包的本质是一个脚本,所以需要赋予其执行权限,示例代码如下:

71ec0c08784f0476bf9f81e19d7f5cc3.png

然后,通过命令执行该脚本,示例代码如下:

b58ae46ad48657fd1cf2f72fa199c97a.png

此时,Weave Scope 监控已经开启,通过浏览器访问系统提示中的 http://192.168.77.128:4040/ 即可进入监控界面。

在进入界面之前先查看容器状态,示例代码如下:

409da5a153fa9e0c4aa171d67045f610.png

从以上示例中可以看到,宿主机中增加了一个被命名为 weavescope 的新容器,这说明 Weave Scope 以容器的方式在宿主机中运行。

下面根据提示进入 Weave Scope 界面,如图所示。

662996088c1407bf71d0fd16963cfd98.png

图中,宿主机中的所有容器都以图形的形式呈现出来,更加便于用户管理。

🍑 监控容器

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

若要查看所有容器,就需要在界面左下角的选项中进行操作,如图所示。

1e87eefe5c7b6ba922e3cc98c1b9aa22.png

在左下方单击 All 选项,即可查看宿主机中所有运行中的容器,如图所示。

f29c0ac5c815e8c5696c0b8836a4666c.png

若要查看容器的资源占用情况,需要在界面上方选项中进行操作,如图所示。

fbec0f52141bd536b477e999bb7affa6.png

在上方单击 CPU 选项,即可显示界面中容器的 CPU 使用情况,如图所示。

9843ba9bfb51217b79b5bd075eaa26a7.png

单击 CPU 选项之后,CPU 使用情况将会以液位高度的形式在容器图标上显示。

此时,将鼠标指针移动到容器图标之上,即可显示具体数据,如图所示。

ac5e14edfab4d8e68adb34be932bf939.png

若要查看某一容器的详细信息,单击该容器图标即可,如图所示。

0548bf247cf3beb607e6c61e9a0850d4.png

其中,容器的详细信息包括以下各项:

  • Status

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

  • Info

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

  • Processes

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

  • Docker labels

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

  • Image

该容器的镜像信息。

容器详细信息界面中,有一行可对该容器直接进行操作的选项,如图所示。

97b3b5dc8db4a7018e8a48e83e0809b4.png

图中的选项从左到右分别表示:

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

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

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

通过 docker pause 命令暂停容器;

通过 docker stop 命令终止容器。

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

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

🍑 监控宿主机

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

单击界面上方的 Hosts 选项,即可查看宿主机,如图所示。

e68b310e02c81ffa13abdf6475245c74.png

与容器操作相同,单击宿主机图标即可查看其详细信息,如图所示。

76206c5e75a540f77f1387360a2ab283.png

与容器相比,宿主机的 Staus 项中增加了负载信息。

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

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

17587bc6f9d6302505894818e86cb667.png

🍑 多宿主机监控

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

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

首先,准备两台安装了 Weave Scope 的服务器,并分别在启动命令中添加两个服务器的 IP 地址进行启动,示例代码如下:

8b4ed2dff8055f97299722b83619b270.png

根据两台宿主机中启动命令的执行结果,无论是访问 http://192.168.77.128:4040/ 还是 http://192.168.77.130:4040/,都可以监控到两台宿主机,如图所示。

1d5df9b0d924c1b0db855c1d50808bb8.png

单击界面上方的 Containers 选项,查看所有宿主机中的容器,如图所示。

0a759eb36414e38e2cb996e67cb2fada.png

为了便于用户分辨,Weave Scope 在每个容器图标下的容器名称后都会标注该容器所属宿主机的主机名。

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

此处以关键字 "reg" 为例,搜索结果如图所示。

497738a7b974902c3666bb6ffd1f99b2.png

另外,Weave Scope 还支持逻辑条件搜索。

例如,搜索 CPU 占用率大于 1% 的容器,在搜索栏中输入 "cpu>1 即可,如图所示。

03b31988d3324278c5fffd3952baa137.png

界面的右下角有四个选项,从左到右前三个是调试界面显示的选项,最后一个是 Weave Scope 的帮助选项,如图所示。

f7c55c0f312f1f7858d58d34586bfad1.png

单击帮助选项,即可查看 Weave Scope 的帮助文档,如图所示。

d1a50049ce217fad7835bdc24c05db12.png

9021272f3aae1e0714a7f78f0f142810.png

总结

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

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

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

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

29dc8b998dc882541cfe54a103820a27.gif

往期推荐

Docker 那些事儿:如何安全地停止、删除容器?

剖析 kubernetes 集群内部 DNS 解析原理

Kubernetes 在科技革命中的演变

实战 Kubectl 创建 Deployment 部署应用

b151ad86a150a718633c43f32c67bdfb.gif

点分享

95cfba17cbe95fa4743fb880b68b89f0.gif

点收藏

faf5eed7d22d31df92f51094f65cedbb.gif

点点赞

b3ba6df28b7535348fbcb8c43e79592d.gif

点在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Cloud Gateway 突发高危漏洞,下一代云原生网关恰逢其时?

简介:Log4j2 的漏洞刚告一段落,Spring 官方在 2022 年 3 月 1 日发布了 Spring Cloud Gateway 的两个 CVE 漏洞:分别为 CVE-2022-22946(严重性:Medium)与 CVE-2022-22947(代码注入漏洞&#xff…

云小蜜 Dubbo3.0 实践:从微服务迁移上云到流量治理

简介:阿里云-达摩院-云小蜜对话机器人产品基于深度机器学习技术、自然语言理解技术和对话管理技术,为企业提供多引擎、多渠道、多模态的对话机器人服务。17 年云小蜜对话机器人在公共云开始公测,同期在混合云场景也不断拓展。为了同时保证公共…

解析并执行 shell 命令

‍‍作者 | 闪客来源 | 低并发编程新建一个非常简单的 info.txt 文件。name:flash age:28 language:java在命令行输入一条十分简单的命令。[rootlinux0.11] cat info.txt | wc -l 3这条命令的意思是读取刚刚的 info.txt 文件,输出它的行数。 在上一回中,…

EventBridge消息路由|高效构建消息路由能力

简介:企业数字化转型过程中,天然会遇到消息路由,异地多活,协议适配,消息备份等场景。本篇主要通过 EventBridge 消息路由的应用场景和应用实验介绍,帮助大家了解如何通过 EventBridge 的消息路由高效构建消…

哪吒汽车选择BlackBerry QNX为中国新能源轿跑——哪吒S保驾护航

BlackBerry与合众新能源汽车有限公司近日宣布达成合作,合众汽车旗下汽车品牌——中国造车新势力哪吒汽车,在其即将量产的运动型智享轿跑——哪吒S中搭载了BlackBerry QNX为其保驾护航,旨在确保关键系统的功能安全、网络安全与可靠性的同时&am…

异步请求积压可视化|如何 1 分钟内快速定位函数计算积压问题

简介:本文分为三个部分:概述中引入了积压问题,并介绍了函数计算异步调用基本链路;并在指标介绍部分详细介绍了指标查看方式,分类解读了不同的指标含义;最后以一个常见的异步请求积压场景为例,介…

并发-分布式锁质量保障总结

简介:并发问题是电商系统最常见的问题之一,例如库存超卖、抽奖多发、券多发放、积分多发少发等场景;之所以会出现上述问题,是因为存在多机器多请求同时对同一个共享资源进行修改,如果不加以限制,将导致数据…

以网强算,中国移动算网建设激发澎湃能量

近日,在首届中国算力大会上,中国工程院院士张宏科发表演讲认为,“信息网络已经成为大国博弈的核心与关键,面临机遇期,我们亟需新型网络体系与技术创新,满足自主可控和建设网络强国的重大战略需求&#xff0…

云上的移动性能测试平台

简介:功能决定现在,性能决定未来。欢迎大家围观《云上的移动性能测试平台》, 了解EMAS性能测试平台的能力与规划。 1. 功能决定现在,性能决定未来 性能测试在移动测试领域一直是一个大难题,它最直观的表现是用户在前…

Docker 镜像和容器的导入导出及常用命令

作者 | 微枫Micromaple来源 | CSDN博客Docker 镜像和容器的导入导出1.1 镜像的导入导出1.1.1 镜像的保存通过镜像ID保存方式一:docker save image_id > image-save.tar例如:rootUbuntu:/usr/local/docker/nginx# docker imagesREPOSITORY TAG …

阿里云「低代码音视频工厂」正式上线,为企业用户打造音视频应用开发最短路径

简介:vPaaS全新定义企业级音视频应用开发 1月5日,阿里云视频云“低代码音视频工厂vPaaS“正式上线,极大程度降低音视频开发门槛,打破传统音视频技术壁垒,全新定义企业级的音视频应用开发。 低代码音视频工厂基于云原生…

数组方法 包含es6

有回调函数的方法都有两个参数(不写默认是window) 例:map,forEach,find let arr[1,2,3,4]; let obj{a:1,b:2}; let _thisnull; arr.map(v>{_thisthisreturn v1 },obj) console.log(_this) 数组方法细则 方法功能参数返回值是…

阿里开源支持10万亿模型的自研分布式训练框架EPL(EasyParallelLibrary)

简介:EPL背后的技术框架是如何设计的?开发者可以怎么使用EPL?EPL未来有哪些规划?今天一起来深入了解。 作者 | 王林、飒洋 来源 | 阿里技术公众号 一 导读 最近阿里云机器学习PAI平台和达摩院智能计算实验室一起发布“低碳版”巨…

如何从 Docker 镜像里提取 dockerfile!

作者 | A-刘晨阳来源 | CSDN博客今天给大家分享一下 dockerfile 里面是如何写的,然后去查了查就有了新的发现——通过镜像来提取 dockerfile。从镜像中提取dockerfile的两种方法。history参数我们可以直接用docker自带的参数来查看镜像的dockerfile,但有…

新品发布|备案变更不用再担心中断服务啦

简介:ICP备案迁移服务,就是面向有计划变更域名备案主体,或者在不同主体间迁移网站备案信息的客户,实现迁移过程中域名或者网站服务不中断的备案增值服务。 说起ICP备案,做过互联网经营业务的朋友都很熟悉,…

一眼定位问题,函数计算发布日志关键词秒检索功能

简介:当 FaaS 应用出现很多报错,且调用日志页面的请求过多时,如何才能简单、快速地查到出现 bug 的原因? 听说这个问题你也遇到了? 小王是一名程序员,最近在使用 FaaS &#xff08…

如何在 Linux 中使用 rsync 传输文件

作者 | 刘光录来源 | TIAPrsync(远程同步,Remote Sync)是一种在系统中或两个系统之间复制文件和目录的同步工具。rsync 的一个最大的优点,就是它只复制更改的文件,因而可以减少 CPU 消耗,在复制文件时节省带…

国民级消消乐背后的网络技术支持:不畏巨“峰”,“运”筹帷幄

简介:近日,阿里云网络携手乐元素共同部署建设了基于7层业务自动化调度的弹性网络架构,进一步提升乐元素在用户服务上的娱乐体验。提到乐元素相信大家都不陌生,作为从事移动网络游戏的研发、运营及广告平台,其代表作就是…

透析阿里云视频云「低代码音视频工厂」之能量引擎——vPaaS视频原生应用开发平台

简介:支撑15分钟上线高品质专属音视频平台 为满足企业用户极速搭建高品质专属音视频业务的需求,阿里云视频云的“低代码音视频工厂”应运而生,但极速而高品质的平台搭建诉求,需要用全新的开发方式才能真正实现,而全新…

自动驾驶“稳打地基”,小鹏汽车基于阿里云建自动驾驶AI智算中心算力可达600PFLOPS

数据驱动是自动驾驶发展的公认方向,也让自动驾驶模型训练成为一头“吃算力”的巨兽。自动驾驶的视觉检测、轨迹预测与行车规划等算法模型,有赖于机器学习海量数据集,但算力的不足让研发速度仍远远赶不上数据量增长的速度。随着传感器的进一步…