Docker监控方案

docker中有几个自带的监控方案:sysdiguifdscope

sysdig是命令行界面的监控,而后两者是web页面的图形化监控

日后,作者将会去研究普鲁米修斯的容器监控

sysdig容器监控的下载使用

下载

[root@localhost ~]# docker pull sysdig/sysdig

使用

运行之前需要让主机中的所有数据映射到该容器内

[root@localhost ~]# docker run -itd --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 

d4ab4efbe108a9b626e9cd55af6059efccda761233243d30e008740272270397

进入容器

[root@localhost ~]# docker exec -it sysdig bash
root@d4ab4efbe108:/ 

启动容器并进入之后,sysdig还会在继续加载一些东西,如果网慢的朋友,第一次执行下面的操作报错时,请删除容器,重新运行,并等待一段时间

root@d4ab4efbe108:/# csysdig

接下来就会进入如下的界面

sysdig1

容器监控

按q可以直接退出,因为现在没有容器在运行,所以退出先运行几个容器

[root@localhost ~]# docker run -itd --name web1 httpd
0a9397f90828e526c32f472848dd9c01f384bef15bfecd783cee3a024fc5fe7a
[root@localhost ~]# docker run -itd --name web2 httpd
d53969e159ba30c58ad2c8529d0f45f7ffa2bb735f896c9ec6a0fa7f66a58a67
[root@localhost ~]# docker run -itd --name web3 httpd
1a91df06daec5ab941fe5aa99f065de061c0c30e55bb951af7de8c3dfcd3c7ca

运行了三个web容器,然后进入sysdig继续查看

[root@localhost ~]# docker exec -it sysdig bash
root@d4ab4efbe108:/# csysdig

进入监控界面之后的画面的下方,有提示按键,F1帮助,F2编辑(可以查看监控类型)

按F2进入如图,查看containers查看所运行的容器

sysdig2

监控到的容器对各项硬件的使用情况

还可以通过选择哪一个容器来查看容器所使用的进程

sysdig3

鉴于其他操作,这里不多说,请查阅其他资料

uifd容器监控的下载使用

至今貌似有四年没有更新了

下载

[root@localhost ~]# docker pull uifd/ui-for-docker

使用

运行容器

[root@localhost ~]# docker run -itd --name docker-web -p 9000:9000 \
--volume /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker
752374c0676f2fbc901e1a853fc05481199ec46b2049083b62a7e5c5b27e9a1a

我在运行容器是报了防火墙策略的错误如下

docker: Error response from daemon: driver failed programming external
connectivity on endpoint docker-web 
(2c7ed23aa1f5caf36b8961b9754ee5c2fbb67063732b583f2f6ca40c533a989f):  
(iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 
9000 -j DNAT --to-destination 172.17.0.6:9000 ! -i docker0: iptables: 
No chain/target/match by that name.

这是因为防火墙策略造成的,而我本身的防火墙是关着的,所以要将防火墙先启用

systemctl start firewalld
iptables -F  # 清空防火墙策略
iptables-save  # 保存

管理容器

这是可以使用本机映射到的端口号访问,ui界面

看不懂英文的可以直接使用谷歌浏览器翻译,或者其他浏览器的页面翻译功能即可

如图显示的Running Container就是正在运行的几个容器

uifd1

在界面中可以直接对容器进行操作,随便点击进入一个容器的操作界面

可以对容器进行停止/杀死/挂载/重启/构建镜像/重命名等操作

uifd2

在该界面的最下方可以将容器删除,前提是必须先stop停止容器运行,点击stop

uifd3

较比之前已经少了一个容器,我删除了bbox1

uifd4

管理容器网络

通过点击上方的Container Network可以查看到使用docker网络的所有容器

uifd5

管理镜像

可以查看到docker下载的所有镜像

uifd6

也可以使用pull进行下载,可以指定下载源和版本

uifd7

docker网络

可以查看到docker network ls查看到的几块网卡,也可以进行添加网卡

uifd8

等还有一些操作,自己可以研究

scope容器监控的下载使用

下载

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

使用

[root@localhost ~]# scope launch
  * http://192.168.122.1:4040/
  * http://192.168.1.11:4040/

执行完成后的URL可以直接访问进行容器监控

scope1

实时监控

增加一个容器

[root@localhost ~]# docker run -itd --name c1 centos
771ff705f0fdbc5d91bd7cae7891c12b8c93c4eaec106f225ad53543178f4f34

页面不需要刷新,会自动增加该容器

scope2

当如图所示,选择内存时,鼠标放到图中的小格子,可以查看到内存使用率,同样cpu也是

scope3

通过如图的这块区域可以查看,运行容器使用的镜像,使用的物理机,使用weave网络的容器等等

scope4

终端登录容器

刚才运行了一个centos的c1容器,可以点击查看详情

c1详情的下方,一排可以进行终端登录,重启,挂起等操作

scope5

登录终端你操作

scope6

安装了一个iproute之后,显示容器已经可以连接网络

scope7

评论




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0