监控利器sysdig(实时查看)

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

//安装和运行sysdig的最简单方法就是运行docker容器,命令为:[root@sqm-docker01 ~]# docker run -it --rm --name=sysdig --privileged=true -v /var/run/docker.sock:/host/var/run/docker.sock -v /dev:/host/dev -v /proc:/host/proc:ro -v /boot:/host/boot:ro -v /lib/modules:/host/lib/module:ro -v /usr:/host/usr:ro sysdig/sysdig

//如果提示下载失败,运行下边这条命令:
sysdig-probe-loader

监控利器sysdig&Weave Scope_第1张图片

可以看到,sysdig 容器是以 privileged 方式运行,而且会读取操作系统 /dev,/proc 等数据,这是为了获取足够的系统信息。 启动后,通过 docker container exec -it sysdig bash 进入容器。

//成功之后执行 csysdig 命令,将以交互方式启动 sysdig:
root@971f955c2f7b:/# csysdig

监控利器sysdig&Weave Scope_第2张图片

进入界面后点击“F2(Views)”,然后双击“Containers”。
监控利器sysdig&Weave Scope_第3张图片

该界面可以实时监控容器的各种信息:
监控利器sysdig&Weave Scope

如果想看某个容器运行的进程,比如 nginx,将光标移到目标容器,然后回车或者双击。

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

返回上一级,按退格键即可。 sysdig 的交互功能很强,如果界面显示的条目很多,可以点击底部 Search菜单,然后输入关键字进行查找。如下图,关键字为 service。

如果觉得界面刷新太快,看不清楚关注的信息,可以点击底部 Pause 菜单。 sysdig 的特点如下: 监控信息全,包括 Linux 操作系统和容器。 界面交互性强。

不过 sysdig 显示的是实时数据,看不到变化和趋势。而且是命令行操作方式,需要 ssh 到 Host 上执行,会带来一些不便。

2, 监控利器Weave Scope:

Weave Scope 的最大特点是会自动生成一张 Docker 容器地图,让我们能够直观地理解、监控和控制容器。
1,安装scope:

在github上下载源代码:
[root@sqm-docker01 ~]# wget https://github.com/weaveworks/scope/archive/v1.11.0.tar.gz

监控利器sysdig&Weave Scope

[root@sqm-docker01 ~]# cd /usr/local/bin/scope-1.11.0/
[root@sqm-docker01 ~]# cd /usr/local/bin/scope-1.11.0/
[root@sqm-docker01 scope-1.11.0]# mv scope  /usr/local/bin/
[root@sqm-docker01 scope-1.11.0]# chmod +x /usr/local/bin/scope

[root@sqm-docker01 scope-1.11.0]# scope launch
监控利器sysdig&Weave Scope_第4张图片
监控利器sysdig&Weave Scope_第5张图片

如果现在有多台dockerhost时,又该如何部署。

(1)下载weave/scope镜像
[root@sqm-docker02 ~]# docker pull weaveworks/scope 

(2)下载v1.11.0源码包,并进行解压(该软件包是支持下面的执行命令)

[root@sqm-docker02 ~]# tar zxf v1.11.0.tar.gz 
[root@sqm-docker02 ~]# cd scope-1.11.0/
[root@sqm-docker02 scope-1.11.0]# cp scope  /usr/local/bin/
[root@sqm-docker02 scope-1.11.0]# chmod +x /usr/local/bin/scope 

(3)接下来在docker01上添加监控主机:
[root@sqm-docker01 scope-1.11.0]# scope launch 172.16.1.30 172.16.1.31 #注意本机ip在前,其他主机在后

docker02上相同的操作:
[root@sqm-docker02 scope-1.11.0]# scope  launch 172.16.1.31 172.16.1.30

监控利器sysdig&Weave Scope

访问网页:(随便其中一台主机的地址都是可以的)
监控利器sysdig&Weave Scope_第6张图片
监控利器sysdig&Weave Scope_第7张图片
发现可以分别监控到两台docker主机上所运行的容器。

scope监控针对的是容器的信息,它依赖于防火墙,所以无法实现远程控制,且对用户没有限制,安全系数较低。

———————— 本文至此结束,感谢阅读 ————————