$ oc adm must-gather \
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.17.3 \
-- /usr/bin/gather
当您向 Red Hat 支持提交支持案例时,使用以下工具提供 OpenShift Container Platform 和 OpenShift Virtualization 的调试信息非常有帮助
must-gather
工具收集诊断信息,包括资源定义和服务日志。
Prometheus 是一个时间序列数据库和用于指标的规则评估引擎。Prometheus 将警报发送到 Alertmanager 进行处理。
Alertmanager 服务处理从 Prometheus 收到的警报。Alertmanager 还负责将警报发送到外部通知系统。
有关 OpenShift Container Platform 监控堆栈的信息,请参阅关于 OpenShift Container Platform 监控。
收集有关您的环境的数据可以最大限度地减少分析和确定根本原因所需的时间。
将 Prometheus 指标数据的保留时间 设置为至少七天。
配置 Alertmanager 以捕获相关警报并将警报通知发送到专用邮箱,以便可以在集群外部查看和保留它们。
记录受影响的节点和虚拟机的确切数量。
收集有关故障虚拟机 (VM) 的数据可以最大限度地减少分析和确定根本原因所需的时间。
Linux 虚拟机:安装最新的 QEMU 访客代理。
Windows 虚拟机
记录 Windows 修补程序更新详细信息。
如果启用了远程桌面协议 (RDP),请使用桌面查看器连接以确定连接软件是否存在问题。
收集在重新启动之前崩溃的虚拟机的屏幕截图。
在修复尝试*之前*收集虚拟机的内存转储。
记录出现故障的虚拟机 (VM) 的共同因素。例如,这些虚拟机具有相同的宿主机或网络。
您可以使用带有 OpenShift Virtualization 镜像的must-gather
命令来收集关于 OpenShift Virtualization 资源的数据。
默认的数据收集包括以下资源的信息:
OpenShift Virtualization 运算符命名空间,包括子对象
OpenShift Virtualization 自定义资源定义
包含虚拟机的命名空间
基本的虚拟机定义
实例类型信息目前默认不收集;但是,您可以运行命令选择性地收集它。
运行以下命令来收集关于 OpenShift Virtualization 的数据:
$ oc adm must-gather \
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.17.3 \
-- /usr/bin/gather
您可以运行oc adm must-gather
命令来收集集群上所有已部署的运算符和产品的must-gather
镜像,而无需显式指定所需的镜像。或者,您可以为以下选项指定脚本和环境变量的组合:
从命名空间收集详细的虚拟机 (VM) 信息
收集关于指定虚拟机的详细信息
收集镜像、镜像流和镜像流标签信息
限制must-gather
工具使用的最大并行进程数
您可以为兼容的脚本指定环境变量。
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
脚本,该脚本从所有命名空间收集集群数据,并且只包含基本的 VM 信息。此脚本仅兼容PROS
变量。
/usr/bin/gather --vms_details
收集 VM 日志文件、VM 定义、控制平面日志和属于 OpenShift Virtualization 资源的命名空间。指定命名空间包括其子对象。如果您使用此参数而不指定命名空间或 VM,则must-gather
工具将为集群中的所有 VM 收集此数据。此脚本与所有环境变量兼容,但如果您使用VM
变量,则必须指定命名空间。
/usr/bin/gather --images
收集镜像、镜像流和镜像流标签自定义资源信息。此脚本仅兼容PROS
变量。
/usr/bin/gather --instancetypes
收集实例类型信息。此信息目前默认不收集;但是,您可以选择性地收集它。
环境变量是可选的。您可以单独运行脚本,也可以与一个或多个兼容的环境变量一起运行。
脚本 | 兼容的环境变量 |
---|---|
|
* |
|
* 对于命名空间: * 对于虚拟机: * |
|
* |
要一次性收集集群中所有运算符和产品的must-gather
日志,请运行以下命令:
$ oc adm must-gather --all-images
如果您需要将附加参数传递给各个must-gather
镜像,请使用以下命令:
$ oc adm must-gather \
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.17.3 \
-- <environment_variable_1> <environment_variable_2> <script_name>
默认情况下,五个进程并行运行。
$ oc adm must-gather \
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.17.3 \
-- 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.17.3 \
-- NS=mynamespace VM=my-vm /usr/bin/gather --vms_details (1)
1 | 如果您使用VM 环境变量,则NS 环境变量是必需的。 |
以下命令将从集群收集镜像、镜像流和镜像流标签信息:
$ oc adm must-gather \
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.17.3 \
/usr/bin/gather --images
以下命令将从集群收集实例类型信息:
$ oc adm must-gather \
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.17.3 \
/usr/bin/gather --instancetypes