故障诊断

第一步

如果遇到问题,请先检查以下各项:
  • 确保属性文件的路径在安装过程中是正确的。
  • 查看日志文件,验证是否指定了正确的系统要求。

    如果安装失败,安装程序会自动清理所提取的资源,保留完整的 .log 文件以用于调试。

  • 确保 AppScan 360° FQDN 已在 DNS 服务器中定义。
  • 验证所有 AppScan 360° Pod 是否都在运行。
  • 输入 AppScan 360° URL 以查看服务。

登录问题

如果登录到 AppScan 360° 时遇到问题,请尝试以下操作:
  • 验证 AppScan 360° 集群能否连接到数据库计算机。
  • 验证 AppScan 360° 数据库是否已在数据库计算机上成功创建。
  • 验证 SQL Server 是否配置为允许远程连接。
  • 验证 AppScan 360° 集群能否连接到 LDAP 服务器。
  • 检查 AppScan 360° 工具包配置文件中的 LDAP 配置。

日志文件

以下日志可能有助于 AppScan 360° 故障诊断:
  • 安装日志位于包含解压文件包的 AppScan 360° 文件夹中:
    <EXTRACTION_FOLDER>/logs/singular-setup[/teardown].log
  • 应用程序日志位于 ASCP 共享存储区。例如,如果从 Pod 内访问:
    /storagemount/logs

    应用程序日志限制为 2MB。一旦达到此限制,将创建另一个日志,总共最多 10 个日志文件。

  • 微服务日志与平台活动有关。每个微服务都会生成自己的日志文件,文件名前缀为微服务名称。
    <fileStorageRoot>/SaaSWorkingDirectory/SaaSStorage/Logs 
  • 扫描日志包含有关扫描执行的详细信息,包括进度更新、度量和调试信息。这些信息特定于每次扫描执行,也可从 AppScan 360° 用户界面下载。
    <fileStorageRoot>/SaaSWorkingDirectory/SaaSStorage/Scans/<scanID>/<ExecutionID>/EngineLogs 

升级问题

有时,在单个 VM 环境中升级到版本 2.0.0 后,任务管理器 Pod 可能无法启动。要解决此问题,请执行以下操作:
  • 如果您使用在线脚本升级 AppScan 360°,请运行:
    ./AppScan360_SingleVMsetup_v2.0.0.run -- $PWD remediateStorageIssues
  • 如果您使用离线脚本升级 AppScan 360°,请运行:
    ./AppScan360_SingleVMsetup_v2.0.0_Offline.run -- $PWD remediateStorageIssues

Pod 映像提取问题

单个 VM 的 Ubuntu 环境中部署 AppScan 360° 时,如果使用的是本地 Docker 注册表,则您可能会遇到因注册表连接错误而导致 Pod 无法启动的问题。

Pod 事件中的典型错误可能如下所示:
Normal   Pulling    60s (x4 over 4m1s)   kubelet            
Pulling image "<ip>:5443/as360-k8s-docker-images/reloader:v1.2.1"
Warning  Failed     30s (x4 over 3m31s)  kubelet            
Failed to pull image "<ip>:5443/as360-k8s-docker-images/reloader:v1.2.1": rpc error: code = DeadlineExceeded desc = failed to pull and unpack image "<ip>:5443/as360-k8s-docker-images/reloader:v1.2.1": failed to resolve reference "<ip>/as360-k8s-docker-images/reloader:v1.2.1": failed to do request: Head "https://<ip>/v2/as360-k8s-docker-images/reloader/manifests/v1.2.1": dial tcp <ip>:5443: i/o timeout

如果您在错误消息中看到 dial tcp <ip>:5443: i/o timeout,这通常表示您的 Kubernetes 节点(k0s 容器)与 Docker 注册表之间存在网络连接问题。

要解决此问题,请执行以下操作:
  1. 连接到 k0s 容器并安装诊断工具:
    docker exec -it k0s sh
    # (Run once per container) Install basic network tools:
    apk add --no-cache curl busybox-extras bind-tools
  2. 从容器中测试网络连接:
    1. 使用 telnet 检查与注册表的连接:
      telnet <registry-ip> 5443

      如果您未看到“已连接”消息,则表示连接被阻止。

    2. 尝试在容器内直接使用 ctr 命令来提取映像
      k0s ctr images pull --user <user>:<pass> <registry-ip>:5443/as360-k8s-docker-images/reloader:v1.2.1

      如果此操作失败,则问题可能与防火墙规则相关。

  3. 检查防火墙 (UFW) 和 IPTables 规则
    1. 主机上,检查防火墙规则:
      iptables -L -n -v
    2. 查找与 ufw(简单防火墙)相关并且可能会拦截流量的链,如以下日志所示。
      Chain INPUT (policy DROP 39231 packets, 2148K bytes)
       pkts bytes target     prot opt in     out     source               destination         
      6603K 9311M ufw-before-logging-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
      6603K 9311M ufw-before-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
       407K   50M ufw-after-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
      39311 2154K ufw-after-logging-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
      39311 2154K ufw-reject-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
      39311 2154K ufw-track-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0    
  4. 更新 UFW 规则以允许主机上的 Docker 网络流量:
    1. 允许 Docker 网络接口上的流量:
      sudo ufw allow in on docker0
      sudo ufw allow out on docker0
    2. 允许到注册表端口的流量
      sudo ufw allow out from any to <registry-ip> port 5443 proto tcp
      sudo ufw allow out from any to <registry-ip> port 7443 proto tcp
  5. 验证问题是否已解决
    1. 从 k0s 容器中重新运行连接测试(telnetctr images pull)。
    2. 如果测试成功,则 Pod 映像提取现在应当按预期正常运行。

支持

HCL 客户支持

为便于提供高效的故障诊断协助,请将以下内容包括在内:
  • 对于安装问题,请包括安装日志
  • 对于扫描问题,请包括扫描目录 (<fileStorageRoot>/SaaSWorkingDirectory/SaaSStorage/Scans/<scanID>/<ExecutionID>/) 的内容,其中包括所扫描的应用程序(用于静态分析的 .irx 文件或 .war/.jar/.zip 源文件)和任何扫描日志。有关扫描故障诊断的其他信息,请参阅 静态分析扫描故障诊断