监控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分析日志根源问题。