13.2. 为红帽支持收集数据
当您向红帽支持 提交支持问题单 时,使用以下工具为 OpenShift Container Platform 和 OpenShift Virtualization 提供调试信息会很有帮助:
- must-gather 工具
-
must-gather
工具收集诊断信息,包括资源定义和服务日志。 - Prometheus
- Prometheus 是一个时间序列数据库和用于指标的规则评估引擎。Prometheus 将警报发送到 Alertmanager 进行处理。
- Alertmanager
- Alertmanager 服务处理从 Prometheus 接收的警报。Alertmanager 还负责将警报发送到外部通知系统。
如需有关 OpenShift Container Platform 监控堆栈的信息,请参阅关于 OpenShift Container Platform 监控。
13.2.1. 收集有关环境的数据
收集有关环境的数据可最小化分析和确定根本原因所需的时间。
先决条件
- 将 Prometheus 指标数据的保留时间设置为最少 7 天。
- 配置 Alertmanager 以捕获相关的警报并将其发送到专用邮箱,以便可以在集群外部查看和保留它们。
- 记录受影响的节点和虚拟机的确切数量。
13.2.2. 收集虚拟机的数据
收集有关出现故障的虚拟机 (VM) 的数据可最小化分析和确定根本原因所需的时间。
先决条件
- Linux 虚拟机: 安装最新的 QEMU 客户机代理。
Windows 虚拟机:
- 记录 Windows 补丁更新详情。
- 安装最新的 VirtIO 驱动程序。
- 安装最新的 QEMU 客户机代理。
- 如果启用了远程桌面协议(RDP),使用 桌面查看器 进行连接以确定连接软件是否存在问题。
流程
-
使用
/usr/bin/gather
脚本为虚拟机收集 must-gather 数据。 - 收集在重启前崩溃的虚拟机截图。
- 在修复尝试前,从虚拟机收集内存转储。
- 记录出现故障的虚拟机通常具有的因素。例如,虚拟机具有相同的主机或网络。
13.2.3. 为 OpenShift Virtualization 使用 must-gather 工具
您可以使用 OpenShift Virtualization 镜像运行 must-gather
命令收集有关 OpenShift Virtualization 资源的数据。
默认数据收集包含有关以下资源的信息:
- OpenShift Virtualization Operator 命名空间,包括子对象
- OpenShift Virtualization 自定义资源定义
- 包含虚拟机的命名空间
- 基本虚拟机定义
默认情况下,目前不收集实例类型信息;但是,您可以运行一个命令来选择性地收集它。
流程
运行以下命令来收集有关 OpenShift Virtualization 的数据:
$ oc adm must-gather \ --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.15.6 \ -- /usr/bin/gather
13.2.3.1. must-gather 工具选项
您可以为以下选项指定脚本和环境变量组合:
- 从命名空间收集详细虚拟机 (VM) 信息
- 收集指定虚拟机的详细信息
- 收集镜像、image-stream 和 image-stream-tags 信息
-
限制
must-gather
工具使用的最大并行进程数
13.2.3.1.1. 参数
环境变量
您可以为兼容脚本指定环境变量。
NS=<namespace_name>
-
从您指定的命名空间中收集虚拟机信息,包括
virt-launcher
pod 详情。为所有命名空间收集VirtualMachine
和VirtualMachineInstance
CR 数据。 VM=<vm_name>
-
收集特定虚拟机的详情。要使用这个选项,还必须使用
NS
环境变量指定命名空间。 PROS=<number_of_processes>
修改
must-gather
工具使用的最大并行进程数。默认值为5
。重要使用太多的并行进程可能会导致性能问题。不建议增加并行进程的最大数量。
脚本
每个脚本仅与某些环境变量组合兼容。
/usr/bin/gather
-
使用默认
must-gather
脚本,从所有命名空间中收集集群数据,且仅包含基本的虚拟机信息。此脚本只与PROS
变量兼容。 /usr/bin/gather --vms_details
-
收集属于 OpenShift Virtualization 资源的虚拟机日志文件、虚拟机定义、control-plane 日志和命名空间。指定命名空间包括其子对象。如果您在指定命名空间或虚拟机的情况下使用这个参数,
must-gather
工具会为集群中的所有虚拟机收集这个数据。此脚本与所有环境变量兼容,但是如果使用VM
变量,则必须指定一个命名空间。 /usr/bin/gather --images
-
收集镜像、image-stream 和 image-stream-tags 自定义资源信息。此脚本只与
PROS
变量兼容。 /usr/bin/gather --instancetypes
- 收集实例类型信息。默认情况下,目前不收集这些信息;但是,您可以选择性地收集这些信息。
13.2.3.1.2. 使用和示例
环境变量是可选的。您可以自行运行脚本,也可以使用一个或多个兼容环境变量来运行脚本。
脚本 | 兼容环境变量 |
---|---|
|
* |
|
* 对于命名空间:
* 对于虚拟机:
* |
|
* |
语法
$ oc adm must-gather \ --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.15.6 \ -- <environment_variable_1> <environment_variable_2> <script_name>
默认数据收集并行进程
默认情况下,五个进程并行运行。
$ oc adm must-gather \
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.15.6 \
-- PROS=5 /usr/bin/gather 1
- 1
- 您可以通过更改默认值来修改并行进程的数量。
详细虚拟机信息
以下命令在 mynamespace
命名空间中收集 my-vm
虚拟机的详细虚拟机信息:
$ oc adm must-gather \
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.15.6 \
-- NS=mynamespace VM=my-vm /usr/bin/gather --vms_details 1
- 1
- 如果您使用
VM
环境变量,则需要NS
环境变量。
image、image-stream 和 image-stream-tags 信息
以下命令从集群中收集镜像、image-stream 和 image-stream-tags 信息:
$ oc adm must-gather \ --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.15.6 \ /usr/bin/gather --images
实例类型信息
以下命令从集群收集实例类型信息:
$ oc adm must-gather \ --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.15.6 \ /usr/bin/gather --instancetypes