温馨提示×

centos gitlab监控报警

小樊
41
2025-09-20 01:54:51
栏目: 智能运维

CentOS环境下GitLab监控报警配置指南

一、基础环境准备

在CentOS系统上配置GitLab监控报警前,需确保系统已安装GitLab(版本≥13.0,推荐最新稳定版),并具备root或sudo权限。同时,建议关闭SELinux(setenforce 0)或配置SELinux策略允许监控工具访问GitLab端口(默认80/443、9090等)。

二、核心监控方案:Prometheus + Grafana(推荐)

1. 配置GitLab暴露监控指标

修改GitLab主配置文件/etc/gitlab/gitlab.rb,启用内置指标服务:

gitlab_rails['gitlab_metrics_enabled'] = true gitlab_runner['metrics_enabled'] = true global['monitoring_enabled'] = true 

保存后执行sudo gitlab-ctl reconfigure使配置生效,GitLab会自动启动指标服务(默认端口9090)。

2. 安装并配置Prometheus

  • 安装Prometheus:通过RPM包或Docker安装(推荐RPM包,稳定性更高)。编辑/etc/prometheus/prometheus.yml,添加GitLab指标抓取任务:
    scrape_configs: - job_name: 'gitlab' static_configs: - targets: ['localhost:9090'] # GitLab服务器地址 
  • 启动Prometheussudo systemctl start prometheus && sudo systemctl enable prometheus。通过http://<服务器IP>:9090访问Prometheus Web界面,验证是否能获取GitLab指标(如gitlab_rails_database_queries_seconds)。

3. 安装并配置Grafana

  • 安装Grafana:通过RPM包安装,执行sudo yum install grafana -y && sudo systemctl start grafana-server
  • 连接Prometheus:登录Grafana(默认账号admin/admin),进入“Configuration→Data Sources”,添加Prometheus数据源(URL填写http://localhost:9090),测试连接成功后保存。
  • 创建监控仪表盘:导入GitLab专用仪表盘(ID:4379,来自Grafana社区),或自定义添加监控指标(如CPU使用率node_cpu_seconds_total{mode!="idle"}、内存使用率node_memory_MemAvailable_bytes/node_memory_MemTotal_bytes、GitLab作业成功率gitlab_runner_jobs_success_rate)。

三、告警规则配置

1. Prometheus告警规则

创建/etc/prometheus/alert.yml文件,定义常见告警规则(如高CPU、高内存、作业失败):

groups: - name: gitlab_alerts rules: - alert: GitLabHighCPU expr: (sum by(instance) (irate(node_cpu_seconds_total{mode!="idle"}[5m]))) > 0.8 for: 5m labels: severity: critical annotations: summary: "GitLab服务器CPU使用率过高({{ $value }}%)" description: "服务器{{ $labels.instance }}的CPU使用率已持续5分钟超过80%,请检查进程负载。" - alert: GitLabHighMemory expr: (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) < 0.2 for: 10m labels: severity: warning annotations: summary: "GitLab服务器内存不足(可用率{{ $value | humanizePercentage }})" description: "服务器{{ $labels.instance }}的内存可用率已持续10分钟低于20%,可能导致服务卡顿。" - alert: GitLabJobFailureRate expr: rate(gitlab_runner_jobs_failed_total[1h]) / rate(gitlab_runner_jobs_total[1h]) > 0.1 for: 1h labels: severity: error annotations: summary: "GitLab作业失败率过高({{ $value | humanizePercentage }})" description: "过去1小时内GitLab作业失败率超过10%,请检查Runner配置及项目流水线。" 

编辑/etc/prometheus/prometheus.yml,加载告警规则:

rule_files: - "/etc/prometheus/alert.yml" alerting: alertmanagers: - static_configs: - targets: ['localhost:9093'] # Alertmanager地址 

重启Prometheus使规则生效。

2. Alertmanager通知配置

安装Alertmanager:sudo yum install alertmanager -y && sudo systemctl start alertmanager。编辑/etc/alertmanager/alertmanager.yml,配置邮件通知(以SMTP为例):

route: receiver: 'email-notifications' group_by: ['alertname', 'severity'] group_wait: 30s group_interval: 5m repeat_interval: 1h receivers: - name: 'email-notifications' email_configs: - to: 'admin@example.com' from: 'gitlab-alert@example.com' smarthost: 'smtp.example.com:587' auth_username: 'gitlab_alert' auth_password: 'your_password' send_resolved: true # 问题恢复后发送通知 

重启Alertmanager:sudo systemctl restart alertmanager

四、GitLab内置监控(可选补充)

GitLab自带监控功能,可通过以下步骤启用:

  1. 进入GitLab控制台(http://<服务器IP>/admin),点击“Monitoring→Metrics”,确认指标服务已启用。
  2. 配置CI/CD管道收集自定义指标:在项目根目录创建.gitlab-ci.yml文件,添加监控任务(如安装prometheus-node-exporter并导出指标):
    monitoring: stage: test script: - yum install -y prometheus-node-exporter - echo "gitlab_custom_metric{project=\"$CI_PROJECT_PATH\"} 1" > /var/lib/node_exporter/custom_metrics.prom artifacts: paths: - /var/lib/node_exporter/custom_metrics.prom expire_in: 1 week 
    此配置会将自定义指标暴露给Prometheus抓取。

五、测试与验证

  1. 模拟高CPU场景:通过stress工具模拟高CPU负载(stress --cpu 4 --timeout 300),观察Prometheus是否触发GitLabHighCPU告警,Grafana仪表盘是否显示异常,以及是否收到邮件通知。
  2. 模拟作业失败:修改项目流水线脚本(如gitlab-ci.yml中添加exit 1),触发作业失败,验证GitLabJobFailureRate告警是否生效。

注意事项

  • 确保Prometheus、Grafana、Alertmanager的版本兼容(推荐最新稳定版)。
  • 生产环境中建议使用HTTPS加密通信(配置Prometheus的basic_auth、Grafana的TLS设置)。
  • 定期备份监控配置文件(prometheus.ymlalert.ymlalertmanager.yml),避免配置丢失。
  • 根据实际业务需求调整告警阈值(如CPU阈值从80%调整为70%)和通知方式(如增加Slack、企业微信通知)。

0