一、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系统的把控。