13.9. 为红帽支持收集数据

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

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

13.9.1. 收集有关环境的数据

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

先决条件

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

流程

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

13.9.1.1. 其他资源

13.9.2. 收集虚拟机的数据

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

先决条件

  • Windows 虚拟机:

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

流程

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

13.9.2.1. 其他资源

13.9.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.9.3.1. must-gather 工具选项

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

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

环境变量

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

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

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

表 13.1. 兼容参数

脚本兼容环境变量

gather_vms_details

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

gather

  • PROS=<number_of_processes>

gather_images

  • PROS=<number_of_processes>

要自定义 must-gather 收集的数据,您可以在该命令中附加一个双短划线 (--),后跟一个空格和一个或多个兼容参数。

语法

$ oc adm must-gather \
  --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.8.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.8.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.8.7 \
  -- PROS=3 gather

镜像和镜像流信息

以下命令从集群收集镜像和镜像流信息:

$ oc adm must-gather \
  --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.8.7 \
  -- gather_images

13.9.3.2. 其他资源