使用gitlab-ctl命令查看GitLab各组件的运行状态,确认服务是否正常启动:
sudo gitlab-ctl status
若服务未运行(显示“down”或“stopped”),可通过以下命令重启服务:
sudo gitlab-ctl restart
此操作能解决大部分因服务未启动导致的访问问题。
GitLab的日志文件集中存储在/var/log/gitlab目录下,涵盖Rails应用、Nginx、Sidekiq等组件。常用查看方式:
sudo gitlab-ctl tail
sudo gitlab-ctl tail nginx/gitlab_error.log
sudo gitlab-ctl tail gitlab-rails/production.log
tail实时追踪):sudo tail -f /var/log/gitlab/gitlab-rails/production.log
日志中会记录错误堆栈、配置异常、权限问题等关键信息,是故障排查的核心依据。
GitLab依赖PostgreSQL(数据库)、Redis(缓存)、Nginx(Web服务)等组件,需确保它们均正常运行:
sudo systemctl status postgresql
sudo systemctl status redis
sudo systemctl status nginx
若某服务未启动,使用sudo systemctl start <服务名>启动,并设置为开机自启:
sudo systemctl enable <服务名>
依赖服务异常会导致GitLab无法正常工作(如数据库连接失败、缓存失效)。
sudo firewall-cmd --list-all # 查看当前规则
sudo firewall-cmd --permanent --add-service=http # 开放HTTP
sudo firewall-cmd --permanent --add-service=https # 开放HTTPS
sudo firewall-cmd --permanent --add-service=ssh # 开放SSH
sudo firewall-cmd --reload # 重新加载规则
lsof或netstat查看端口占用进程:sudo lsof -i :8080 # 替换为目标端口
sudo netstat -ntlp | grep 8080
杀死占用进程(kill -9 <PID>)后重启GitLab。GitLab的主配置文件为/etc/gitlab/gitlab.rb,需确认以下关键配置正确:
http://your_server_ip:8080),需与实际访问路径一致;gitlab_rails['db_host']、gitlab_rails['db_username']等参数;gitlab_rails['smtp_address'])。sudo gitlab-ctl reconfigure # 重新生成配置
sudo gitlab-ctl restart # 重启服务
配置错误(如拼写错误、端口冲突)是常见故障原因。
GitLab对系统资源要求较高,需确保服务器有足够资源:
df -h查看磁盘使用率,若根分区或/var/opt/gitlab(数据目录)空间不足,需清理日志或扩容;free -h查看内存占用,若内存不足(如小于4GB),可创建swap分区缓解:sudo dd if=/dev/zero of=/data/swap bs=512 count=8388616 # 创建4GB swap文件
sudo mkswap /data/swap # 格式化
sudo swapon /data/swap # 启用
资源不足会导致GitLab卡顿、无法启动。
sudo gitlab-ctl status unicorn);upstream地址是否正确(/etc/gitlab/nginx/conf/gitlab-http.conf);sudo gitlab-ctl restart unicorn nginx。/var/opt/gitlab)有读写权限;setenforce 0)测试是否为SELinux导致,若问题解决,需调整SELinux策略或永久关闭(vi /etc/selinux/config)。/etc/gitlab/gitlab.rb):gitlab_rails['git_max_size'] = 1024 * 1024 * 1024(1GB);client_max_body_size(/etc/nginx/nginx.conf):client_max_body_size 1024M;通过以上步骤,可系统排查CentOS上GitLab的常见故障。若问题仍未解决,建议参考GitLab官方文档或社区论坛(如GitLab中文社区)获取进一步支持。