Linux 上 GitLab 故障排查实战手册
一 快速定位流程
二 常见症状与处理对照表
| 症状 | 快速检查 | 处理要点 |
|---|---|---|
| 访问返回 502/504 | gitlab-ctl status;ss -plnt 检查 80/443;tail gitlab-rails/production.log 与 nginx/gitlab_error.log | 常见为上游未就绪(如 puma/unicorn、gitaly、sidekiq 异常)或端口冲突;重启异常组件,必要时 reconfigure;排查 Nginx 与上游超时配置 |
| 页面 500 错误 | tail -f /var/log/gitlab/gitlab-rails/production.log | 依据日志定位异常(如 DB 连接、权限、迁移失败);修复根因后重启服务 |
| SSH 克隆失败(Permission denied/Authentication failed) | 检查本机 ~/.ssh/id_rsa.pub 是否已添加至用户 SSH Keys;测试 ssh -T git@your_domain | 确认使用正确的 SSH 端口(默认 22 或自定义);确保服务器 authorized_keys 与权限正确 |
| 安装/依赖错误 | 观察安装日志;检查 curl、policycoreutils、openssh-server 等依赖 | 补齐依赖;离线安装核对版本与仓库;修正仓库源后重试 |
| 配置文件错误导致无法启动 | gitlab-ctl reconfigure 报错;检查 /etc/gitlab/gitlab.rb 语法与参数 | 修正语法/参数;reconfigure 后再启动 |
| 资源不足(卡顿/OOM) | free -m、df -h、top/htop | 增加内存或启用 swap;优化并发与缓存;清理无用仓库/构建产物 |
| 端口冲突(80/443 被占用) | lsof -i :80 或 ss -plnt | 停止占用进程或调整 GitLab 端口;reconfigure 并重启 |
| 邮件发送失败 | 检查 gitlab.rb 中 smtp_enable 等参数;查看邮件日志 | 修正 SMTP 配置与发信域名;确保邮件服务可达与认证正确 |
三 日志与系统诊断命令清单
四 系统与安全配置检查
五 数据一致性与恢复建议