阅读量:3
Ubuntu 上 Jenkins 故障排查指南
一 快速定位路径
- 服务状态与单元日志
- 查看状态:
sudo systemctl status jenkins - 查看单元日志:
sudo journalctl -u jenkins -xe
- 查看状态:
- 应用日志
- 实时查看:
sudo tail -f /var/log/jenkins/jenkins.log
- 实时查看:
- 端口与监听
- 检查端口占用:
ss -tulnp | grep 8080或sudo netstat -tulnp | grep 8080 - 定位占用进程:
sudo lsof -i :8080与kill -9
- 检查端口占用:
- Java 环境
- 版本检查:
java -version - 多版本切换:
sudo update-alternatives --config java
- 版本检查:
- 防火墙与云安全组
- UFW 放行:
sudo ufw allow 8080/tcp与sudo ufw status - 云上需同时在安全组放行 8080/TCP。
- UFW 放行:
二 常见故障与修复
-
服务无法启动
- 典型现象:
systemctl status jenkins显示 Active: failed,或journalctl提示 Failed with result ‘exit-code’。 - 处理步骤:
- 查看详细日志:
journalctl -u jenkins -xe与/var/log/jenkins/jenkins.log - 确认 Java 版本匹配(Jenkins 2.346+ 建议 Java 11):
sudo apt install openjdk-11-jdk与update-alternatives --config java - 在 systemd 单元中显式设置 JAVA_HOME(示例):
sudo systemctl edit jenkins添加:[Service]Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
- 重载并重启:
sudo systemctl daemon-reload && sudo systemctl restart jenkins - 若仍失败,检查是否因插件更新导致启动异常,优先回滚最近插件或进入安全模式启动(见第四节)。
- 查看详细日志:
- 典型现象:
-
无法访问 Web 界面
- 排查顺序:
- 服务是否运行:
systemctl status jenkins - 端口是否监听:
ss -tulnp | grep 8080 - 防火墙与云安全组是否放行 8080/TCP
- 监听地址是否正确:编辑 /etc/default/jenkins,确保包含
JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=8080 --httpListenAddress=0.0.0.0"- 修改后重启:
sudo systemctl restart jenkins
- 服务是否运行:
- 排查顺序:
-
端口冲突
- 现象:启动失败或日志提示端口被占用。
- 处理:
- 查找占用:
sudo lsof -i :8080或ss -tulnp | grep 8080 - 结束进程:
kill -9 - 或改用其他端口并同步修改 /etc/default/jenkins 中的 –httpPort,重启服务。
- 查找占用:
-
权限与目录问题
- 现象:启动日志出现无法写入日志或工作目录等 IO 异常。
- 处理:
- 修正目录属主:
sudo chown -R jenkins:jenkins /var/lib/jenkins /var/cache/jenkins /var/log/jenkins - 如曾改动运行用户为 root,需同步检查相应目录权限与 SELinux/AppArmor 策略(不建议长期使用 root 运行)。
- 修正目录属主:
-
插件兼容性导致启动或构建失败
- 现象:升级后无法启动、插件部署失败,或构建时报 NoSuchMethodError、Failed to deploy 等。
- 处理:
- 回滚最近插件或进入安全模式启动,逐个恢复定位问题插件
- 升级相关插件与依赖到与当前 Jenkins 核心兼容的版本
- 清理损坏插件目录后重装
三 Docker 场景要点
- 关闭终端后容器退出
- 使用
-d后台运行:docker run -d -p 8080:8080 jenkins/jenkins:lts - 配置重启策略:
restart: always - 示例 compose:
- version: ‘3’
- services:
- jenkins:
- image: jenkins/jenkins:lts
- ports:
- “8080:8080”
- volumes:
- jenkins_home:/var/jenkins_home
- restart: always
- jenkins:
- volumes:
- jenkins_home:
- 使用
- 进入容器排查:
docker exec -it,随后按“快速定位路径”检查服务、日志与端口。bash
四 高频命令与配置速查
- 服务与日志
sudo systemctl status jenkinssudo journalctl -u jenkins -xesudo tail -f /var/log/jenkins/jenkins.log
- 端口与进程
ss -tulnp | grep 8080sudo lsof -i :8080与kill -9
- Java
java -versionsudo update-alternatives --config java
- 防火墙
sudo ufw allow 8080/tcpsudo ufw status
- 配置文件
- 监听地址与端口:/etc/default/jenkins
JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=8080 --httpListenAddress=0.0.0.0"
- systemd 单元覆写
sudo systemctl edit jenkins- 添加:
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
- 监听地址与端口:/etc/default/jenkins
以上就是关于“Ubuntu Jenkins故障排查指南”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm