一、系统自带工具监控(基础监控)
通过Linux系统原生命令快速查看GitLab相关进程及资源使用情况,适合日常快速排查:
top -p $(pgrep -d',' gitlab)过滤GitLab相关进程;htop需安装(yum install epel-release -y; yum install htop -y),支持颜色标识和交互操作。vmstat 1 5(每1秒采样1次,共5次)。free -h(以人类可读格式显示)。netstat -tulnp | grep gitlab或ss -tulnp | grep gitlab(ss性能更优)。dstat -cdngy(需安装:yum install dstat -y)。/var/log/gitlab目录(如gitlab-rails/production.log、gitlab-ci.log),使用tail -f /var/log/gitlab/gitlab-rails/production.log实时查看最新请求或错误。二、GitLab内置监控(官方推荐)
GitLab集成了Prometheus客户端,可直接暴露指标并通过内置仪表盘查看:
/etc/gitlab/gitlab.rb,取消注释并设置:gitlab_rails['monitoring_enabled'] = true
gitlab_rails['metrics_port'] = 9090 # 指标端口(默认9090)
gitlab_rails['metrics_token'] = 'your_secure_token' # 可选:设置访问令牌增强安全性
保存后执行sudo gitlab-ctl reconfigure应用配置,重启GitLab服务:sudo gitlab-ctl restart。http://your-gitlab-domain/admin_area)进入Monitoring页面,查看CPU使用率、内存占用、磁盘空间、请求延迟等关键指标(无需额外安装工具)。三、Prometheus+Grafana(专业可视化监控)
适用于需要长期存储、告警、可视化的场景,是GitLab推荐的监控方案:
echo "[prometheus]
name=Prometheus
baseurl=https://packagecloud.io/prometheus-rpm/release/el/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=https://packagecloud.io/prometheus-rpm/release/gpgkey https://packagecloud.io/prometheus-rpm/release/gpgkey" | sudo tee /etc/yum.repos.d/prometheus.repo
sudo yum install prometheus -y; sudo systemctl start prometheus; sudo systemctl enable prometheus。/etc/prometheus/prometheus.yml,添加GitLab抓取任务:scrape_configs:
- job_name: 'gitlab'
static_configs:
- targets: ['your-gitlab-domain:9090'] # 替换为GitLab服务器地址
重启Prometheus使配置生效:sudo systemctl restart prometheus。sudo yum install grafana -y; sudo systemctl start grafana-server; sudo systemctl enable grafana-server。http://localhost:3000,账号admin,密码admin),添加Prometheus数据源(填写Prometheus URL:http://localhost:9090)。4379,涵盖CPU、内存、请求等指标),即可查看可视化图表。四、第三方监控工具(补充方案)
gitlab_process_count、gitlab_memory_usage)。check_gitlab)监控GitLab服务状态(如HTTP响应、进程是否存在),适合小型环境。/var/log/gitlab下的日志,发送到Elasticsearch,通过Kibana创建仪表盘查看日志趋势(如错误日志数量、请求响应时间)。五、告警配置(及时响应问题)
sudo yum install alertmanager -y; sudo systemctl start alertmanager。/etc/prometheus/alerts.yml):groups:
- name: gitlab_alerts
rules:
- alert: HighGitLabCPU
expr: rate(node_cpu_seconds_total{job="gitlab", mode="system"}[5m]) > 0.8 # CPU使用率>80%持续5分钟
for: 1m
labels:
severity: warning
annotations:
summary: "High CPU usage on GitLab server"
description: "GitLab CPU usage is above 80% for more than 5 minutes."
prometheus.yml,添加rule_files: ['/etc/prometheus/alerts.yml'],重启Prometheus。/etc/alertmanager/alertmanager.yml,设置接收人信息(示例为邮件):receivers:
- name: 'email-notifications'
email_configs:
- to: 'admin@example.com'
from: 'alertmanager@example.com'
smarthost: 'smtp.example.com:587'
auth_username: 'user@example.com'
auth_password: 'password'
以上方案覆盖了从基础到高级的GitLab监控需求,可根据实际环境(如服务器规模、团队技能)选择合适的工具组合。建议优先使用GitLab内置监控+Prometheus+Grafana的组合,兼顾易用性与扩展性。