$ oc auth can-i get pods && oc auth can-i get pods --subresource=logs (1)
故障排除的第一步是检索日志和 pod 状态。日志允许您识别错误的根本原因。此外,检查 pod 的最新状态可以提供有关失败消息的信息。
首先,您应该检查来自故障 Collector 的日志。根据您的环境和访问权限,您可以通过两种方式获取这些日志
oc
或kubectl
命令检索日志您可以使用oc
或kubectl
命令从正在运行的 Collector pod 获取日志。或者,如果您当前的 Collector pod 正在重启,您甚至可以检查以前 Collector pod 的日志。
确保您有权限列出 Pod 和日志。
$ oc auth can-i get pods && oc auth can-i get pods --subresource=logs (1)
1 | 如果您使用 Kubernetes,请使用 kubectl 代替 oc 。 |
列出所有带有标签 app=collector
的 Pod。
$ oc get pods -n stackrox -l app=collector (1)
1 | 如果您使用 Kubernetes,请使用 kubectl 代替 oc 。 |
collector-vclg5 1/2 CrashLoopBackOff 2 (25s ago) 2m41s+
获取 Collector Pod 的日志。
$ oc logs -n stackrox <collector_pod_name> collector (1)
1 | 如果您使用 Kubernetes,请使用 kubectl 代替 oc 。对于 <collector_pod_name> ,请指定您的 Collector Pod 的名称,例如 collector-vclg5 。 |
(可选) 如果当前 Collector Pod 正在重启,您可以检查之前的 Collector Pod 的日志。
$ oc logs -n stackrox <collector_pod_name> collector --previous (1)
1 | 如果您使用 Kubernetes,请使用 kubectl 代替 oc 。对于 <collector_pod_name> ,请指定您的 Collector Pod 的名称,例如 collector-vclg5 。 |
您还可以通过从 Red Hat Advanced Cluster Security for Kubernetes (RHACS) 用户界面下载诊断包来访问 Collector 日志。下载诊断包后,您可以检查所有 Collector Pod 的日志。更多信息,请参见 生成诊断包。
检查 Pod 最近的状态是确定 Collector 崩溃原因的另一种简单方法。错误消息记录到最近的状态中,并且可以使用 kubectl describe pod
或 oc describe pod
命令访问。
描述 Collector Pod
$ oc describe pod -n stackrox <collector_pod_name> (1)
1 | 如果您使用 Kubernetes,请使用 kubectl 代替 oc 。对于 <collector_pod_name> ,请指定您的 Collector Pod 的名称,例如 collector-vclg5 。 |
# ...
Last State: Terminated
Reason: Error
Message: No suitable kernel object downloaded (1)
Exit Code: 1
Started: Fri, 21 Oct 2022 11:50:56 +0100
Finished: Fri, 21 Oct 2022 11:51:25 +0100
# ...
1 | 在这个例子中,您可以看到 Collector 无法下载内核驱动程序。 |