您的位置:

全面了解GitLab日志

一、GitLab日志服务

GitLab是一个基于Web的Git仓库管理工具,允许用户管理Git存储库,项目代码,问题跟踪,持续集成和其他功能。而GitLab日志服务允许我们查看各种组件和操作的日志文件,帮助我们定位和解决各种问题。

要启用GitLab日志服务,我们只需要在GitLab配置文件中激活日志,指定日志文件的路径即可:

[logging]
  enabled = true
  path = "/var/log/gitlab"

上述配置将开启日志记录并将日志文件存储在`/var/log/gitlab`路径下。

二、GitLab日志文件

GitLab有多种类型的日志文件,每个日志文件都包含记录的信息。下面是一些常见的GitLab日志文件:

  • production.log
  • sidekiq.log
  • puma_stdout.log
  • nginx_access.log
  • gitlab-shell.log

production.log是GitLab的主要日志文件,其中记录了所有用于GitLab Web界面的信息。而sidekiq.log记录了由Sidekiq工作器执行的后台任务和队列的信息。puma_stdout.log包含Puma Web服务器的STDERR输出,而nginx_access.log包含来自Nginx前端服务器的HTTP请求的详细信息。gitlab-shell.log记录了由Git和SSH工具触发的操作的详细信息。

三、GitLab日志在哪

在安装谷歌云服务以及安装完GitLab后,我们可以通过SSH访问GitLab服务器,查看各种GitLab日志文件。GitLab日志文件的位置因操作系统和GitLab版本而异。可以在配置文件中找到每个文件的设置。

下面是几种常见的GitLab日志文件的默认位置:

  • production.log: `/var/log/gitlab/gitlab-rails/production.log`
  • sidekiq.log: `/var/log/gitlab/gitlab-rails/sidekiq.log`
  • puma_stdout.log: `/var/log/gitlab/gitlab-rails/puma_stdout.log`
  • nginx_access.log: `/var/log/gitlab/nginx/gitlab_access.log`
  • gitlab-shell.log: `/var/log/gitlab/gitlab-shell/gitlab-shell.log`

四、GitLab日志清理

由于日志文件可能会变得非常大,因此GitLab提供了一个日志清理机制,延迟删除日志文件。可以通过GitLab配置文件进行配置,以指定保存日志的天数,以及在需要清除多少空间时启动清理。下面是一个配置示例:

[logrotate]
  enable = true
  dir = "/var/log/gitlab"
  delaycompress = true
  maxage = 7
  size = 5242880

上述设置将启用日志旋转,指定最大年龄为7天以及每个日志文件的最大大小为5MB。当日志文件满足任何一个条件时,旧日志将被删除。

五、GitLab日志记录

GitLab可以记录各种不同类型的日志事件,例如用户登录,Push/commit, Merge,CI/CD,以及错误/异常等等。这样的记录有助于我们追踪操作记录,解决问题并了解系统表现。可以通过以下方法启用或禁用特定类型的GitLab日志记录:

[logging]
  log_level = "info"
  exclude [] = "im_api"
  include [] = "project_activity" 

在上面的示例中,`exclude`和`include`数组定义了要排除和包含在日志文件中的日志事件类型。 `log_level`参数定义了日志记录详细程度。

六、GitLab日志目录

除了日志文件外,GitLab还可以记录其他类型的信息,例如用于定位内存泄漏和高CPU使用率问题的堆栈跟踪。这些信息存储在GitLab的日志目录中。以下是GitLab日志目录的常见位置:

  • GitLab Rails日志:`/var/log/gitlab/gitlab-rails/`
  • GitLab Shell日志:`/var/log/gitlab/gitlab-shell/`
  • GitLab Nginx日志:`/var/log/gitlab/nginx/`
  • GitLab Redis日志:`/var/log/gitlab/redis/`
  • GitLab PostgreSQL日志:`/var/log/gitlab/postgresql/`

七、GitLab日志保存多久

GitLab会自动删除过时的日志文件,以避免文件系统耗尽空间导致故障。 GitLab 11.1和更早版本的对象已存储在`/var/opt/gitlab/backups`中。 默认情况下,此目录将仅保留最新的7个备份。最多可以保留30个备份,最短可以保留1个备份。您可以通过在`/etc/gitlab/gitlab.rb`文件中设置值来更改此行为。

gitlab_rails['backup_keep_time'] = 604800
gitlab_rails['backup_keep_limit'] = 30

上述示例将GitLab备份保存7天,并保留最多30个备份文件。

八、GitLab日志地址

在使用GitLab进行开发和协作时,我们经常需要查看和分析不同的GitLab日志。我们可以通过通过SSH连接到GitLab服务器并导航到相关的日志文件所在位置。

比如,我们可以使用以下命令查看production.log,在这里根据服务器/管理员权限,可能需要使用“sudo”:

sudo less /var/log/gitlab/gitlab-rails/production.log

同样可以使用类似的命令访问其他日志文件。

九、GitLab日志pull

如果我们需要从GitLab服务器下载日志文件,我们可以使用SSH和SCP。下面是一个命令示例,它允许我们从GitLab服务器抓取nginx访问日志文件:

scp root@gitlab.example.com:/var/log/gitlab/nginx/gitlab_access.log ~/Downloads/

此命令将日志文件复制到本地下载目录中。同样地,我们可以通过授权的用户/账号使用这个命令。

总结

通过本文,我们深入了解了GitLab日志服务和相关组件。我们学会了如何启用、配置和管理多种类型的GitLab日志文件以及如何查看和下载GitLab日志。当出现问题的时候,GitLab日志记录可以帮助我们快速诊断和解决问题,增强我们对GitLab系统的把控。