13.10. 为红帽支持收集数据
当您向红帽支持 提交支持问题单 时,使用以下工具为 OpenShift Container Platform 和 OpenShift Virtualization 提供调试信息会很有帮助:
- must-gather 工具
-
must-gather
工具收集诊断信息,包括资源定义和服务日志。 - Prometheus
- Prometheus 是一个时间序列数据库和用于指标的规则评估引擎。Prometheus 将警报发送到 Alertmanager 进行处理。
- Alertmanager
- Alertmanager 服务处理从 Prometheus 接收的警报。Alertmanager 还负责将警报发送到外部通知系统。
13.10.1. 收集有关环境的数据
收集有关环境的数据可最小化分析和确定根本原因所需的时间。
先决条件
- 将 Prometheus 指标数据的保留时间设置为最少 7 天。
- 配置 Alertmanager 以捕获相关的警报并将其发送到专用邮箱,以便可以在集群外部查看和保留它们。
- 记录受影响的节点和虚拟机的确切数量。
流程
-
使用默认的
must-gather
镜像为集群收集must-gather
数据。 -
如果需要,为 Red Hat OpenShift Container Storage 收集
must-gather
数据。 -
使用 OpenShift Virtualization
must-gather
镜像收集 OpenShift Virtualization 的must-gather
数据。 - 收集集群的 Prometheus 指标。
13.10.1.1. 其他资源
- 为 Prometheus 指标数据配置保留时间
- 配置 Alertmanager 将警报通知发送到外部系统
-
为 OpenShift Container Platform收集
must-gather
数据 -
为 Red Hat OpenShift Container Storage收集
must-gather
数据 -
为 OpenShift Virtualization收集
must-gather
数据 - 以集群管理员身份收集所有项目的 Prometheus 指标
13.10.2. 收集虚拟机的数据
收集有关出现故障的虚拟机 (VM) 的数据可最小化分析和确定根本原因所需的时间。
先决条件
Windows 虚拟机:
- 记录红帽支持的 Windows 补丁更新详情。
- 安装最新版本的 VirtIO 驱动程序。VirtIO 驱动程序包括 QEMU 客户机代理。
- 如果启用了远程桌面协议 (RDP),请尝试通过 RDP 连接到虚拟机,以确定是否存在与连接软件相关的问题。
流程
-
收集故障虚拟机的详细
must-gather
数据。 - 收集在重启前崩溃的虚拟机截图。
- 记录出现故障的虚拟机通常具有的因素。例如,虚拟机具有相同的主机或网络。
13.10.2.1. 其他资源
- 在 Windows 虚拟机上安装 VirtIO 驱动程序
- 在没有主机访问的 Windows 虚拟机上下载并安装 VirtIO 驱动程序
- 使用 Web 控制台或命令行通过 RDP 连接到 Windows 虚拟机
-
收集有关虚拟机的
must-gather
数据
13.10.3. 为 OpenShift Virtualization 使用 must-gather 工具
您可以使用 OpenShift Virtualization 镜像运行 must-gather
命令收集有关 OpenShift Virtualization 资源的数据。
默认数据收集包含有关以下资源的信息:
- OpenShift Virtualization Operator 命名空间,包括子对象
- OpenShift Virtualization 自定义资源定义
- 包含虚拟机的命名空间
- 基本虚拟机定义
流程
运行以下命令来收集有关 OpenShift Virtualization 的数据:
$ oc adm must-gather --image-stream=openshift/must-gather \ --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v{HCOVersion}
13.10.3.1. must-gather 工具选项
您可以为以下选项指定脚本和环境变量组合:
- 从命名空间收集详细虚拟机 (VM) 信息
- 收集指定虚拟机的详细信息
- 收集镜像和镜像流信息
-
限制
must-gather
工具使用的最大并行进程数
13.10.3.1.1. 参数
环境变量
您可以为兼容脚本指定环境变量。
NS=<namespace_name>
-
从您指定的命名空间中收集虚拟机信息,包括
virt-launcher
pod 详情。为所有命名空间收集VirtualMachine
和VirtualMachineInstance
CR 数据。 VM=<vm_name>
-
收集特定虚拟机的详情。要使用这个选项,还必须使用
NS
环境变量指定命名空间。 PROS=<number_of_processes>
修改
must-gather
工具使用的最大并行进程数。默认值为5
。重要使用太多的并行进程可能会导致性能问题。不建议增加并行进程的最大数量。
脚本
每个脚本仅与某些环境变量组合兼容。
gather_vms_details
-
收集属于 OpenShift Virtualization 资源的虚拟机日志文件、虚拟机定义和命名空间(及其子对象)。如果您在指定命名空间或虚拟机的情况下使用这个参数,
must-gather
工具会为集群中的所有虚拟机收集这个数据。此脚本与所有环境变量兼容,但是如果使用VM
变量,则必须指定一个命名空间。 gather
-
使用默认
must-gather
脚本,从所有命名空间中收集集群数据,且仅包含基本的虚拟机信息。此脚本只与PROS
变量兼容。 gather_images
-
收集镜像和镜像流自定义资源信息。此脚本只与
PROS
变量兼容。
13.10.3.1.2. 使用和示例
环境变量是可选的。您可以自行运行脚本,也可以使用一个或多个兼容环境变量来运行脚本。
脚本 | 兼容环境变量 |
---|---|
|
|
|
|
|
|
要自定义 must-gather
收集的数据,您可以在该命令中附加一个双短划线 (--
),后跟一个空格和一个或多个兼容参数。
语法
$ oc adm must-gather \ --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.9.7 \ -- <environment_variable_1> <environment_variable_2> <script_name>
详细虚拟机信息
以下命令在 mynamespace
命名空间中收集 my-vm
虚拟机的详细虚拟机信息:
$ oc adm must-gather \
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.9.7 \
-- NS=mynamespace VM=my-vm gather_vms_details 1
- 1
- 如果您使用
VM
环境变量,则需要NS
环境变量。
默认数据收集限制为三个并行进程
以下命令使用最多三个并行进程收集默认的 must-gather
信息:
$ oc adm must-gather \ --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.9.7 \ -- PROS=3 gather
镜像和镜像流信息
以下命令从集群收集镜像和镜像流信息:
$ oc adm must-gather \ --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.9.7 \ -- gather_images