監控GitLab性能需結合系統級工具、GitLab內置功能及第三方可視化方案,實現對CPU、內存、磁盤、網絡及應用層指標的全面覆蓋。以下是具體方法:
通過Linux原生命令可實時監控GitLab所在服務器的基礎資源使用情況,適合快速排查資源瓶頸:
top/htop:實時顯示進程的CPU、內存占用率,按P(CPU)或M(內存)排序,快速定位高消耗進程(如GitLab Rails進程)。vmstat:報告系統虛擬內存、CPU、磁盤I/O等統計信息(如vmstat 1 5每1秒刷新一次,共5次),重點關注r(運行隊列長度)、b(阻塞進程數)、si/so(磁盤交換次數)。free:查看內存使用情況(如free -h),關注available(可用內存)而非used(已用內存),避免誤判內存壓力。ss/netstat:查看網絡連接狀態(如ss -tulnp | grep gitlab),確認GitLab端口(默認80/443、9090)的監聽情況及連接數。dstat:綜合顯示CPU、內存、磁盤I/O、網絡等實時數據(如dstat -cdngy 1),比vmstat更直觀。GitLab自帶的監控功能可采集應用層的性能指標(如請求延遲、作業執行時間、數據庫性能),并通過Web界面直接查看:
/etc/gitlab/gitlab.rb,開啟監控功能:gitlab_rails['monitoring_enabled'] = true
gitlab_rails['gitlab_metrics_enabled'] = true
gitlab_rails['gitlab_metrics_port'] = 9090 # 默認端口,可自定義
運行sudo gitlab-ctl reconfigure應用配置,重啟GitLab服務:sudo gitlab-ctl restart。http://your-gitlab-domain/monitoring(需管理員權限),即可查看CPU、內存、磁盤空間、HTTP請求延遲等指標。結合Prometheus+Grafana可實現專業的性能監控與告警,適合生產環境:
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz),編輯prometheus.yml配置GitLab抓取目標:scrape_configs:
- job_name: 'gitlab'
static_configs:
- targets: ['your-gitlab-server-ip:9090'] # GitLab metrics端口
啟動Prometheus:./prometheus --config.file=prometheus.yml。wget https://dl.grafana.com/oss/release/grafana-8.2.0.linux-amd64.tar.gz),啟動服務:./bin/grafana-server。訪問http://your-grafana-server-ip:3000(默認賬號admin/admin),添加Prometheus數據源(URL為http://your-gitlab-server-ip:9090)。gitlab_rails_database_queries_seconds_max表示數據庫查詢最大耗時、gitlab_workhorse_http_requests_total表示HTTP請求數),設置可視化圖表(如折線圖、儀表盤)。alerts.yml定義告警規則(如CPU使用率超過80%持續1分鐘),并集成Alertmanager實現郵件、Slack等通知。GitLab日志記錄了詳細的請求、作業及系統信息,通過日志分析可定位性能瓶頸的根本原因:
/var/log/gitlab/目錄下,主要包括:
/var/log/gitlab/gitlab-rails/production.log(記錄HTTP請求、錯誤信息);/var/log/gitlab/gitlab-rails/sidekiq.log(記錄后臺作業執行情況);/var/log/gitlab/nginx/access.log(記錄客戶端請求)。tail -f /var/log/gitlab/gitlab-rails/production.log實時跟蹤最新請求日志。以上方法可根據實際需求組合使用,例如:用系統自帶工具快速排查資源瓶頸,用GitLab內置監控查看應用層指標,用Prometheus+Grafana實現高級可視化與報警,用ELK分析日志根源問題。