Gitlab 日志查看

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gitlab 日志查看相关的知识,希望对你有一定的参考价值。

参考技术A 我们可以用gitlab-ctl tail 命令查看实时log。

Runit-managed是一个跨平台的用来取代Linux系统默认的服务控制的一个init系统, 想要了解更多知识,请自行搜索runit及sysvinit的相关信息。

omnibus-gitlab生成logs用的Runit-managed服务是svlogd, 关于svlogd的详细介绍, 请查看svlogd documentation。

修改/etc/gitlab/gitlab.rb文件里面如下参数可以自定义svlogd:

Omnibus-gitlab从7.4版本开始内置了logrotate服务。 这个服务用来切割、 压缩并最终删除已不受Runit服务(即上节里面的svlogd)控制的日志文件, 如gitlab-rails/production.log、nginx/gitlab_access.log。 你可以根据需求修改/etc/gitlab/gitlab.rb中logrotate的参数。

UDP log shipping (GitLab Enterprise Edition only)

Omnibus-gitlab企业版可以配置使用UDP传输syslog-ish日志信息。

log messages实例:

Nginx的access日志默认使用'combined'格式化日志, 查看nginx日志格式。 如果你想用自定义日志的格式, 修改/etc/gitlab/gitlab.rb 文件如下的参数:

我如何收集gitlab管道中所有作业的日志?

我有一些包含几十个工作的gitlab CI pipelines-有时我需要找到可能会出现在工作中的something,而不知道是哪个。我可以在Web界面中手动选择每个作业并查看关联的日志,但是对每个作业都无法做到。

是否有某种方法(理想情况下是无特权的gitlab用户)从给定管道的所有作业中检索/汇总输出?

如果有问题,我使用的是12.5.X-ee版本。

答案

您可以使用GitLab Jobs API汇总所有作业跟踪,并编写包含以下内容的脚本:

  • 向管道添加最后阶段(aggregate job logs
  • 列出当前Pipeline ID jobs
  • 循环遍历JOB_ID(aggregate job logs作业除外,并获得其job logs
  • 转储到文件中,您可以查看一个文件中的所有日志

注意,您需要创建一个personal-access-token,然后在CI作业中使用它来访问API。除了将访问令牌存储为custom environment variable之外,然后在.gitlab-ci.yml中访问该变量,这不是一个好方法。

HTH

以上是关于Gitlab 日志查看的主要内容,如果未能解决你的问题,请参考以下文章

我如何收集gitlab管道中所有作业的日志?

gitlab一会儿403 一会儿又能用 怎么回事?

Gitlab应用——系统管理

Docker容器日志清理

gitlab 无法查看提交的文件Errno::ENOMEM (Cannot allocate memory - /opt/gitlab/embedded/bin/git):

gitlab容器化部署