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 无法查看提交的文件Errno::ENOMEM (Cannot allocate memory - /opt/gitlab/embedded/bin/git):