容器监控
1、Docker监控命令
在容器中,常通过执行命令或第三工具获取数据并呈现给用户,安装完成的Docker自带监听命令
1-1 docker ps 命令
- docker ps 查看容器状态
[root@docker01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
210aaee0bd60 registry "/entrypoint.sh /etc…" 3 days ago Up 8 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry-TLS
[root@docker01 ~]#
- docker container ls 命令也可以达到相同效果
[root@docker01 ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
210aaee0bd60 registry "/entrypoint.sh /etc…" 3 days ago Up 9 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry-TLS
[root@docker01 ~]#
注:可能失败,需更新docker
1-2 docker top命令
- docker top 查看进程
[root@docker01 ~]# docker top 21
UID PID PPID C STIME TTY TIME CMD
root 1820 1800 0 11:58 ? 00:00:00 registry serve /etc/docker/registry/config.yml
docker top +ID,查看容器进程
- 也可添加容器名称
[root@docker01 ~]# docker container top registry-TLS
UID PID PPID C STIME TTY TIME CMD
root 1820 1800 0 11:58 ? 00:00:00 registry serve /etc/docker/registry/config.yml
[root@docker01 ~]#
- docker top 添加参数,显示特定进程信息,
-u
为例
[root@docker01 ~]# docker container top registry-TLS -u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1820 0.0 0.7 122756 13796 ? Ssl 11:58 0:00 registry serve /etc/docker/registry/config.yml
[root@docker01 ~]#
-u:将容器的进程信息以用户为主的格式输出
1-3 docker stats命令
docker stats命令用于查询各项资源消耗情况
[root@docker01 ~]# docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
210aaee0bd60 registry-TLS 0.03% 7.664MiB / 1.777GiB 0.42% 1.1kB / 0B 43.3MB / 0B 7
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
在终端通过一个动态列表显示出各个容器资源使用情况
此处有不足,只显示容器ID,不显示容器名,但只要在命令中添加容器名称,即可指定容器信息
[root@docker01 ~]# docker stats registry-TLS
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
210aaee0bd60 registry-TLS 0.03% 7.668MiB / 1.777GiB 0.42% 1.1kB / 0B 43.3MB / 0B 7
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
2、Sysdig
systig,一款强大的命令行监控工具,因其轻量级深受大众喜欢,sysdig相当于一个放大镜,可以让用户更加清晰的观察宿主机与容器之间的各项行为,它相当于多种Linux监控工具集合,如:strace,htop,lsof等
3、Weave Scope
3-1 简介:
Weave Scope是Docker和Kubernetes的可视化监控工具,它提供了至上而下的集群基础设施和应用的完整视图,使用户能够轻松对分布式的容器化应用进行实时监控和问题诊断。
Weave Scope由两部分组成:Probe(或Agent)和App。Probe负责收集容器和宿主的信息,并发送给App;App则负责处理这些信息,并生成相应的报告,以交互式的形式展示。通过Weave Scope,用户可以直观地理解、监视和控制基于容器化微服务的应用程序。
此外,Weave Scope还具备一系列功能特性,如自动生成应用程序的映射、提供交互式拓扑界面、图形和表格模式、灵活的过滤和强大的搜索功能、实时的应用和容器指标、对容器进行故障排除和管理,以及使用插件API生产自定义指标等。
- 其提供的功能包括:
交互式拓扑界面 图形模式和表格模式 过滤功能 搜索功能 实时度量 容器排错 插件扩展
- Weave Scope由
App和Probe
两部分组成:
Probe 负责收集容器和宿主的信息,并发送给 App App 负责处理这些信息,并生成相应的报告,并以交互界面的形式展示
3-2 安装:
3-2-1 安装Weave Scopea
[root@wangliukun ~]# curl -L https://github.com/weaveworks/scope/releases/download/latest_release/scope -o /usr/local/bin/scope
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:16 --:--:-- 0
发现报错:
curl: (35) Encountered end of file
或者 0curl: (7) Failed connect to github.com:443; 拒绝连接
解决:
我这里重新指定了一下
[root@wangliukun ~]# curl --tlsv1.2 https://example.com
重新安装:
[root@wangliukun ~]# curl -L https://github.com/weaveworks/scope/releases/download/latest_release/scope -o /usr/local/bin/scope
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:05 --:--:-- 0
curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.
发现报错:
curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.
解决:
将https改为http,重新下载
[root@wangliukun ~]# curl -L http://github.com/weaveworks/scope/releases/download/latest_release/scope -o /usr/local/bin/scope
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:05 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:12 --:--:-- 0
100 11259 100 11259 0 0 587 0 0:00:19 0:00:19 --:--:-- 2697
3-2-2 赋予脚本可执行
Weave Scope安装包本质是一个脚本,所以需要赋予执行权限
[root@wangliukun ~]# chmod a+x /usr/local/bin/scope
[root@wangliukun ~]#
3-2-3 执行脚本
[root@wangliukun ~]# scope launch
Unable to find image 'weaveworks/scope:1.13.2' locally
1.13.2: Pulling from weaveworks/scope
ba3557a56b15: Pull complete
3ac4c0e9800c: Pull complete
d052e74a4dae: Pull complete
aacb9bf49f73: Pull complete
06841e6f61a9: Pull complete
ee99b95c7732: Pull complete
dd0e726a9a15: Pull complete
05cb5f9d0d32: Pull complete
e956cf3e716a: Pull complete
Digest: sha256:8591bb11d72f784f784ac8414660759d40b7c0d8819011660c1cc94271480a83
Status: Downloaded newer image for weaveworks/scope:1.13.2
5f064b58ddd8449cdf20dd4481f640dd03e40eca6bed4fa85c8410ab160bd43e
Scope probe started
Weave Scope is listening at the following URL(s):
* http://192.168.10.149:4040/
##可以看到宿主机增添了一个名为 weavescope的新容器,说明Weave Scope以容器的方式在宿主机中运行。
3-2-4 进入页面
http://192.168.10.149:4040/ 进入界面 ip+4040 4040为默认端口号
在weave Scope 界面中,宿主机上的容器被分为多个种类,默认不显示 weave scope 本身的容器。如果要查看所有容器,就需要在界面左下角的选项中进行操作
Status
CPU与内存的实时状态曲线图,
Info
镜像,镜像标签、命令等信息。
Processes
该容器中实时运行的进程信息。
Docker labels
维护人员或容器的启动命令等信息
mage
该容器的镜像信息。
tatus
CPU与内存的实时状态曲线图,
Info
镜像,镜像标签、命令等信息。
Processes
该容器中实时运行的进程信息。
Docker labels
维护人员或容器的启动命令等信息
Image
该容器的镜像信息。
上一章:私有仓库
下一章:kubernetes介绍