gitlab-ctl命令(推荐):GitLab自带的命令行工具,可高效查看和管理日志。
sudo gitlab-ctl tail(按Ctrl+C退出);sudo gitlab-ctl tail gitlab-rails、sudo gitlab-ctl tail sidekiq;sudo gitlab-ctl tail nginx/gitlab_error.log。journalctl命令(Systemd系统):适用于查看系统级GitLab服务日志。
sudo journalctl -u gitlab;sudo journalctl -u gitlab-rails;sudo journalctl --since "2025-10-01";sudo journalctl -u gitlab -f。/var/log/gitlab目录下,可使用cat、less、tail等命令查看。
sudo cat /var/log/gitlab/gitlab-rails/production.log;sudo tail -f /var/log/gitlab/gitlab-rails/production.log;sudo cat /var/log/gitlab/gitlab-rails/sidekiq.log。GitLab的日志按组件分类,重点关注以下文件:
production.log:记录HTTP请求详情(URL、IP、请求类型、SQL执行时间及结果),是排查Web请求问题的核心日志;application.log:记录用户/项目管理操作(创建、移动项目、修改权限);githost.log:记录对GitLab服务器的错误请求(如无效Git操作、非法访问);sidekiq.log:记录后台任务(如CI/CD流水线、邮件发送)的执行状态,用于排查异步任务失败问题;gitlab-shell.log:记录Git命令执行(push/pull)及SSH权限变更日志;unicorn_stderr.log:记录Web服务器(Unicorn)的错误信息(如端口冲突、请求超时)。grep命令快速定位特定事件。例如:
sudo grep ' 404 ' /var/log/gitlab/nginx/access.log;sudo grep -A 10 -B 5 'ERROR' /var/log/gitlab/gitlab-rails/production.log;sudo grep 'failed' /var/log/gitlab/gitlab-rails/sidekiq.log。tail -f与grep实时追踪错误。例如:sudo tail -f /var/log/gitlab/gitlab-rails/production.log | grep -i 'error\|exception',可实时显示生产环境中的错误信息。journalctl的时间过滤功能查看特定时间段日志。例如:sudo journalctl -u gitlab-rails --since "2025-10-01 00:00:00" --until "2025-10-01 23:59:59",可分析当天GitLab Rails服务的运行情况。logrotate工具自动切割、压缩旧日志,避免日志文件过大占用磁盘空间。
/etc/gitlab/gitlab.rb,调整轮转参数(默认每天切割,保留30天):logging['logrotate_frequency'] = "daily" # 切割频率(daily/weekly/monthly)
logging['logrotate_rotate'] = 30 # 保留日志天数
logging['logrotate_compress'] = "compress" # 压缩方式(gzip/bzip2等)
sudo gitlab-ctl reconfigure,重启GitLab使更改生效。/etc/gitlab/gitlab.rb中的日志级别(可选debug、info、warn、error、fatal):gitlab_rails['log_level'] = :debug # 开发调试建议用debug,生产环境建议用info或warn
sudo gitlab-ctl reconfigure && sudo gitlab-ctl restart。对于生产环境,建议使用专业日志分析工具提升效率: