GitLab在Debian上的日志管理与分析操作指南
sudo cat /var/log/gitlab/gitlab-rails/production.log-f(跟随模式)和-n(指定行数)。例如实时查看Nginx错误日志:sudo tail -f /var/log/gitlab/nginx/error.log-i。例如查找生产环境中的错误信息:grep -i "error" /var/log/gitlab/gitlab-rails/production.lognano/vim打开日志文件进行详细查看(需管理员权限)。例如:sudo nano /var/log/gitlab/gitlab-rails/application.log(记录用户创建、项目创建等操作)GitLab提供的专用工具,可便捷管理各服务日志:
sudo gitlab-ctl tailsudo gitlab-ctl tail gitlab-railssudo gitlab-ctl tail nginxsudo gitlab-ctl tail sidekiqsudo gitlab-ctl tail /var/log/gitlab/gitlab-rails/production_json.log(记录异常信息,JSON格式)适用于通过systemd管理的GitLab服务,可查看系统级日志:
sudo journalctl -u gitlabsudo journalctl -u gitlab-railssudo journalctl --since "2024-01-01" --until "2024-01-31"GitLab内置logrotate工具,自动切割、压缩、删除旧日志(默认保留30天,每日切割):
/etc/gitlab/gitlab.rb,调整轮转参数。例如:logging['logrotate_frequency'] = "daily" # 切割频率(daily/weekly/monthly)
logging['logrotate_rotate'] = 7 # 保留天数
logging['logrotate_compress'] = "compress" # 压缩方式(gzip/bzip2/xz)
sudo gitlab-ctl reconfiguresudo gitlab-ctl run logrotate通过gitlab-rake命令备份日志文件(包含所有服务日志):
sudo gitlab-rake gitlab:backup:create/var/opt/gitlab/backups目录,文件名格式为时间戳_gitlab_backup.tar(如1713676800_2024_04_21_13.0.3_gitlab_backup.tar)grep -i "error" /var/log/gitlab/gitlab-rails/production.log | wc -lawk提取特定字段(如时间、用户、操作)。例如提取Rails日志中的用户创建记录:grep "User created" /var/log/gitlab/gitlab-rails/production.log | awk '{print $1, $2, $12}'grep "failed" /var/log/gitlab/sidekiq.log/var/log/gitlab目录);