一、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系統的把控。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/154905.html