docker的监控(简单部署sysdig和weavescope)(代码片段)

author author     2023-05-02     255

关键词:

一、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(代码片段)

简介它是系统监控、分析和排障的工具,官方网址https://sysdig.com/特性:三优点一缺点整合虽然linux有很多系统分析和调优的工具,但是它们一般都负责单个的功能,如果要分析和定位问题,需要熟练掌握需要... 查看详情

centos7下安装docker(17.1docker监控---sysdig)

...一的操作界面。 安装和运行sysdig的最简单方法是运行docker容器 查看详情

监控利器sysdig-每天5分钟玩转docker容器技术(79)

sysdig是一个轻量级的系统监控工具,同时它还原生支持容器。通过sysdig我们可以近距离观察linux操作系统和容器的行为。Linux上有很多常用的监控工具,比如strace,tcpdump,htop,iftop,lsof......而sysdig则是将这些工具的功能集成到一... 查看详情

监控利器sysdig-每天5分钟玩转docker容器技术(79)

sysdig是一个轻量级的系统监控工具,同时它还原生支持容器。通过sysdig我们可以近距离观察linux操作系统和容器的行为。Linux上有很多常用的监控工具,比如strace,tcpdump,htop,iftop,lsof......而sysdig则是将这些工具的功能集成到一... 查看详情

docker监控weavworks/scope,单台和多台部署

...从网上下载我用的本地包:将它做成镜像:[root@localhost~]#dockerload<sysdig.tar运行这个镜像:[root@localhost~]#dockerrun-it--rm--namesysdig--privileged=true--volume=/var/run/docker.sock:/host/var/run/docker.sock--volume=/dev:/host/dev--volume=/proc:/host/proc:ro--volume=/b... 查看详情

docker监控工具sysdig

运行容器[[email protected]~]#dockercontainerrun-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= 查看详情

docker入门基础(代码片段)

目录七、Docker最常用的监控方案1、Docker自带的监控子命令2、sysdig3、scope4、cAdvisor5、Prometheus6、各种方案对比七、Docker最常用的监控方案1、Docker自带的监控子命令1)psdockercontainerps是我们早已熟悉的命令了,方便我们查看当前运行... 查看详情

docker最常用的监控方案-每天5分钟玩转docker容器技术(78)

当Docker部署规模逐步变大后,可视化监控容器环境的性能和健康状态将会变得越来越重要。在本章中,我们将讨论几个目前比较常用的容器监控工具和方案,为大家构建自己的监控系统提供参考。首先我们会讨论Docker自带的几个... 查看详情

centos7下安装docker(15.6docker跨主机网络---weave)

Weave是weaveworks开发的容器网络解决方案。weave创建的虚拟网络可以将部署在多个主机上的容器连接起来。对于容器来说,weave就像一个巨大的网络交换机,容器可以直接通信,无需NAT和端口映射。除此之外,weave的DNS模块是容器可... 查看详情

如何使用weave网络?-每天5分钟玩转docker容器技术(63)

weave是Weaveworks开发的容器网络解决方案。weave创建的虚拟网络可以将部署在多个主机上的容器连接起来。对容器来说,weave就像一个巨大的以太网交换机,所有容器都被接入这个交换机,容器可以直接通信,无需NAT和端口映射。... 查看详情

如何使用weave网络?-每天5分钟玩转docker容器技术(63)

weave是Weaveworks开发的容器网络解决方案。weave创建的虚拟网络可以将部署在多个主机上的容器连接起来。对容器来说,weave就像一个巨大的以太网交换机,所有容器都被接入这个交换机,容器可以直接通信,无需NAT和端口映射。... 查看详情

weavescope监控容器

一.介绍Docker和k8s的监控WeaveScope,功能强大,但配置简单,于是开始了接下来的配置,WeaveScope这个项目会自动生成容器之间的关系图,方便理解容器之间的关系,也方便监控容器化和微服务化的应用。WeaveScope能够很便捷的监控... 查看详情

docker网络解决方案-flannel部署记录

Docker跨主机容器间网络通信实现的工具有Pipework、Flannel、Weave、OpenvSwitch(虚拟交换机)、Calico实现跨主机容器间的通信。其中Pipework、Weave、Flannel,三者的区别是:Weave的思路在每个宿主机上布置一个特殊的route的容器,不同宿... 查看详情

如何在docker容器之间设置网络

...。准备工作在使用weave之前,你需要在所有宿主机上安装Docker环境,参考这些教程,在Ubuntu或CentOS/Fedora发行版中安装Docker。Docker环境部署完成后,使用下面的命令安装weave:$wgethttps://github.com/zettio/weave/releases/download/latest_relea 查看详情

容器中跨主机的网络方案-weave(代码片段)

容器中的网络是建立docker集群的重要内容。本文将介绍如何用Weave实现容器的多节点互通。Weave是一个开源的项目,其网站为:https://www.weave.works/其工作原理相当比较简单,每个Docke的node和其他Docker的node建立peer的关系,如下图:... 查看详情

docker监控

监控:本机监控:dockerps/top/stats实时监控:sysdig-docker原生支持  创建好容器查看命令   csysdigdockercontainerrun-itd--rm--namesysdig--privileged=true--volume=/var/run/docker.sock:/host/var/run/docker. 查看详情

部署一个redisexporter监控所有的redis实例(代码片段)

...方式,我这里选择使用k8s部署方式,大家按需选择:使用docker-compose部署使用k8s部署使用docker-compos 查看详情

容器在weave中如何通信和隔离?-每天5分钟玩转docker容器技术(65)

...t2才能加入到同一个weave网络。运行容器bbox3:eval$(weaveenv)dockerrun--namebbox3-itdbusyboxwea 查看详情