14.15. 为红帽支持收集数据

当您向红帽支持 提交支持问题单 时,使用以下工具为 OpenShift Container Platform 和 OpenShift Virtualization 提供调试信息会很有帮助:

must-gather 工具
must-gather 工具收集诊断信息,包括资源定义和服务日志。
Prometheus
Prometheus 是一个时间序列数据库和用于指标的规则评估引擎。Prometheus 将警报发送到 Alertmanager 进行处理。
Alertmanager
Alertmanager 服务处理从 Prometheus 接收的警报。Alertmanager 还负责将警报发送到外部通知系统。

14.15.1. 收集有关环境的数据

收集有关环境的数据可最小化分析和确定根本原因所需的时间。

先决条件

  • 将 Prometheus 指标数据的保留时间设置为最少 7 天。
  • 配置 Alertmanager 以捕获相关的警报并将其发送到专用邮箱,以便可以在集群外部查看和保留它们。
  • 记录受影响的节点和虚拟机的确切数量。

步骤

  1. 使用默认的 must-gather 镜像为集群收集 must-gather 数据。
  2. 如有必要,为 Red Hat OpenShift Data Foundation 收集 must-gather 数据。
  3. 使用 OpenShift Virtualization must-gather 镜像收集 OpenShift Virtualization 的 must-gather 数据。
  4. 收集集群的 Prometheus 指标。

14.15.1.1. 其他资源

14.15.2. 收集虚拟机的数据

收集有关出现故障的虚拟机 (VM) 的数据可最小化分析和确定根本原因所需的时间。

先决条件

  • Windows 虚拟机:

    • 记录红帽支持的 Windows 补丁更新详情。
    • 安装最新版本的 VirtIO 驱动程序。VirtIO 驱动程序包括 QEMU 客户机代理。
    • 如果启用了远程桌面协议 (RDP),请尝试通过 RDP 连接到虚拟机,以确定是否存在与连接软件相关的问题。

步骤

  1. 收集故障虚拟机的详细 must-gather 数据。
  2. 收集在重启前崩溃的虚拟机截图。
  3. 记录出现故障的虚拟机通常具有的因素。例如,虚拟机具有相同的主机或网络。

14.15.2.1. 其他资源

14.15.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:v4.12.10

14.15.3.1. must-gather 工具选项

您可以为以下选项指定脚本和环境变量组合:

  • 从命名空间收集详细虚拟机 (VM) 信息
  • 收集指定虚拟机的详细信息
  • 收集镜像、image-stream 和 image-stream-tags 信息
  • 限制 must-gather 工具使用的最大并行进程数
14.15.3.1.1. 参数

环境变量

您可以为兼容脚本指定环境变量。

NS=<namespace_name>
从您指定的命名空间中收集虚拟机信息,包括 virt-launcher pod 详情。为所有命名空间收集 VirtualMachineVirtualMachineInstance 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 变量兼容。
14.15.3.1.2. 使用和示例

环境变量是可选的。您可以自行运行脚本,也可以使用一个或多个兼容环境变量来运行脚本。

表 14.1. 兼容参数

脚本兼容环境变量

/usr/bin/gather

  • PROS=<number_of_processes>

/usr/bin/gather --vms_details

  • 对于命名空间:NS=<namespace_name>
  • 对于虚拟机:VM=<vm_name> NS=<namespace_name>
  • PROS=<number_of_processes>

/usr/bin/gather --images

  • PROS=<number_of_processes>

语法

$ oc adm must-gather \
  --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.12.10 \
  -- <environment_variable_1> <environment_variable_2> <script_name>

默认数据收集并行进程

默认情况下,五个进程并行运行。

$ oc adm must-gather \
  --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.12.10 \
  -- PROS=5 /usr/bin/gather 1
1
您可以通过更改默认值来修改并行进程的数量。

详细虚拟机信息

以下命令在 mynamespace 命名空间中收集 my-vm 虚拟机的详细虚拟机信息:

$ oc adm must-gather \
  --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.12.10 \
  -- 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-rhel8:v4.12.10 \
  -- /usr/bin/gather --images

14.15.3.2. 其他资源