Ubuntu系统下GitLab监控搭建指南(以Prometheus+Grafana为核心)
确保Ubuntu服务器已安装GitLab(建议版本≥13.0),且系统已更新至最新状态。监控搭建需用到以下工具:
安装Prometheus
通过APT仓库安装(推荐):
wget https://github.com/prometheus/prometheus/releases/download/v2.48.1/prometheus_2.48.1_amd64.deb
sudo dpkg -i prometheus_2.48.1_amd64.deb
或使用Docker快速部署(需提前安装Docker):
docker run -d --name=prometheus -p 9090:9090 -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
配置Prometheus抓取GitLab指标
编辑/etc/prometheus/prometheus.yml(本地安装)或容器内的配置文件,添加GitLab监控任务:
scrape_configs:
# 监控GitLab自身指标(需GitLab启用metrics端口)
- job_name: 'gitlab'
static_configs:
- targets: ['localhost:9090'] # GitLab metrics默认端口为9090,若修改需同步调整
metrics_path: '/metrics'
保存后重启Prometheus:
sudo systemctl restart prometheus # 本地安装
docker restart prometheus # Docker部署
验证Prometheus连接
访问http://<Ubuntu-IP>:9090/targets,确认gitlab任务状态为UP(表示成功连接到GitLab)。
安装Grafana
通过APT仓库安装:
sudo apt-get update
sudo apt-get install -y grafana
sudo systemctl enable --now grafana-server
访问http://<Ubuntu-IP>:3000(默认账号admin,密码admin),完成初始登录。
配置Prometheus数据源
进入Grafana控制台→Configuration→Data Sources→Add data source:
http://localhost:9090(若Prometheus用Docker部署,需改为容器IP或宿主机IP);导入GitLab监控仪表盘
在Grafana控制台→Create→Dashboard→Import,输入以下仪表盘ID(官方或社区提供):
GitLab需开启内置指标功能,才能被Prometheus采集:
/etc/gitlab/gitlab.rb,添加以下配置:gitlab_rails['gitlab_metrics_enabled'] = true
gitlab_rails['gitlab_metrics_port'] = 9090 # 指标端口(需与Prometheus配置一致)
gitlab_rails['gitlab_metrics_token'] = 'your_secure_token' # 可选:用于API认证
gitlab_runner['metrics_enabled'] = true # 启用Runner指标
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
Prometheus告警规则
在/etc/prometheus/目录下创建alerts.yml文件,定义告警条件(示例):
groups:
- name: gitlab_alerts
rules:
# CPU使用率超过80%持续1分钟触发告警
- alert: GitLabHighCPU
expr: process_cpu_seconds_total{job="gitlab"} / system_cpu_cores > 0.8
for: 1m
labels:
severity: warning
annotations:
summary: "GitLab CPU usage is high (instance {{ $labels.instance }})"
description: "GitLab CPU usage is above 80% for more than 1 minute."
# 内存使用率超过85%持续5分钟触发告警
- alert: GitLabHighMemory
expr: process_resident_memory_bytes{job="gitlab"} / process_virtual_memory_bytes{job="gitlab"} > 0.85
for: 5m
labels:
severity: critical
annotations:
summary: "GitLab memory usage is critical (instance {{ $labels.instance }})"
description: "GitLab memory usage is above 85% for more than 5 minutes."
在prometheus.yml中加载告警规则:
rule_files:
- "/etc/prometheus/alerts.yml"
重启Prometheus使规则生效:
sudo systemctl restart prometheus
配置Alertmanager通知
安装Alertmanager(若未安装):
sudo apt-get install -y alertmanager
sudo systemctl enable --now alertmanager
编辑/etc/alertmanager/alertmanager.yml,配置通知渠道(以邮件为例):
route:
receiver: 'email-notifications'
receivers:
- name: 'email-notifications'
email_configs:
- to: 'admin@example.com'
from: 'alertmanager@example.com'
smarthost: 'smtp.example.com:587'
auth_username: 'your_email@example.com'
auth_password: 'your_email_password'
在Prometheus中配置Alertmanager地址(prometheus.yml):
alerting:
alertmanagers:
- static_configs:
- targets: ['localhost:9093'] # Alertmanager默认端口
stress-ng --cpu 4 --timeout 300),观察Prometheus是否触发GitLabHighCPU告警,并通过Alertmanager发送通知到指定邮箱。Settings → Metrics and profiling → Self monitoring),将项目指标集成到Prometheus中,实现更细粒度的监控。loki组件收集GitLab日志,实现日志与指标的关联分析。通过以上步骤,即可在Ubuntu系统上搭建完整的GitLab监控体系,实现从指标采集、可视化到告警的全流程管理,确保GitLab实例的稳定运行。