GitLab Linux故障排查方法
一 快速定位与通用检查
二 常见故障与处理清单
| 症状 | 快速检查 | 处理要点 |
|---|---|---|
| 访问页面显示502 Bad Gateway | gitlab-ctl status;gitlab-ctl tail;检查端口占用 | 多为上游未就绪或端口冲突。确认unicorn/puma、gitaly、nginx均Running;用lsof -i:80/443查占用并释放;必要时重启相关服务与整体实例。 |
| 服务无法启动或配置错误 | gitlab-ctl tail;核对/etc/gitlab/gitlab.rb | 回滚最近变更,逐项注释可疑配置;执行gitlab-ctl reconfigure重建配置;查看组件日志定位根因。 |
| 安装依赖或执行reconfigure失败 | 安装日志、缺失依赖提示 | 在CentOS/RHEL安装常见依赖:curl、policycoreutils(-python-utils)、openssh-server、postfix;在Debian/Ubuntu保持系统包为最新。 |
| 端口80/443被占用 | lsof -i:80 / lsof -i:443 | 停止占用进程或调整**external_url ‘http://ip:port’**改用未占用端口;重启服务。 |
| Permission denied 或目录不可写 | ls -ld /var/log/gitlab /var/opt/gitlab | 校正目录属主属组与权限,确保GitLab系统用户对日志与数据目录可写。 |
| SELinux 拒绝访问 | sestatus;/var/log/audit/audit.log | 查看SELinux状态与拒绝记录;必要时执行semanage fcontext -a -t httpd_sys_rw_content_t “/var/log/gitlab(/.*)?” && restorecon -Rv /var/log/gitlab。 |
| 内存不足导致卡顿/崩溃 | free -m、top/htop | 建议至少4GB内存;临时启用swap;优化并发与缓存策略,减少同时任务。 |
| 克隆/推送失败(SSH/HTTPS) | ssh -T git@host;检查远程URL | 校验SSH密钥或HTTPS令牌;确认仓库URL(SSH/HTTPS)与端口正确;检查用户权限。 |
| 时间不一致引发异常 | date;timedatectl status | 校准服务器时间与时区,启用NTP同步,避免签名/作业调度异常。 |
三 系统差异要点
四 数据保护与恢复
五 高频命令速查