GitLab在Ubuntu系统中的日志集中存储在/var/log/gitlab/目录下,按组件分类(如Rails应用、Sidekiq后台任务、Nginx反向代理等)。常用日志文件及查看方式如下:
/var/log/gitlab/gitlab-rails/production.log,可使用tail -f实时查看最新请求与错误。/var/log/gitlab/sidekiq/current,适合排查任务失败问题。/var/log/gitlab/nginx/gitlab_access.log(访问日志)和/var/log/gitlab/nginx/gitlab_error.log(错误日志)。/var/log/postgresql/postgresql-<version>-main.log,用于排查数据库性能或连接问题。此外,可使用gitlab-ctl tail命令查看所有GitLab服务的实时日志,或指定特定服务(如gitlab-ctl tail nginx查看Nginx日志);通过journalctl -u gitlab-runsvdir查看GitLab服务的系统级日志。
sudo gitlab-ctl status检查各组件状态(如unicorn、sidekiq、nginx),若某组件显示“down”或“fail”,则为故障点。sudo gitlab-ctl tail unicorn),定位具体错误(如端口冲突、配置文件错误)。/etc/gitlab/gitlab.rb中external_url设置错误)、资源不足(如内存不足导致unicorn无法启动)。sudo systemctl stop <service_name>);修正配置文件后运行sudo gitlab-ctl reconfigure重新加载配置;增加系统内存或调整GitLab资源限制(如unicorn的worker_processes)。/var/log/gitlab/nginx/gitlab_error.log),常见提示为“upstream prematurely closed connection”。/var/log/gitlab/unicorn/current),若日志显示“failed to start a new unicorn master”,则unicorn无法启动。/var/opt/gitlab/unicorn/pid),若存在残留PID文件,删除后重启GitLab(sudo gitlab-ctl restart);确保unicorn配置(/etc/gitlab/gitlab.rb中的unicorn['port'])与Nginx配置一致。/var/log/gitlab/sidekiq/current),定位任务执行中的错误(如依赖安装失败、脚本执行错误)。.gitlab-ci.yml),确保语法正确(如缩进、指令格式);确认Runner已正确注册(gitlab-runner status)且具有执行任务的权限;安装任务所需的依赖(如在流水线中添加apt-get install -y <package>)。~/.ssh/id_rsa.pub)是否已添加到GitLab账户的“SSH Keys”设置中,或HTTPS令牌是否有效。/var/log/gitlab/gitlab-rails/production.log),搜索“permission denied”关键词,确认是用户权限还是项目权限问题。top或htop命令查看系统资源使用情况,若CPU、内存占用率持续高于80%,则需优化。/var/log/gitlab/gitlab-rails/production.log),搜索“out of memory”或“timeout”关键词,确认是否因资源不足导致任务失败。sudo fallocate -l 2G /swapfile→sudo chmod 600 /swapfile→sudo mkswap /swapfile→sudo swapon /swapfile);清理过期流水线的缓存与构建产物(gitlab-rake gitlab:cleanup:orphan_job_artifacts);优化unicorn配置(如减少worker_processes数量)。logrotate工具自动压缩或删除旧日志(/etc/logrotate.d/gitlab),避免日志文件占用过多磁盘空间。sudo gitlab-backup create),将备份文件保存至异地(如云存储),故障时可快速恢复(sudo gitlab-backup restore BACKUP=xxx)。