sysdig 是一个轻量级的系统监控工具,同时它还原生支持容器。经过 sysdig 咱们能够近距离观察 linux 操做系统和容器的行为。 Linux 上有不少经常使用的监控工具,好比 strace,tcpdump,htop, iftop,lsof ...... 而 sysdig 则是将这些工具的功能集成到一个工具中,而且提供一个友好统一的操做界面。linux
//安装和运行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/sysdignginx
//若是提示下载失败,运行下边这条命令: sysdig-probe-loader
能够看到,sysdig 容器是以 privileged 方式运行,并且会读取操做系统 /dev,/proc 等数据,这是为了获取足够的系统信息。 启动后,经过 docker container exec -it sysdig bash 进入容器。git
//成功以后执行 csysdig 命令,将以交互方式启动 sysdig: root@971f955c2f7b:/# csysdig
进入界面后点击“F2(Views)”,而后双击“Containers”。github
该界面能够实时监控容器的各类信息:docker
若是想看某个容器运行的进程,好比 nginx,将光标移到目标容器,而后回车或者双击。安全
还能够继续双击查看进程中的线程。bash
返回上一级,按退格键便可。 sysdig 的交互功能很强,若是界面显示的条目不少,能够点击底部 Search菜单,而后输入关键字进行查找。以下图,关键字为 service。ssh
若是以为界面刷新太快,看不清楚关注的信息,能够点击底部 Pause 菜单。 sysdig 的特色以下: 监控信息全,包括 Linux 操做系统和容器。 界面交互性强。tcp
不过 sysdig 显示的是实时数据,看不到变化和趋势。并且是命令行操做方式,须要 ssh 到 Host 上执行,会带来一些不便。ide
Weave Scope 的最大特色是会自动生成一张 Docker 容器地图,让咱们可以直观地理解、监控和控制容器。
1,安装scope:
在github上下载源代码: [root@sqm-docker01 ~]# wget https://github.com/weaveworks/scope/archive/v1.11.0.tar.gz
[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
若是如今有多台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
访问网页:(随便其中一台主机的地址都是能够的)
发现能够分别监控到两台docker主机上所运行的容器。
scope监控针对的是容器的信息,它依赖于防火墙,因此没法实现远程控制,且对用户没有限制,安全系数较低。
———————— 本文至此结束,感谢阅读 ————————