码迷,mamicode.com
首页 > 其他好文 > 详细

Docker的监控(简单部署Sysdig和Weave Scope)

时间:2019-12-24 00:04:31      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:情况   理解   介绍   命令执行   exe   暂停   containe   inux   sock   

一、Docker的监控

Docker自带的监控命令

简单命令介绍
ps
docker container ps 是我们早已熟悉的命令了,方便我们查看当前运行的容器。新版的 Docker 提供了一个新命令 docker container ls,其作用和用法与 docker container ps 完全一样。不过 ls 含义可能比 ps 更准确,所以更推荐使用。

top
如果想知道某个容器中运行了哪些进程,可以执行 docker container top [container] 命令。命令后面还可以跟上 Linux 操作系统 ps 命令的参数显示特定的信息,比如 -au。

stats
docker container stats 用于显示每个容器各种资源的使用情况。默认会显示一个实时变化的列表,展示每个容器的 CPU 使用率,内存使用量和可用量。注意:容器启动时如果没有特别指定内存 limit,stats 命令会显示 host 的内存总量,但这并不意味着每个 container 都能使用到这么多的内存。

除此之外 docker container stats 命令还会显示容器网络和磁盘的 IO 数据。默认的输出有个缺点,显示的是容器 ID 而非名字。我们可以在 stats 命令后面指定容器的名称只显示某些容器的数据。比如 docker container stats sysdig weave。

命令执行

1.ps

[root@docker01 ~]# docker ps
//查看容器信息

技术图片

2.top

[root@docker01 ~]# docker top 容器名称
[root@docker01 ~]# docker top wordpress_wordpress_1 
//查看容器中运行的进程信息,支持 ps 命令参数。

技术图片

3.stats

[root@docker01 ~]# docker stats wordpress_wordpress_1 
//实时查看容器统计信息,查看容器的CPU利用率、内存的使用量以及可用内存总量。

技术图片
默认会显示一个实时变化的列表,展示每个容器的CPU使用率,内存使用量和可用量

  注意:容器启动时如果没有特别指定内存limit,stats命令会显示host的内存总量,但这并不意味着每个container都能使用到这么多的内存
  除此之外docker container stats命令还会显示容器网络和磁盘的IO数据
  默认的输出有个缺点,显示的是容器ID而非名字。我们可以在stats命令后面指定容器的名称只显示某些容器的数据。比如docker container stats test1 test2 
[root@docker01 ~]# docker logs 容器名称
[root@docker01 ~]# docker logs wordpress_wordpress_1 
//查看容器的日志

二、用 Sysdig 监控服务器

[root@docker01 ~]# docker pull sysdig
//下载sysdig镜像

通过sysdig运行容器

[root@docker01 ~]# docker run -it --rm --name sysdig --privileged=true --volume=/var/run/docker.sock:/host/var/run/docker.sock  --volume=/dev:/host/dev --volume=/proc:/host/proc:ro  --volume=/boot:/host/boot:ro  --volume=/lib/modules:/host/lib/modules:ro --volume=/usr:/host/usr:ro  sysdig/sysdig
  可以看到,sysdig容器是以privileged方式运行,而且会读取操作系统 /dev,/proc等数据,这是为了获取足够的系统信息
  启动后,通过docker container exec -it sysdig bash进入容器,执行csysdig命令,将以交互方式启动sysdig 

下载插件失败后可以运行下边命令,重新下载

root@10ccab83a512:/# system-sysdig-loader
//下载插件失败后可以运行下边命令,重新下载

下载成功后,可以运行sysdig命令,查看监控项

root@10ccab83a512:/# sysdig
//运行sysdig命令,查看监控项,它会动态查看

使用 csysdig

csysdig 就是运 ncurses 库的用户界面的 sysdig 软件包,Ncurses 是一个能提供功能键定义 ( 快捷键 ), 屏幕绘制以及基于文本终端的图形互动功能的动态库。在 sysdig 软件包里还提供了一个工具 csysdig,该工具执行后,运行界面和 top 命令类似。csysdig 工作界面如图 5。

