6.6. Clair 安全扫描程序
6.6.1. Clair 故障排除问题
使用以下步骤对 Clair 进行故障排除。
6.6.1.1. 验证镜像兼容性
如果使用 Clair,请确保 Clair 支持您要扫描的镜像。Clair 具有特定要求,不支持所有镜像格式或配置。
如需更多信息,请参阅 Clair 漏洞数据库。
6.6.1.2. allowlisting Clair updaters
如果您在代理配置后面使用 Clair,则必须列出代理或防火墙配置中的 updaters。如需有关 updater URL 的更多信息,请参阅 Clair updater URL。
6.6.1.3. 更新 Clair 扫描程序及其依赖项
确保您使用最新版本的 Clair 安全扫描程序。过时的版本可能缺少对较新镜像格式的支持,或者可能存在一个已知问题。
使用以下步骤检查 Clair 的版本。
检查 Clair 日志也可用于检查 Clair 日志中是否有 updaters 微服务的错误。默认情况下,Clair 每 30 分钟更新漏洞数据库。
流程
检查您的 Clair 版本。
如果您在 OpenShift Container Platform 上的 Red Hat Quay 上运行 Clair,请输入以下命令:
$ oc logs clair-pod
如果您正在运行 Red Hat Quay 的独立部署并使用 Clair 容器,请输入以下命令:
$ podman logs clair-container
输出示例
"level":"info", "component":"main", "version":"v4.5.1",
6.6.1.4. 为 Clair 启用调试模式
默认情况下,Clair 的调试模式被禁用。您可以通过更新 clair-config.yaml
文件为 Clair 启用调试模式。
先决条件
- 对于 OpenShift Container Platform 部署上的 Red Hat Quay Clair,您必须使用 受管 Clair 数据库运行自定义 Clair 配置。
使用以下步骤为 Clair 启用调试模式。
流程
更新
clair-config.yaml
文件,使其包含 debug 选项。在独立 Red Hat Quay 部署中:
在您的
clair-config.yaml
文件中添加以下配置字段:log_level: debug
输入以下命令重启 Clair 部署:
$ podman restart <clair_container_name>
在 OpenShift Container Platform 部署的 Red Hat Quay 中:
-
在 OpenShift Container Platform web 控制台中,点 Operators
Installed Operators Quay Registry。 - 单击 registry 的名称,如 示例 Registry。您将被重定向到 registry 的 Details 页面。
- 单击 Config Bundle Secret,如 example-registry-config-bundle-xncls。
-
通过在 secret 的 Details 页面的 Data 部分查找
clair-config.yaml
文件,确认您正在运行自定义 Clair 配置。 -
如果您有一个
clair-config.yaml
文件,请点击 ActionsEdit Secret。如果没有,请参阅"使用受管 Clair 数据库运行自定义 Clair 配置"。 更新
clair-config.yaml
文件,使其包含log_level: debug
配置变量。例如:log_level: debug
- 点击 Save。
-
您可以点击 Workloads
Pods 来检查 Clair 部署的状态。 clair-app
pod 应该会在 Ready 类别下报告1/1
。 -
您可以点 Ready
Logs 的 clair-app pod 确认 Clair 正在返回调试信息。
-
在 OpenShift Container Platform web 控制台中,点 Operators
6.6.1.5. 检查 Clair 配置
检查 Clair config.yaml
文件,以确保没有可能导致问题的错误配置或不一致。如需更多信息,请参阅 Clair 配置概述。
6.6.1.6. 检查镜像元数据
在某些情况下,您可能会收到 Unsupported 信息。这可能表示扫描程序无法从镜像中提取必要的元数据。检查镜像元数据是否已正确格式化并可访问。
其他资源
如需更多信息,请参阅 Clair 故障排除。