Linux下GitLab日志管理操作指南
gitlab-ctl命令(推荐)GitLab自带的gitlab-ctl工具可便捷查看所有组件或特定服务的日志:
sudo gitlab-ctl tail(按Ctrl+C退出);sudo gitlab-ctl tail gitlab-rails、sudo gitlab-ctl tail nginx、sudo gitlab-ctl tail sidekiq;sudo gitlab-ctl tail nginx/gitlab_error.log。GitLab日志默认存储在/var/log/gitlab/目录下,可通过文本工具查看:
sudo cat /var/log/gitlab/gitlab-rails/production.log;sudo cat /var/log/gitlab/sidekiq/current;sudo cat /var/log/nginx/gitlab_access.log、sudo cat /var/log/nginx/gitlab_error.log;sudo cat /var/log/gitlab/gitlab-rails/production_json.log(可用grep "error" production_json.log快速定位错误)。journalctl命令(Systemd系统)若系统采用Systemd管理服务,可通过journalctl查看GitLab服务日志:
sudo journalctl -u gitlab-rails;sudo journalctl -u gitlab-rails -f;sudo journalctl --since "2025-10-01" --until "2025-10-22" -u gitlab-rails。GitLab使用logrotate工具自动切割、压缩日志,可通过修改/etc/gitlab/gitlab.rb自定义配置:
logging['logrotate_frequency'] = "daily";logging['logrotate_rotate'] = 30;logging['logrotate_size'] = "200M";logging['logrotate_compress'] = "compress";nginx['svlogd_prefix'] = "nginx"。修改后需执行以下命令使配置生效:
sudo gitlab-ctl reconfigure # 重新生成logrotate配置
sudo gitlab-ctl restart # 重启GitLab服务
通过修改/etc/gitlab/gitlab.rb中的log_level参数,可调整GitLab日志的输出级别(从详细到简洁):
gitlab_rails['log_level'] = :debug;gitlab_rails['log_level'] = :info;gitlab_rails['log_level'] = :warn;gitlab_rails['log_level'] = :error;gitlab_rails['log_level'] = :fatal。修改后需执行以下命令使配置生效:
sudo gitlab-ctl reconfigure # 重新加载配置
sudo gitlab-ctl restart # 重启GitLab服务
curl --header "PRIVATE-TOKEN: your_private_token" "https://gitlab.example.com/api/v4/projects/project_id/jobs/job_id/trace"
其中your_private_token为GitLab私人访问令牌,project_id为项目ID,job_id为构建任务ID。sudo rm /var/log/gitlab/gitlab-rails/production.log(删除前建议备份);logging['logrotate_rotate']调整),并自动压缩旧日志。