CentOS系统如何监控GitLab的运行状态
小樊
34
2025-11-21 20:40:10
监控目标与总体思路
- 覆盖三层:
- 服务可用性(进程、端口、HTTP 探针);
- 系统资源(CPU、内存、磁盘 I/O、网络);
- 应用与业务指标(GitLab 内置监控、Prometheus/Grafana、日志)。
- 建议组合:gitlab-ctl 日常巡检 + 系统工具快速排障 + 内置监控/自监控持续观测 + Prometheus+Grafana 可视化与告警。
快速检查与日常巡检
- 服务状态与日志
- 查看整体状态:sudo gitlab-ctl status
- 实时查看日志:sudo gitlab-ctl tail(或指定组件:sudo gitlab-ctl tail nginx)
- 重启/停止:sudo gitlab-ctl restart|stop [组件名]
- 关键日志路径
- Rails:/var/log/gitlab/gitlab-rails/production.log
- Shell:/var/log/gitlab/gitlab-shell/gitlab-shell.log
- Unicorn:/var/log/gitlab/unicorn/unicorn_stdout.log
- 端口连通性
- 本地/远程探测:curl -I http://127.0.0.1/ 或 curl -I https://your-domain/(视是否启用 HTTPS)
- 系统资源速览
- 资源:top/htop、free -m、vmstat、iostat、df -h、ss -lntp、dstat
- 一键可用性脚本示例
- 示例:
- 检查端口:ss -lntp | grep -E ‘:(80|443|22)’
- HTTP 探测:curl -f -m 5 http://127.0.0.1/ || echo “HTTP DOWN”
- 磁盘:df -h | awk ‘$5+0 > 80 {print “Disk >80%:”, $0}’
- 内存:free -m | awk ‘NR==2{printf “Mem used: %.1f%%\n”, $3*100/$2}’
- 服务:gitlab-ctl status | grep down && echo “Service DOWN”
以上命令覆盖服务状态、日志、端口与系统资源,适合纳入 crontab 做定时自检与告警。
内置监控与自监控
- 启用内置监控
- 编辑:/etc/gitlab/gitlab.rb
- 启用:gitlab_rails[‘monitoring_enabled’] = true
- 应用:sudo gitlab-ctl reconfigure
- 访问:http://your-gitlab-domain/monitoring(管理员账号可见)
- 自监控项目
- 路径:Admin Area → Monitoring → Self monitoring,启用后会生成用于可视化与告警的自监控项目,便于持续观测实例健康度。
Prometheus与Grafana可视化与告警
- 部署与抓取
- Prometheus:安装后在 prometheus.yml 添加抓取任务
- 示例:
- job_name: ‘gitlab’
static_configs:
- targets: [‘your-gitlab-server:9090’]
- 重载配置并验证 targets 状态为 UP。
- Grafana
- 添加 Prometheus 数据源,导入 GitLab/系统面板(如 Node Exporter 全栈面板),构建统一可视化大盘。
- 告警规则示例
- Prometheus 规则(alerts.yml):
- groups:
- name: gitlab_alerts
rules:
- alert: GitLabHighCPU
expr: node_cpu_seconds_total{job=“gitlab”} > 0.8 for: 1m
labels: severity: warning
annotations:
summary: “High CPU Usage on GitLab Server”
description: “CPU usage is above 80%”
- 建议配套 Alertmanager 对接邮件/企业微信/Slack 等通道,实现 7×24 通知。
日志集中与可视化
- 方案:使用 ELK Stack(Elasticsearch + Logstash + Kibana)
- Logstash 采集 /var/log/gitlab/ 下日志并写入 ES;
- Kibana 建立索引模式与仪表盘,实现错误趋势、访问分析、慢请求定位等。
- 适用场景:审计、故障复盘、业务与访问分析。