温馨提示×

GitLab Linux服务器如何进行故障排查

小樊
45
2025-10-20 21:38:45
栏目: 云计算

GitLab Linux服务器故障排查指南

1. 检查GitLab服务状态

使用gitlab-ctl status命令查看GitLab各组件(如gitlab-rails、nginx、postgresql等)的运行状态。若组件显示为“down”或“unhealthy”,可通过gitlab-ctl restart <组件名>重启特定组件,或gitlab-ctl restart重启所有服务。

2. 查看GitLab日志

日志是故障排查的核心依据,GitLab的日志主要分布在/var/log/gitlab目录下:

  • 主应用日志/var/log/gitlab/gitlab-rails/production.log(记录Web请求、数据库操作等);
  • Nginx日志/var/log/gitlab/nginx/gitlab_access.log(访问日志)、/var/log/gitlab/nginx/gitlab_error.log(错误日志);
  • 其他组件日志/var/log/gitlab/gitlab-shell/gitlab-shell.log(Shell操作)、/var/log/gitlab/unicorn/unicorn_stdout.log(Unicorn进程)。 可使用tail -f <日志文件>实时查看日志流,或grep "error" <日志文件>过滤错误信息。

3. 检查配置文件

GitLab的主配置文件为/etc/gitlab/gitlab.rb,修改后需执行gitlab-ctl reconfigure重新加载配置(不会重启服务),gitlab-ctl restart重启所有服务使配置生效。重点检查以下配置项:

  • external_url:确保URL格式正确(如http://your-server-ip或带端口的http://your-server-ip:8080);
  • SSL证书路径:nginx['ssl_certificate']nginx['ssl_certificate_key']是否指向有效证书;
  • 数据库连接:postgresql['host']postgresql['port']等参数是否正确。

4. 监控系统资源

使用以下命令监控服务器资源使用情况,资源不足(如CPU、内存耗尽或磁盘空间满)可能导致GitLab服务异常:

  • CPU/内存top(动态查看)、htop(更直观)、free -m(内存使用量,单位MB);
  • 磁盘空间df -h(查看各分区使用率,重点关注/var/opt/gitlab目录,GitLab数据默认存储于此);
  • 磁盘IOiotop(查看磁盘读写负载,需安装yum install iotop -y)。

5. 验证网络连接

  • 连通性测试:使用ping <IP/域名>检查服务器是否能访问外网(如ping 8.8.8.8),或ping gitlab.example.com测试域名解析;
  • 端口检查:使用netstat -tulnp | grep <端口>ss -tulnp | grep <端口>查看GitLab所需端口(如80、443、22)是否监听;
  • 防火墙设置:使用firewall-cmd --list-all(CentOS)或ufw status(Ubuntu)查看防火墙规则,确保GitLab端口开放(如firewall-cmd --add-service=http --permanentfirewall-cmd --reload)。

6. 排查常见特定错误

  • 403 Forbidden错误:检查用户权限(如是否属于对应项目组)、项目可见性设置(是否为“Private”);
  • 502 Bad Gateway错误:通常因Nginx与GitLab应用通信失败,需检查Nginx配置(/etc/gitlab/nginx/conf.d/gitlab-http.conf)、GitLab应用是否运行(gitlab-ctl status);
  • CI/CD构建失败:查看构建日志(/var/log/gitlab/gitlab-rails/production.log或项目→CI/CD→Jobs→Job Logs),常见问题包括依赖未安装(如apt-get install -y nodejs)、环境变量未配置(如CI_SECRET缺失);
  • Runner离线:使用gitlab-runner status检查Runner状态,gitlab-runner restart重启Runner,或重新注册Runner(gitlab-runner register)。

7. 使用监控与告警工具

  • 系统自带工具atop(监控CPU、内存、IO,yum install atop -y)、vmstat(查看系统整体性能,vmstat 1 5每秒刷新一次,共5次);
  • 第三方工具:集成Prometheus+Grafana(监控GitLab指标如请求延迟、队列长度)、ELK Stack(收集、分析GitLab日志,可视化异常趋势)。

8. 备份与恢复

  • 定期备份:使用gitlab-rake gitlab:backup:create命令创建备份(默认存储在/var/opt/gitlab/backups目录),建议开启自动备份(修改/etc/gitlab/gitlab.rb中的gitlab_rails['backup_keep_time'] = 604800,保留7天);
  • 恢复数据:停止相关服务(gitlab-ctl stop unicorngitlab-ctl stop sidekiq),执行gitlab-rake gitlab:backup:restore BACKUP=<备份文件名>(如BACKUP=1716451200_2024_05_20_13.15.0),恢复后重启服务(gitlab-ctl start)。

0