温馨提示×

debian gitlab如何监控

小樊
48
2026-10-08 10:02:37
栏目: 智能运维

在 Debian 上运行的 GitLab(通常是 Omnibus 包安装)可以从 系统层、GitLab 自身、应用层、以及外部监控 几个维度来做监控。下面给你一套实用方案。


一、GitLab 自带监控(最优先)

1. GitLab 内置 Prometheus(推荐)

GitLab Omnibus 默认集成了 Prometheus + Grafana。

启用(通常默认已启用):

sudo gitlab-ctl reconfigure

配置文件 /etc/gitlab/gitlab.rb:

prometheus['enable'] = true
grafana['enable'] = true

访问:

  • Prometheus: http://<gitlab-ip>:9090
  • Grafana: http://<gitlab-ip>:3000

常用监控项:

  • gitlab_workhorse_requests
  • rails_requests
  • postgres_stat_database
  • redis_up
  • unicorn_active_connections

2. GitLab 自带的 Health Check

# 基本健康
sudo gitlab-rake gitlab:check

# 服务状态
sudo gitlab-ctl status

Web 健康检查:

https://gitlab.example.com/-/health

二、系统级监控(Debian 层)

1. 基础命令

top / htop
df -h
free -m
journalctl -u gitlab-runsvdir

2. node_exporter(Prometheus)

sudo apt install prometheus-node-exporter

Prometheus 采集:

- job_name: 'node'
  static_configs:
    - targets: ['localhost:9100']

三、GitLab 组件级监控

GitLab 包含以下核心组件,都需要关注:

组件 监控方式
Nginx nginx_status
Puma / Unicorn Prometheus
Sidekiq Prometheus
PostgreSQL postgres_exporter
Redis redis_exporter
Gitaly Prometheus

查看组件状态:

sudo gitlab-ctl status

四、日志监控(非常重要)

1. GitLab 日志目录

/var/log/gitlab/

重点日志:

  • gitlab-rails/production.log
  • sidekiq/current
  • nginx/gitlab_error.log
  • gitaly/current

2. 实时查看

sudo gitlab-ctl tail
sudo gitlab-ctl tail sidekiq

3. 日志集中(ELK / Loki)

  • Filebeat → Elasticsearch
  • Promtail + Loki + Grafana

五、告警方案(生产必备)

1. Prometheus + Alertmanager

示例告警:

  • CPU > 85%
  • 内存 > 90%
  • 磁盘 > 85%
  • Sidekiq 队列堆积
  • GitLab 健康检查失败

2. 外部监控(简单有效)

  • Uptime Robot / Blackbox Exporter
    • 监控 https://gitlab.example.com/-/health

六、备份与容灾监控(常被忽略)

sudo gitlab-rake gitlab:backup:create

监控:

  • 备份是否成功
  • 备份文件大小
  • 备份时间戳

七、推荐组合(生产级)

✅ GitLab + Prometheus + Grafana + node_exporter + Alertmanager

如果你愿意,我可以:

  • 帮你写一份 完整 Prometheus 配置
  • 给你一套 Grafana Dashboard JSON
  • 针对 小公司 / 大企业 给出不同方案

你现在是 自建 GitLab 还是 GitLab CE/EE?规模多大?

0 踩