Ubuntu下GitLab的監控與日志管理指南
GitLab提供內置監控功能,可通過創建“Monitoring”項目查看實例健康狀況(如CPU、內存使用率)。此外,使用gitlab-rake gitlab:monitor:check
命令可檢查實例健康,輸出潛在問題。
通過top
、htop
、vmstat
、iostat
等命令實時監控系統資源(CPU、內存、磁盤I/O)。這些工具無需額外安裝,適合快速查看系統整體狀態。
/etc/prometheus/prometheus.yml
中添加GitLab監控目標),Grafana用于可視化數據并創建儀表盤(如CPU、內存使用率)??稍O置告警規則(如CPU使用率超過80%觸發告警)。通過GitLab REST API獲取實例信息(如項目狀態、提交活動)。例如,使用GET /api/v4/projects
獲取項目列表,結合腳本可實現自動化監控。
GitLab日志集中存儲在/var/log/gitlab/
目錄下,按組件分類:
/var/log/gitlab/gitlab-rails/production.log
(記錄應用活動);/var/log/gitlab/sidekiq/current
(記錄異步任務執行情況);/var/log/gitlab/nginx/gitlab_access.log
(訪問日志)、/var/log/gitlab/nginx/gitlab_error.log
(錯誤日志);/var/log/postgresql/postgresql-<version>-main.log
(數據庫活動)。gitlab-ctl
命令:sudo gitlab-ctl tail
(查看所有服務日志)、sudo gitlab-ctl tail gitlab-rails
(查看Rails日志)、sudo gitlab-ctl tail nginx/gitlab_error.log
(查看Nginx錯誤日志);tail -f
命令:sudo tail -f /var/log/gitlab/gitlab-rails/production.log
(實時跟蹤Rails日志);journalctl
命令:sudo journalctl -u gitlab-rails
(查看Rails服務系統日志)。通過logrotate
管理日志切割、壓縮與保留。修改/etc/gitlab/gitlab.rb
文件自定義參數:
logging['logrotate_frequency'] = "daily" # 每天切割日志
logging['logrotate_rotate'] = 30 # 保留30天
logging['logrotate_compress'] = "compress" # 使用gzip壓縮
修改后執行sudo gitlab-ctl reconfigure
應用配置。
若需更詳細的日志信息,可修改/etc/gitlab/gitlab.rb
中的日志級別(如debug
級別):
gitlab_rails['log_level'] = :debug # 可選::info、:warn、:error、:fatal
修改后執行sudo gitlab-ctl reconfigure
使更改生效。