CentOS 上 Jenkins 配置故障排查手册
一 快速定位与通用检查
systemctl status jenkins、journalctl -u jenkins -n 50 --no-pager、tail -n 50 /var/log/jenkins/jenkins.log。ss -tulnp | grep 8080 或 netstat -tulnp | grep 8080。java -version;如需切换版本可用 alternatives --config java。firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reload),并确认服务器可访问外网(插件下载、更新站点)。df -h 与系统时间同步 timedatectl status,避免因空间不足或时间漂移引发异常。二 常见故障与修复对照表
| 症状 | 快速检查 | 修复建议 |
|---|---|---|
| 服务无法启动(Unit not found) | systemctl status jenkins、`rpm -qa |
grep jenkins` |
| 启动失败,日志报 “Address already in use/Bind on port 8080 failed” | `ss -tulnp | grep 8080` |
| 页面访问 404 | systemctl status jenkins、journalctl -u jenkins、`grep -E 'HTTP_PORT |
JENKINS_PREFIX’ /etc/sysconfig/jenkins` |
| 外部浏览器无法访问 | firewall-cmd --list-all |
开放端口:firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reload;云主机还需检查安全组规则 |
| 插件更新超时/失败 | 管理界面 Update Center、网络连通性 | 在 “Manage Jenkins → Manage Plugins → Advanced” 将更新站点替换为国内镜像,例如:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json |
| 首次启动一直转圈 | /var/lib/jenkins/hudson.model.UpdateCenter.xml |
将更新中心地址改为可用镜像(如清华源),保存后重启;必要时检查网络连通性 |
| 忘记管理员密码 | /var/lib/jenkins/secrets/initialAdminPassword |
查看初始密码:cat /var/lib/jenkins/secrets/initialAdminPassword,完成解锁后及时修改密码 |
| HTTP 403 No valid crumb | 近期启用/升级安全策略后出现 | 临时方案(仅测试环境):在 /etc/sysconfig/jenkins 增加 JENKINS_JAVA_OPTIONS="-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true";生产环境建议保留 CSRF 并正确配置代理/反向代理头部 |
| 构建/拉取失败(权限或环境) | 构建日志、运行用户、工具链 | 确认 Jenkins 用户对工作空间与工具目录有权限;检查 JAVA_HOME、PATH、Maven/Git 等环境变量与代理设置 |
三 配置与网络要点
JENKINS_PORT="9090" 或 JENKINS_PREFIX="/jenkins",保存后 systemctl restart jenkins。X-Forwarded-For、X-Forwarded-Proto 等头部,避免重定向与资源加载异常。cat /var/lib/jenkins/secrets/initialAdminPassword 获取解锁密码,完成管理员设置后及时备份 JENKINS_HOME。四 应急与回滚建议
-Djenkins.install.runSetupWizard=true 进入初始化向导,或使用“安全模式”(如仅加载核心插件)定位插件冲突。config.xml 损坏,可从备份恢复,或重命名损坏文件后让 Jenkins 自动重建默认配置。JENKINS_JAVA_CMD 或 JAVA_HOME 并重启。systemctl daemon-reload && systemctl restart jenkins,确保新配置生效。