Linux系统下GitLab日志的查看方法及路径
GitLab在Linux系统中的日志文件默认集中存储在/var/log/gitlab目录下,按组件分类存放,常见日志文件及用途如下:
/var/log/gitlab/gitlab-rails/production.log:记录GitLab Rails应用的主要业务日志(如用户操作、项目创建、代码推送等);/var/log/gitlab/gitlab-rails/production_json.log:以JSON格式记录异常信息,便于结构化分析;/var/log/gitlab/gitlab-shell.log:记录gitlab-shell命令执行(如git push、git pull)及SSH权限管理日志;/var/log/gitlab/unicorn.log/unicorn_stderr.log:记录Unicorn Web服务器的运行日志(如请求响应、错误堆栈);/var/log/gitlab/sidekiq.log:记录Sidekiq后台任务(如CI/CD流水线、邮件发送)的执行状态;/var/log/gitlab/nginx/:包含Nginx访问日志(access.log)和错误日志(error.log),记录HTTP请求详情。使用cat、tail等命令查看静态或实时日志:
production.log):sudo cat /var/log/gitlab/gitlab-rails/production.log
sudo tail -f /var/log/gitlab/gitlab-rails/production.log
sudo head -n 50 /var/log/gitlab/gitlab-rails/production.log
sudo grep -i "error" /var/log/gitlab/gitlab-rails/production.log
gitlab-ctl命令(GitLab专用工具)gitlab-ctl是GitLab提供的命令行管理工具,可便捷查看和管理服务日志:
sudo gitlab-ctl tail
gitlab-rails、unicorn):sudo gitlab-ctl tail gitlab-rails
sudo gitlab-ctl tail unicorn
sudo gitlab-ctl tail nginx/gitlab_error.log
journalctl命令(Systemd系统)若GitLab服务通过systemd管理(如Ubuntu 18.04+、CentOS 7+),可使用journalctl查看服务关联的日志:
sudo journalctl -u gitlab-rails
sudo journalctl -u gitlab-rails -f
sudo journalctl -u gitlab-rails -n 10
GitLab使用logrotate工具自动管理日志轮转,防止日志文件过大占用磁盘空间。默认配置位于/etc/gitlab/gitlab.rb,可通过修改以下参数自定义:
logging['logrotate_frequency'] = "daily"(每天切割);logging['logrotate_rotate'] = 30(保留30天);logging['logrotate_compress'] = "compress"(使用gzip压缩);logging['logrotate_size'] = "200M"(超过200MB则切割)。修改后需执行以下命令使配置生效:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo执行命令;