Docker监控
Docker监控涉及对容器的资源使用情况和性能指标进行实时监控和分析,以确保应用程序的正常运行并优化资源使用。
监控容器最简单是使用Docker自带的监控命令,如docker ps、docker top和docker stats等命令,但其输出的数据有限。
Docker监控工具
cAdvisor
cAdvisor是Google的一个开源工具,专门用于容器资源使用和性能分析。它可以收集、聚合、处理和导出关于运行容器的各种信息。是具有图形界面、最易于入门的Docker容器监控工具。
部署cAdvisor
1.使用wget获取二进制文件;
点击Docker Containers查看容器状态;
查看主机详细信息状态;
Weave Scope
Weave Scope是一款开源的故障诊断与监控工具,除了用于Docker外,还可以用于Kubernetes(k8s)集群。Weave Scope会自动生成容器之间的关系图,便于管理员直观地以可视化的方式监控容器化和微服务化应用。Weave Scope能够进行跨主机监控,并且消耗的资源非常少。
部署Weave Scope
本地部署
1.登录到workstation虚拟机,在该虚拟机内的hosts文件内添加以下两行内容(相当于代理);
5.防火墙加入4040端口规则;
可以看到此时没有一个被监控的容器;
7.在本地运行一个容器;
同样的,Weave Scope也可以监控主机的状态;
跨主机监控
确保所有主机(即已经部署Weave Scope的主机和其他主机)可以通过网络相互通信。这包括网络连接和防火墙设置。
在所有需要监控的主机上安装Weave Scope。可以使用与单主机部署相同的步骤来安装:
启动Weave Scope并配置跨主机监控:启动Weave Scope时,您需要指定其他主机的IP地址,使得所有Weave Scope实例能够相互发现并通信。
如果自动发现不能满足需求,你可以通过scope launch命令手动指定其他Scope实例的IP地址。
例如,在第一台主机上运行:
如果你有更多的主机,需要将每台主机的IP地址添加到scope launch命令中。例如,在第三台主机上,你可以指定第一台和第二台主机的IP地址:
示例:
以workstation、servera虚拟机为实验平台;
1.在两台服务器上执行以下命令:
3.访问weave scope;
Docker日志
在 Docker 环境中进行日志管理可以帮助你有效地监控和排查容器的运行情况。
Docker自带的docker logs命令输出正在运行的容器的日志信息,而docker service logs命令显示服务中心的所有容器的日志信息,这个命令用于集群环境。
查看容器日志
查看指定容器的日志;
实时查看日志;
日志选项
你可以使用以下选项来控制日志输出:
--tail:显示日志的最后几行。
--since:显示某个时间点后的日志。
配置日志驱动
Docker 支持多种日志驱动程序,用于将日志记录到不同的地方。常见的日志驱动程序包括:
- json-file(默认)
- syslog
- journald
- gelf
- fluentd
- awslogs
- splunk
可以在启动容器时指定日志驱动程序,例如:
配置日志选项
在 Docker 的 daemon.json 文件中,可以配置全局日志选项。通常这个文件位于 /etc/docker/daemon.json。例如,配置 JSON 文件日志驱动程序的选项:
配置完后,重启 Docker 服务以使更改生效:
docker日志管理工具(Logspout+syslog)
Logspout本身是基于AIpine Linux构建的Docker容器。Docker主机启动一个容器运行Logspout服务,Logspout负责将同一主机上其他容器的日志根据路由设置转发给不同的日子接收端。这里以syslog为例。
这里以两台RHEL虚拟机为实验环境。启用rsyslog接收外部信息功能,修改rsyslog日志服务器的配置文件/etc/rsyslog.conf,从中找到以下两行,将注释去掉;
保存该配置文件,重启rsyslog,然后检查514端口是否开启;
添加对514的防火墙端口规则;
拉取 Logspout 镜像;
运行 Logspout 容器,将日志发送到 Syslog 服务器;
在容器测试机上启用rsyslog的接收外部信息功能;配置/etc/rsyslog.conf将以下行的注释去掉,然后重启服务;
添加针对514的防火墙端口规则;
在容器测试机上运行一个容器,在日志收集服务器上查看效果;