Ubuntu上监控 GitLab 状态的可落地方案
一 快速巡检与日志排查
- 使用 Omnibus 包安装时,执行以下命令查看各组件状态、整体健康与日志:
- 组件状态:sudo gitlab-ctl status(关注 nginx、puma/unicorn、sidekiq、postgresql、redis、gitaly 是否为 run 状态)
- 配置与依赖自检:sudo gitlab-rake gitlab:check
- 查看日志:sudo gitlab-ctl tail(或进入 /var/log/gitlab 按服务查看)
- 若为 Docker 部署,进入容器检查:
- 组件状态:docker exec -it gitlab gitlab-ctl status
- 查看容器日志:docker logs gitlab
- 这些步骤能快速定位进程是否存活、配置是否正确以及是否有运行期错误。
二 系统层面资源与健康监控
- 命令行快速查看(按需选用):
- 资源总览:top/htop、vmstat、free、iostat、netstat/ss、dstat、sar、nmon、glances
- 可视化与长期采集:
- 部署 Prometheus + Grafana:Prometheus 负责采集时间序列指标,Grafana 用于可视化展示与面板编排。
- 主机指标采集:安装 Node Exporter 暴露 CPU、内存、磁盘、网络 等系统指标供 Prometheus 抓取。
- 告警能力:使用 Prometheus Alertmanager 或 Grafana 告警 对异常进行通知(邮件、企业微信、钉钉、Webhook 等)。
三 在 GitLab 内查看监控与性能
- 管理员可在 Admin Area → Monitoring 查看实例的关键图表,如 CPU、内存、磁盘空间、网络流量 等,用于快速判断资源瓶颈与异常趋势。
- 性能剖析与请求耗时定位:在 Admin Area → Settings → Metrics and profiling 启用 Performance Bar,可在页面底部看到当前请求的 SQL、Gitaly、Redis、Sidekiq 等耗时,便于精确定位慢请求。
四 Prometheus 抓取 GitLab 指标与告警示例
- 抓取 GitLab 自身指标(Omnibus 默认已暴露 /metrics 端点,端口通常为 9090):
- 编辑 /etc/prometheus/prometheus.yml,添加作业:
- job_name: ‘gitlab’
static_configs:
- targets: [‘your_gitlab_server_address:9090’]
- 简单告警规则示例(Prometheus 规则文件):
- groups:
- name: gitlab_alerts
rules:
- alert: GitLabHighCPU
expr: 1 - avg by(instance)(rate(node_cpu_seconds_total{mode=“idle”}[1m])) > 0.8
for: 1m
labels:
severity: warning
annotations:
summary: “High CPU Usage on GitLab Server”
description: “CPU usage is above 80% on {{ $labels.instance }}”
- 说明:上述 CPU 表达式基于 Node Exporter 的 node_cpu_seconds_total;若需监控 GitLab 应用内部指标,请确保相应 exporter(如 gitlab-exporter)已启用并纳入抓取。
五 第三方监控与容器场景补充
- 第三方平台:可使用 Zabbix、Nagios、Netdata、New Relic、Datadog 等做主机与应用层面的可用性、性能与异常告警,适合已有监控体系的企业统一纳管。
- Docker 场景补充:
- 进入容器排查:docker exec -it gitlab gitlab-ctl status
- 容器日志:docker logs gitlab
- 重启异常组件:docker exec -it gitlab gitlab-ctl restart <component_name>。