在Debian环境下管理GitLab的日志,可以通过以下几种方法进行:
gitlab-ctl
命令查看实时日志查看所有日志:
sudo gitlab-ctl tail
按 Ctrl-C
退出。
查看特定服务的日志:
sudo gitlab-ctl tail gitlab-rails
或者查看某个指定的日志文件,例如:
sudo gitlab-ctl tail nginx/gitlab_error.log
/etc/gitlab/gitlab.rb
文件来自定义 Runit 的参数,例如:logging['svlogd_size'] = 200 * 1024 * 1024 # 切割超过200M的日志文件
logging['svlogd_num'] = 30 # 日志文件保留30天
logging['svlogd_timeout'] = 24 * 60 * 60 # 每24小时生成新一天的日志
logging['svlogd_filter'] = "gzip" # 使用gzip压缩日志
修改配置后,使用以下命令重新配置 GitLab:sudo gitlab-ctl reconfigure
/etc/gitlab/gitlab.rb
文件来自定义 Logrotate 的参数,例如:logging['logrotate_frequency'] = "daily" # 每天切割一次日志
logging['logrotate_size'] = nil # 不按照默认值的大小切割日志
logging['logrotate_rotate'] = 30 # 日志文件保留30天
logging['logrotate_compress'] = "compress" # 使用 'man logrotate' 查看详细信息
logging['logrotate_method'] = "copytruncate" # 使用 'man logrotate' 查看详细信息
修改配置后,使用以下命令重新配置 GitLab:sudo gitlab-ctl reconfigure
/var/log/gitlab
目录下,可以查看该目录下的主要日志文件,例如:
production.log
:记录 GitLab 的每次请求的具体信息。application.log
:记录创建用户、创建项目、移动项目等日志。githost.log
:记录对 GitLab 服务器的错误请求日志。sidekiq.log
:记录长时间运行的后台任务的处理信息。gitlab-shell.log
:记录执行 GitLab 命令以及为项目添加 SSH 权限的日志。unicorn_stderr.log
:记录 GitLab Web 服务器的相关记录。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。通过以上方法,可以有效地管理和分析 Debian 环境下 GitLab 的日志信息。