温馨提示×

CentOS系统如何监控GitLab的运行状态

小樊
34
2025-11-21 20:40:10
栏目: 智能运维

监控目标与总体思路

  • 覆盖三层:
    1. 服务可用性(进程、端口、HTTP 探针);
    2. 系统资源(CPU、内存、磁盘 I/O、网络);
    3. 应用与业务指标(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 建立索引模式与仪表盘,实现错误趋势、访问分析、慢请求定位等。
  • 适用场景:审计、故障复盘、业务与访问分析。

0