如何在本地托管环境中进行 Gitlab 日志和 API 跟踪

How to Gitlab logs and API traces in a locally hosted environment

我们有一个本地托管的 Gitlab 实例,我在其中遇到 API 调用之一的问题:

2021/11/18 16:43:11 [DEBUG] POST https://internal.testorg.com/api/v4/projects/16/terraform/state/resources?ID=784f9dd4-3536-19d2-9f78-36a2b39888e3 (status: 500): retrying in 10s (1 left)

我想知道 500 状态码背后的真正原因是什么。

我不是 Gitlab 的管理员,所以我可能或现在可以访问 Gitlab 主机服务器。我怎样才能找到实际发生的事情的踪迹?有什么方法可以访问这些日志和痕迹?

不,即使是具有管理员角色的 GitLab 用户也无法通过 API 调用或通过管理区域远程提取日志。一些有限的错误日志可能会出现在管理员 UI 中(如 sidekiq 错误),但普通用户在 UI 或 API 或其他地方看不到任何内容。您或多或少只能看到 HTTP 响应中返回的信息。

通常,您需要系统 (shell) 级别访问 GitLab 服务器以查看日志——或者访问 GitLab 日志存储的任何位置(系统日志服务器、服务器文件系统等)。

有关详细信息,请参阅 log system

如果您的实例具有远程监控设置(例如,许多公司使用 splunk 和 sentry 等服务来捕获日志和错误)并且您可以访问这些系统,那么您也许能够通过这种方式找到日志。

不幸的是,除了联系您的 GitLab 管理员寻求帮助或尝试在您的问题的客户端继续调试之外,您在这里可能没有任何好的选择。

不,即使是具有管理员角色的 GitLab 用户也无法通过 API 调用或通过管理区域远程提取日志。一些有限的错误日志可能会出现在管理员 UI 中(如 sidekiq 错误),但普通用户在 UI 或 API 或其他地方看不到任何内容。您或多或少只能看到 HTTP 响应中返回的信息。

一般来说,您需要系统 (shell) 级别访问 GitLab 服务器以查看日志——或者访问 GitLab 日志存储的任何位置(系统日志服务器、服务器文件系统等)。

查看日志系统了解更多信息。

如果您的实例具有远程监控设置(例如,许多公司使用 splunk 和 sentry 等服务来捕获日志和错误)并且您可以访问这些系统,您也许能够通过这种方式找到日志。

不幸的是,除了联系您的 GitLab 管理员寻求帮助或尝试在您的问题的客户端继续调试之外,您在这里可能没有任何好的选择。