Ubuntu 上搭建 GitLab 性能监控的实用方案
一 监控架构与组件
- 建议采用“节点/系统监控 + GitLab 应用指标 + 日志可视化 + 告警”的四层架构:
- 节点/系统:用 Prometheus Node Exporter 采集 CPU、内存、磁盘 I/O、网络 等基础指标,配合 Grafana 做可视化。
- GitLab 应用:启用 GitLab 内置 Prometheus 抓取与 Grafana 仪表盘,覆盖 Rails/Unicorn/Puma、Sidekiq、PostgreSQL、Redis、Nginx 等关键组件。
- 日志:集中 /var/log/gitlab 日志到 Grafana Loki(或 ELK),用日志面板做错误与延迟趋势分析。
- 告警:在 Prometheus Alertmanager 配置规则,通过 邮件/企业微信/钉钉/Slack/Webhook 通知。
二 快速落地步骤
- 安装与启用组件
- 安装 Prometheus、Node Exporter、Grafana(Ubuntu 可用 apt 或从官方仓库安装),启动服务并设为开机自启。
- 配置 Prometheus 抓取
- 配置 Grafana
- 添加 Prometheus 数据源(URL 指向 Prometheus),导入 GitLab 官方/社区仪表盘(如 Node Exporter Full、GitLab 监控面板),保存并设为团队常用视图。
- 配置告警
- 在 Prometheus 创建 rules.yml(示例:CPU 持续高于阈值告警),并在 Alertmanager 配置通知路由与接收人;Grafana 也可创建面板级告警作为补充。
三 关键指标与面板建议
- 系统层:CPU 使用率、内存使用率、磁盘 IOPS/延迟、网络吞吐;面板建议包含 Node Exporter Full 模板。
- GitLab 组件层:
- Rails/Unicorn/Puma:请求吞吐、排队与响应时延、错误率。
- Sidekiq:排队任务数、重试/失败数、处理时延。
- PostgreSQL:连接数、慢查询、复制延迟、缓存命中率。
- Redis:命中率、内存占用、阻塞命令。
- Nginx:请求速率、状态码分布、上游响应时间。
- 日志层:错误日志、Sidekiq 失败/重试、API 限流与鉴权失败等,建议用 Loki 做关键字与趋势分析。
- 开发/排障辅助:在 Admin Area → Metrics & Profiling 启用 Performance Bar,定位单个请求瓶颈。
四 快速排障与日常巡检
- 命令行巡检
- 查看资源与进程:top/htop、vmstat、iostat、netstat/ss、dstat,快速判断 CPU/内存/磁盘/网络 是否异常。
- 查看 GitLab 服务与连通性:使用 gitlab-ctl status 检查组件状态,必要时查看 /var/log/gitlab 下对应组件日志定位问题。
- 内置与日志
- 使用 GitLab 内置监控页面 查看实例健康与关键指标;结合 日志目录 /var/log/gitlab 做错误与性能回溯。
五 可选工具与扩展
- 轻量实时监控:Netdata,开箱即用地展示系统与应用指标,适合临时排查与可视化入门。
- 企业级监控:Zabbix、Nagios,适合统一监控平台与复杂告警策略。
- 日志分析平台:ELK Stack(Elasticsearch、Logstash、Kibana),适合大规模日志检索与可视化。