centos gitlab故障排查思路
导读:CentOS 上 GitLab 故障排查思路 一 快速定位路径 先看整体状态与日志:执行gitlab-ctl status与gitlab-ctl tail,优先从错误日志定位是哪个组件异常(如 puma、nginx、postgresql、...
CentOS 上 GitLab 故障排查思路
一 快速定位路径
- 先看整体状态与日志:执行gitlab-ctl status与gitlab-ctl tail,优先从错误日志定位是哪个组件异常(如 puma、nginx、postgresql、redis、sidekiq、gitaly 等)。
- 若多数组件显示runsv not running,通常是底层gitlab-runsvdir未启动:执行systemctl start gitlab-runsvdir.service,再gitlab-ctl restart恢复。
- 若reconfigure卡在ruby_block[supervise_redis_sleep],按Ctrl+C中断后执行systemctl restart gitlab-runsvdir,再重新gitlab-ctl reconfigure。
- 访问异常时,立即用**netstat -ntlp | grep -E ‘80|443|8080|9090’**排查端口占用;必要时改用未占用端口并重新配置。
二 常见症状与处理要点
| 症状 | 快速检查 | 处理要点 |
|---|---|---|
| 访问返回502/504 | 看gitlab-ctl tail中 puma/socket、workhorse、nginx 报错;查端口占用 | 释放或更换端口;确认puma[‘port’]与external_url端口不冲突;必要时调高超时;内存不足时先扩容或降载 |
| 本机能访问、外部不能访问 | 服务器本机 curl 正常;检查firewalld与云安全组 | 在 firewalld 放行对应端口(如http/https/自定义端口),并确认云厂商安全组策略已放通 |
| 执行gitlab-ctl reconfigure卡住 | 长时间停在 ruby_block 或组件 | 重启gitlab-runsvdir后重试;必要时分步重启组件 |
| 大量组件显示runsv not running | gitlab-ctl status 几乎全红 | 启动gitlab-runsvdir.service并重启;若卡住,检查是否受plymouth-quit-wait.service影响 |
| 安装 RPM 失败或运行异常 | 报错含el7/el8不匹配或依赖缺失 | 确认系统版本与 RPM 的 el 版本一致(如 CentOS 7 用 el7);安装缺失依赖(如 policycoreutils 系列) |
| 页面500或接口异常 | 查日志中 socket/权限/数据库等报错 | 依据日志修复(如 socket 权限、数据库连通性、磁盘空间等) |
以上要点涉及的命令与场景示例可参考:端口与 502 处理、reconfigure 卡住、runsv 未运行、版本不匹配与依赖问题、500 排查等实践。
三 配置与端口排错清单
- 核对关键配置:/etc/gitlab/gitlab.rb 中的external_url(域名或 IP:端口)、如需改端口同时调整nginx[‘listen_port’]与puma[‘port’],避免与系统已有服务冲突。
- 变更后必须执行:gitlab-ctl reconfigure 使配置生效,再gitlab-ctl restart重启相关组件。
- 防火墙放行:在 firewalld 中放行所需端口(示例:firewall-cmd --permanent --add-port=1000/tcp & & firewall-cmd --reload),或放行http/https服务。
- 端口冲突处理:用netstat -ntlp找出占用进程并停止/更换端口;修改 GitLab 配置中对应端口后重配置与重启。
四 安装与环境问题排查
- 版本匹配:确保下载的 GitLab RPM 与系统版本一致(如 el7 对应 CentOS 7,避免误装 el8 包导致运行库不兼容)。
- 依赖安装:安装常见依赖(如curl、policycoreutils-python、openssh-server、postfix)以避免安装/启动阶段报错。
- 资源与镜像:内存建议≥4GB(生产推荐8GB+),磁盘空间≥50GB;下载慢可使用国内镜像源加速。
五 高频命令速查
- 服务状态与日志:gitlab-ctl status、gitlab-ctl tail
- 配置生效与重启:gitlab-ctl reconfigure、gitlab-ctl restart
- 端口与连通:netstat -ntlp | grep -E ‘80|443|8080|9090’、curl 本机/远程访问测试
- 系统级恢复:systemctl start gitlab-runsvdir.service(runsv 未运行时)
- 控制台与密码:进入控制台gitlab-rails console -e production;重置 root 密码示例:
- user = User.where(id: 1).first
- user.password = ‘YourNewPassword123!’
- user.password_confirmation = ‘YourNewPassword123!’
- user.save!
- 安装依赖与防火墙:
- yum install -y curl policycoreutils-python openssh-server postfix
- firewall-cmd --permanent --add-service=http --add-service=https & & firewall-cmd --reload
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos gitlab故障排查思路
本文地址: https://pptw.com/jishu/785668.html