技术图片

运行csysdig命令,查看监控项

root@10ccab83a512:/# csysdig
//运行csysdig命令,图形化界面查看监控项,它会动态查看

csysdig 使用如下快捷键:

P:暂停屏幕输出信息

Enter:进入当前突出显示的条目。

Ctrl+F:列表搜索。

F1- 帮助信息

F2- 显示视图选择器。这将让你切换到另一个视图。

F4- 使用过滤器

F5- 查看 IO 输出信息

F7 显示帮助页面当前显示的视图。

F8 打开视图的操作面板。

F9,打开列排序面板。

Q 放弃退出。

Arrows, PgUP, PgDn, Home, End:图标上下左右的移动控制。

sysdig按不同的View来监控不同类型的资源,点击底部Views菜单(或者按F2),显示View选择列表

我们将光标移到Containers这一项,界面右边立即显示出此view的功能介绍,回车或者双击Containers,进入容器监控界面

sysdig会显示该host所有的容器的实时数据,每两秒刷新一次。各列数据的含义也是自解释的,如果不清楚,可以点一下底部的Legend,如果想按某一列排序,比如按使用的内存量,点一下列头VIRT

如果想查看某个容器的进程,将光标移动到目标容器,然后回车或者双击

还可以继续双击查看进程中的线程

返回上一级,按退格键即可

sysdig的交互功能很强,如果界面显示的条目很多,可以点击底部Search菜单,然后输入关键字进行查找

如果觉得界面刷新太快,看不清楚关注的信息,可以点击底部的Pause菜单

sysdig的特点:

(1)监控信息全,包括Linux操作系统和容器
(2)界面交互性强

其缺点是sysdig显示的是实时数据,看不到变化和趋势。而且是命令行操作方式,需要ssh到host上执行,不是太方便

总结
这些示例仅仅是展示了 Sysdig 能力的冰山一角,在目前的其他系统监控类工具中,笔者还没有看到像 Sysdig 这样功能如此强大、而又对容器支持这样好的。所以,对于经常使用服务器特别是 Docker 容器作为产品运行方式的用户,这是一款值得使用的系统工具。

三、Docker监控方案之Weave Scope

Weave Scope 的最大特点是会自动生成一张 Docker 容器地图,让我们能够直观地理解、监控和控制容器。千言万语不及一张图,先感受一下。
技术图片

[root@docker01 ~]# docker pull scope
//下载scope镜像

执行如下脚本安装运行Weave Scope

[root@docker01 ~]# curl -L git.io/scope -o /usr/local/bin/scope
[root@docker01 ~]# chmod +x /usr/local/bin/scope
[root@docker01 ~]# scope launch

技术图片

浏览器访问http://192.168.1.11:4040/

技术图片

然后就可以更好的监控,管理docker中的容器了

开启第docker02,加入docker01监控项

docker01

删除weavescope容器

[root@docker01 ~]# docker stop weavescope 
weavescope
[root@docker01 ~]# docker rm weavescope 
weavescope

docker02

[root@docker01 ~]# docker pull scope
//下载scope镜像
[root@docker01 ~]# curl -L git.io/scope -o /usr/local/bin/scope
[root@docker01 ~]# chmod +x /usr/local/bin/scope
[root@docker01 ~]# scope launch

docker01

[root@docker01 ~]# scope launch 192.168.1.11 192.168.1.13 

docker02

[root@docker02 ~]# scope launch 192.168.1.13 192.168.1.11

浏览器访问http://192.168.1.11:4040/

技术图片

浏览器访问http://192.168.1.13:4040/也是可以的

技术图片

Docker的监控(简单部署Sysdig和Weave Scope)

标签:情况   理解   介绍   命令执行   exe   暂停   containe   inux   sock   

原文地址:https://blog.51cto.com/14320361/2460996

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!