温馨提示×

CentOS系统GitLab出现故障怎么办

小樊
46
2025-11-21 20:38:07
栏目: 智能运维

CentOS 上 GitLab 故障排查与修复步骤

一 快速定位与恢复

  • 查看整体状态与组件健康:执行 gitlab-ctl status,定位异常组件(如 nginx、puma/unicorn、postgresql、redis 等)。随后用 gitlab-ctl tail 实时查看日志,或查看 /var/log/gitlab 下对应组件的日志文件。若修改过配置,先执行 gitlab-ctl reconfiguregitlab-ctl restart 使配置生效。以上步骤能覆盖大多数启动与运行异常的首轮排查。

二 常见故障与处理要点

  • 端口冲突导致无法访问或启动失败:用 lsof -i:80lsof -i:443 检查占用;必要时在 /etc/gitlab/gitlab.rb 调整端口,例如将 nginx[‘listen_port’] 改为未占用的端口(如 8099),保存后执行 gitlab-ctl reconfiguregitlab-ctl restart。若访问出现 502 Bad Gateway,高概率是 80/443 或应用端口被占用,或后端服务未就绪。对于 GitLab 13.0+,默认 Web 服务器是 Puma(旧版为 Unicorn),需确认对应端口(如 puma[‘port’]=8080)未被占用并相应调整。
  • 资源不足引发 502 或卡顿:GitLab 对资源较敏感,生产环境建议至少 4GB 内存、2 核 CPU;内存不足会导致进程被 OOM 或被系统限速,表现为页面 502 或响应极慢。
  • 防火墙与网络连通性:确保访问端口(如 80/443/22 或自定义端口)已在防火墙放行,例如 firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reload;同时排查云安全组/外部网络策略。
  • 配置语法或参数错误:编辑 /etc/gitlab/gitlab.rb 后若 reconfigure 失败,优先检查语法与参数拼写;修改 external_url 等核心参数后务必重新配置并重启。
  • 邮件功能异常:若注册、通知、密码重置不可用,检查 gitlab_rails[‘smtp_enable’]smtp_address/smtp_port/smtp_user_name/smtp_password/smtp_domain 等 SMTP 配置是否正确,必要时调整并重配。

三 高频场景速查表

症状 快速检查 处理建议
访问返回 502 gitlab-ctl status;gitlab-ctl tail;检查 80/443 与后端端口占用 释放或更换端口;确认 Puma/Unicorn 端口未被占用;资源不足时先扩容或释放内存
页面打不开或端口不通 ss/ lsof 检查端口;firewall-cmd 与云安全组策略 放行对应端口(如 80/443/22/自定义端口);验证本机与网络路径连通性
修改配置后异常 检查 /etc/gitlab/gitlab.rb 语法;查看 reconfigure 报错 修正参数后执行 gitlab-ctl reconfiguregitlab-ctl restart
安装/依赖报错 yum 安装日志;网络连通性;SELinux 状态 安装缺失依赖(如 policycoreutils 等);必要时配置代理;排查 SELinux/权限问题
邮件发送失败 查看 production.log 与邮件配置 核对 SMTP 参数与发信域名;确保邮件服务可达与凭据正确

四 变更前的备份与回滚

  • 在执行重大变更(升级、迁移、调整网络/端口、替换存储)前,先创建备份:执行 gitlab-backup create 将备份文件保存至 /var/opt/gitlab/backups。需要回滚时,先停止相关服务(如 gitlab-ctl stop puma/unicorn nginx),恢复备份后执行 gitlab-ctl reconfiguregitlab-ctl start。确保备份文件完整且目标环境磁盘空间充足。

0