故障排除
本指南帮助您解决 SonarQube 连接器的常见问题。
连接器未就绪
现象
SonarQube 连接器显示 Ready: False 状态。
诊断步骤
-
检查连接器状态:
查看
status.conditions字段中的具体错误信息。 -
常见原因及解决方案:
令牌无效:
- 错误: "Authentication failed" 或 "Token invalid"
- 解决方案:确认 secret 中的令牌正确且未过期
- 在 SonarQube 中生成新的令牌并更新 secret
连接问题:
- 错误: "Connection refused" 或 "Timeout"
- 解决方案:确认 SonarQube 实例可从集群访问
- 检查网络策略、防火墙和 DNS 解析
地址错误:
- 错误: "404 Not Found" 或 "Invalid URL"
- 解决方案:确认
spec.address包含正确的协议(https://)和路径
扫描器作业失败
现象
sonar-scanner 作业在分析过程中失败或挂起。
诊断步骤
-
查看作业日志:
-
常见原因及解决方案:
缺少 sonar-project.properties:
- 错误: "You must define the following mandatory properties"
- 解决方案:确保 sonar-project.properties 存在于项目根目录且包含必填字段:
代理配置未加载:
- 错误: "Authentication required"
- 解决方案:确认扫描器使用了连接器配置:
权限不足:
- 错误: "Insufficient privileges" 或 "403 Forbidden"
- 解决方案:确认令牌在项目上具有“Execute Analysis”权限
配置未找到
现象
Pod 挂载 sonar-project.properties 配置失败。
诊断步骤
-
确认 CSI 卷配置正确: 检查 Pod 规范中 CSI 卷配置是否正确,包含正确的
connectorName和configuration.names属性。 -
常见原因及解决方案:
连接器未就绪:
- 解决方案:等待连接器达到 Ready 状态
- 只有连接器就绪时配置才可用
卷配置错误:
- 解决方案:确认 CSI 卷配置包含:
connectorName:连接器名称connectorNamespace:连接器所在命名空间configuration.names:"sonar-scanner"
质量门失败
现象
分析完成但质量门状态不符合预期。
诊断步骤
-
查看 SonarQube 项目监控面板,了解质量门详情
-
常见原因及解决方案:
质量配置文件不匹配:
- 解决方案:确认项目分配了正确的质量配置文件
覆盖率阈值未达标:
- 解决方案:检查项目是否有测试覆盖率数据
- 确保在分析前生成覆盖率报告
新代码周期配置:
- 解决方案:确认 SonarQube 中的新代码周期定义
性能问题
现象
扫描器耗时过长或超时。
诊断步骤
-
常见原因及解决方案:
代码库过大:
- 解决方案:增加作业超时和资源限制:
网络延迟:
- 解决方案:检查与 SonarQube 实例的网络连接
- 考虑使用更靠近集群的 SonarQube 实例
- 解决方案:增加作业超时和资源限制:
获取帮助
如果问题仍然存在:
-
查看连接器日志:
-
查看连接器事件:
-
确认 SonarQube 实例健康状况:
- 访问 SonarQube Web 界面
- 直接检查
/api/system/status接口
-
查阅文档: