简单介绍以下三种docker监控服务
1)、Docker自带的监控命令
[root@docker01 ~]# docker top prometheus
[root@docker01 ~]# docker stats prometheus
[root@docker01 ~]# docker logs prometheus
//默认会显示一个实时变化的列表,展示每个容器的cpu使用率,内存使用量和可用量
//这三条都是容器本身自带的监控命令
2)、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
//创建一个容器并自动进入容器中
//--rm:随着退出容器而被删除;
//--privileged=true:赋予特殊权限;
//ro:表示只读
root@7f742ecc847a:/# csysdig //执行此命令
注:图中可以使用键盘和鼠标进行操作!
3)、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 //以容器方式启动
Unable to find image ‘weaveworks/scope:1.13.1‘ locally
1.13.1: Pulling from weaveworks/scope
c9b1b535fdd9: Pull complete
550073704c23: Pull complete
8738e5bbaf1d: Pull complete
0a8826d26027: Pull complete
387c1aa951b4: Pull complete
e72d45461bb9: Pull complete
75cc44b65e98: Pull complete
11f7584a6ade: Pull complete
a5aa3ebbe1c2: Pull complete
7cdbc028c8d2: Pull complete
Digest: sha256:4342f1c799aba244b975dcf12317eb11858f9879a3699818e2bf4c37887584dc
Status: Downloaded newer image for weaveworks/scope:1.13.1
b7fe7a731f2e518c9631e86fc5971cd54bc1d3fc53b1aedf99d278e23cca736b
Scope probe started
Weave Scope is listening at the following URL(s):
* http://192.168.122.1:4040/
* http://192.168.45.129:4040 //通过此IP访问web界面
如图:
根据图中的提示,自行可以点击进行测试!
注:scope可以监控单台dockerhost,也可以监控多台的dockerhost,监控效果只需在运行scope launch 本机IP地址 其他IP地址 , 不过需要注意的是如果是多台的dockerhost,在运行前,保证主机名不能冲突,区别主机名。
docker1:
[root@docker1 ~]# curl -L git.io/scope -o /usr/local/bin/scope
[root@docker1 ~]# chmod +x /usr/local/bin/scope
[root@docker1 ~]# scope launch 192.168.45.129 192.168.45.141 //首选指定本地的IP,再指定对方的IP
[root@docker1 ~]# docker run -itd --name http httpd //运行一个容器进行测试
docker2:
[root@localhost ~]# hostnamectl set-hostname docker2 //将主机名更改避免出错
[root@docker2 ~]# curl -L git.io/scope -o /usr/local/bin/scope
[root@docker2 ~]# chmod +x /usr/local/bin/scope
[root@docker2 ~]# scope launch 192.168.45.141 192.168.45.129 //首选指定本地的IP,再指定对方的IP
[root@docker2 ~]# docker run -itd --name nginx nginx //运行一个容器进行测试
访问任意两台docker主机如图:
原文:https://blog.51cto.com/14306186/2517850