第 5 章 收集集群数据
在提交问题单时同时提供您的集群信息,可以帮助红帽支持为您进行排除故障。
建议您提供:
5.1. 关于 must-gather 工具
oc adm must-gather
CLI 命令可收集最有助于解决问题的集群信息,包括:
- 资源定义
- 服务日志
默认情况下,oc adm must-gather
命令使用默认的插件镜像,并写入 ./must-gather.local
。
另外,您可以使用适当的参数运行命令来收集具体信息,如以下部分所述:
要收集与一个或多个特定功能相关的数据,请使用
--image
参数和镜像,如以下部分所述。例如:
$ oc adm must-gather --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.9.0
要收集审计日志,请使用
-- /usr/bin/gather_audit_logs
参数,如以下部分所述。例如:
$ oc adm must-gather -- /usr/bin/gather_audit_logs
注意作为默认信息集合的一部分,不会收集审计日志来减小文件的大小。
当您运行 oc adm must-gather
时,集群的新项目中会创建一个带有随机名称的新 pod。在该 pod 上收集数据,并保存至以 must-gather.local
开头的一个新目录中。此目录在当前工作目录中创建。
例如:
NAMESPACE NAME READY STATUS RESTARTS AGE ... openshift-must-gather-5drcj must-gather-bklx4 2/2 Running 0 72s openshift-must-gather-5drcj must-gather-s8sdh 2/2 Running 0 72s ...
5.1.1. 为红帽支持收集您的集群数据
您可使用 oc adm must-gather
CLI 命令收集有关您的集群的调试信息。
先决条件
-
使用具有
cluster-admin
角色的用户访问集群。 -
已安装 OpenShift Container Platform CLI (
oc
)。
流程
进入存储
must-gather
数据的目录。注意如果集群使用受限网络,则需要执行额外的步骤。如果您镜像的容器镜像仓库有一个信任的 CA,您必须首先将这个信任的 CA 添加到集群中。对于受限网络中的所有集群,您必须导入默认的
must-gather
镜像作为镜像流。$ oc import-image is/must-gather -n openshift
运行
oc adm must-gather
命令:$ oc adm must-gather
注意因为这个命令会默认会选择一个随机 control plane 节点,所以 pod 可能会被调度到处于
NotReady
和SchedulingDisabled
状态的 control plane 节点。如果此命令失败,例如,您无法在集群中调度 pod,则使用
oc adm inspect
命令来收集特定资源的信息。注意请联络红帽支持以获取推荐收集的资源信息。
从刚刚在您的工作目录中创建的
must-gather
目录创建一个压缩文件。例如,在使用 Linux 操作系统的计算机上运行以下命令:$ tar cvaf must-gather.tar.gz must-gather.local.5421342344627712289/ 1
- 1
- 务必将
must-gather-local.5421342344627712289/
替换为实际目录名称。
- 在红帽客户门户中为您的问题单附上压缩文件。
5.1.2. 收集有关特定功能的数据
您可通过将 oc adm must-gather
CLI 命令与 --image
或 --image-stream
参数结合使用来收集有关特定功能的调试信息。must-gather
工具支持多个镜像,这样您便可通过运行单个命令收集多个功能的数据。
Image | 目的 |
---|---|
| OpenShift Virtualization 的数据收集。 |
| OpenShift Serverless 的数据收集。 |
| Red Hat OpenShift Service Mesh 的数据收集。 |
| MTC 的数据收集。 |
| Red Hat OpenShift Container Storage 的数据收集。 |
| OpenShift Logging 的数据收集。 |
| Local Storage Operator 的数据收集。 |
要收集除特定功能数据外的默认 must-gather
数据,请添加 --image-stream=openshift/must-gather
参数。
先决条件
-
使用具有
cluster-admin
角色的用户访问集群。 -
已安装 OpenShift Container Platform CLI (
oc
)。
流程
-
进入存储
must-gather
数据的目录。 使用一个或多个
--image
或--image-stream
参数运行oc adm must-gather
命令。例如,使用以下命令可收集默认集群数据和 OpenShift Virtualization 特定信息:$ oc adm must-gather \ --image-stream=openshift/must-gather \ 1 --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.8.7 2
您可以将
must-gather
工具与额外参数搭配使用,以收集集群中与 OpenShift Logging 和 Red Hat OpenShift Logging Operator 相关的数据。对于 OpenShift Logging,运行以下命令:$ oc adm must-gather --image=$(oc -n openshift-logging get deployment.apps/cluster-logging-operator \ -o jsonpath='{.spec.template.spec.containers[?(@.name == "cluster-logging-operator")].image}')
例 5.1. OpenShift Logging 的
must-gather
输出示例├── cluster-logging │ ├── clo │ │ ├── cluster-logging-operator-74dd5994f-6ttgt │ │ ├── clusterlogforwarder_cr │ │ ├── cr │ │ ├── csv │ │ ├── deployment │ │ └── logforwarding_cr │ ├── collector │ │ ├── fluentd-2tr64 │ ├── eo │ │ ├── csv │ │ ├── deployment │ │ └── elasticsearch-operator-7dc7d97b9d-jb4r4 │ ├── es │ │ ├── cluster-elasticsearch │ │ │ ├── aliases │ │ │ ├── health │ │ │ ├── indices │ │ │ ├── latest_documents.json │ │ │ ├── nodes │ │ │ ├── nodes_stats.json │ │ │ └── thread_pool │ │ ├── cr │ │ ├── elasticsearch-cdm-lp8l38m0-1-794d6dd989-4jxms │ │ └── logs │ │ ├── elasticsearch-cdm-lp8l38m0-1-794d6dd989-4jxms │ ├── install │ │ ├── co_logs │ │ ├── install_plan │ │ ├── olmo_logs │ │ └── subscription │ └── kibana │ ├── cr │ ├── kibana-9d69668d4-2rkvz ├── cluster-scoped-resources │ └── core │ ├── nodes │ │ ├── ip-10-0-146-180.eu-west-1.compute.internal.yaml │ └── persistentvolumes │ ├── pvc-0a8d65d9-54aa-4c44-9ecc-33d9381e41c1.yaml ├── event-filter.html ├── gather-debug.log └── namespaces ├── openshift-logging │ ├── apps │ │ ├── daemonsets.yaml │ │ ├── deployments.yaml │ │ ├── replicasets.yaml │ │ └── statefulsets.yaml │ ├── batch │ │ ├── cronjobs.yaml │ │ └── jobs.yaml │ ├── core │ │ ├── configmaps.yaml │ │ ├── endpoints.yaml │ │ ├── events │ │ │ ├── elasticsearch-im-app-1596020400-gm6nl.1626341a296c16a1.yaml │ │ │ ├── elasticsearch-im-audit-1596020400-9l9n4.1626341a2af81bbd.yaml │ │ │ ├── elasticsearch-im-infra-1596020400-v98tk.1626341a2d821069.yaml │ │ │ ├── elasticsearch-im-app-1596020400-cc5vc.1626341a3019b238.yaml │ │ │ ├── elasticsearch-im-audit-1596020400-s8d5s.1626341a31f7b315.yaml │ │ │ ├── elasticsearch-im-infra-1596020400-7mgv8.1626341a35ea59ed.yaml │ │ ├── events.yaml │ │ ├── persistentvolumeclaims.yaml │ │ ├── pods.yaml │ │ ├── replicationcontrollers.yaml │ │ ├── secrets.yaml │ │ └── services.yaml │ ├── openshift-logging.yaml │ ├── pods │ │ ├── cluster-logging-operator-74dd5994f-6ttgt │ │ │ ├── cluster-logging-operator │ │ │ │ └── cluster-logging-operator │ │ │ │ └── logs │ │ │ │ ├── current.log │ │ │ │ ├── previous.insecure.log │ │ │ │ └── previous.log │ │ │ └── cluster-logging-operator-74dd5994f-6ttgt.yaml │ │ ├── cluster-logging-operator-registry-6df49d7d4-mxxff │ │ │ ├── cluster-logging-operator-registry │ │ │ │ └── cluster-logging-operator-registry │ │ │ │ └── logs │ │ │ │ ├── current.log │ │ │ │ ├── previous.insecure.log │ │ │ │ └── previous.log │ │ │ ├── cluster-logging-operator-registry-6df49d7d4-mxxff.yaml │ │ │ └── mutate-csv-and-generate-sqlite-db │ │ │ └── mutate-csv-and-generate-sqlite-db │ │ │ └── logs │ │ │ ├── current.log │ │ │ ├── previous.insecure.log │ │ │ └── previous.log │ │ ├── elasticsearch-cdm-lp8l38m0-1-794d6dd989-4jxms │ │ ├── elasticsearch-im-app-1596030300-bpgcx │ │ │ ├── elasticsearch-im-app-1596030300-bpgcx.yaml │ │ │ └── indexmanagement │ │ │ └── indexmanagement │ │ │ └── logs │ │ │ ├── current.log │ │ │ ├── previous.insecure.log │ │ │ └── previous.log │ │ ├── fluentd-2tr64 │ │ │ ├── fluentd │ │ │ │ └── fluentd │ │ │ │ └── logs │ │ │ │ ├── current.log │ │ │ │ ├── previous.insecure.log │ │ │ │ └── previous.log │ │ │ ├── fluentd-2tr64.yaml │ │ │ └── fluentd-init │ │ │ └── fluentd-init │ │ │ └── logs │ │ │ ├── current.log │ │ │ ├── previous.insecure.log │ │ │ └── previous.log │ │ ├── kibana-9d69668d4-2rkvz │ │ │ ├── kibana │ │ │ │ └── kibana │ │ │ │ └── logs │ │ │ │ ├── current.log │ │ │ │ ├── previous.insecure.log │ │ │ │ └── previous.log │ │ │ ├── kibana-9d69668d4-2rkvz.yaml │ │ │ └── kibana-proxy │ │ │ └── kibana-proxy │ │ │ └── logs │ │ │ ├── current.log │ │ │ ├── previous.insecure.log │ │ │ └── previous.log │ └── route.openshift.io │ └── routes.yaml └── openshift-operators-redhat ├── ...
使用一个或多个
--image
或--image-stream
参数运行oc adm must-gather
命令。例如,使用以下命令可收集默认集群数据和 KubeVirt 特定信息:$ oc adm must-gather \ --image-stream=openshift/must-gather \ 1 --image=quay.io/kubevirt/must-gather 2
从工作目录中刚刚创建的
must-gather
目录创建一个压缩文件。例如,在使用 Linux 操作系统的计算机上运行以下命令:$ tar cvaf must-gather.tar.gz must-gather.local.5421342344627712289/ 1
- 1
- 务必将
must-gather-local.5421342344627712289/
替换为实际目录名称。
- 在红帽客户门户中为您的问题单附上压缩文件。
5.1.3. 收集审计日志
您可以收集审计日志,它们是与安全相关的按时间排序的记录,记录各个用户、管理员或其他系统组件影响系统的一系列活动。您可以收集以下的审计日志:
- etcd 服务器
- Kubernetes API 服务器
- OpenShift OAuth API 服务器
- OpenShift API 服务器
流程
使用
-- /usr/bin/gather_audit_logs
标志运行oc adm must-gather
命令:$ oc adm must-gather -- /usr/bin/gather_audit_logs
从工作目录中刚刚创建的
must-gather
目录创建一个压缩文件。例如,在使用 Linux 操作系统的计算机上运行以下命令:$ tar cvaf must-gather.tar.gz must-gather.local.472290403699006248 1
- 1
- 将
must-gather-local.472290403699006248
替换为实际目录名称。
- 在红帽客户门户中为您的问题单附上压缩文件。