×

当您向 Red Hat 支持提交支持案例时,使用以下工具提供 OpenShift Container Platform 和 OpenShift Virtualization 的调试信息非常有帮助

must-gather 工具

must-gather 工具收集诊断信息,包括资源定义和服务日志。

Prometheus

Prometheus 是一个时间序列数据库和用于指标的规则评估引擎。Prometheus 将警报发送到 Alertmanager 进行处理。

Alertmanager

Alertmanager 服务处理从 Prometheus 收到的警报。Alertmanager 还负责将警报发送到外部通知系统。

有关 OpenShift Container Platform 监控堆栈的信息,请参阅关于 OpenShift Container Platform 监控

收集有关您的环境的数据

收集有关您的环境的数据可以最大限度地减少分析和确定根本原因所需的时间。

先决条件

收集有关虚拟机的数据

收集有关故障虚拟机 (VM) 的数据可以最大限度地减少分析和确定根本原因所需的时间。

先决条件
步骤
  1. 使用/usr/bin/gather脚本收集虚拟机的 must-gather 数据

  2. 收集在重新启动之前崩溃的虚拟机的屏幕截图。

  3. 修复尝试*之前*收集虚拟机的内存转储。

  4. 记录出现故障的虚拟机 (VM) 的共同因素。例如,这些虚拟机具有相同的宿主机或网络。

使用 OpenShift Virtualization 的 must-gather 工具

您可以使用带有 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

must-gather 工具选项

您可以运行oc adm must-gather命令来收集集群上所有已部署的运算符和产品的must-gather镜像,而无需显式指定所需的镜像。或者,您可以为以下选项指定脚本和环境变量的组合:

  • 从命名空间收集详细的虚拟机 (VM) 信息

  • 收集关于指定虚拟机的详细信息

  • 收集镜像、镜像流和镜像流标签信息

  • 限制must-gather工具使用的最大并行进程数

参数

环境变量

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

NS=<namespace_name>

收集虚拟机信息,包括您指定的命名空间中的virt-launcher pod 详情。所有命名空间的VirtualMachineVirtualMachineInstance 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

收集实例类型信息。此信息目前默认不收集;但是,您可以选择性地收集它。

用法和示例

环境变量是可选的。您可以单独运行脚本,也可以与一个或多个兼容的环境变量一起运行。

表 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>

语法

要一次性收集集群中所有运算符和产品的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 您可以通过更改默认值来修改并行进程的数量。
详细的 VM 信息

以下命令将收集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