docker-gitlab与Grafana集成:监控面板自定义与告警配置
【免费下载链接】docker-gitlab Dockerized GitLab 项目地址: https://gitcode.com/gh_mirrors/do/docker-gitlab
概述
Dockerized GitLab(项目路径)作为代码管理平台,其稳定性直接影响开发流程。通过与Grafana集成,可实现关键指标可视化与智能告警,及时发现系统瓶颈。本文基于官方监控文档,从环境配置、数据采集到面板定制,提供完整落地指南。
前提条件
环境要求
- docker-gitlab 18.5.1+(Dockerfile)
- Grafana 8.0+
- Prometheus 2.30+
- Docker Compose 2.0+(docker-compose.yml)
关键配置文件
| 路径 | 作用 |
|---|---|
| assets/runtime/config/gitlab.yml | GitLab核心配置,含监控端点开关 |
| docker-compose.yml | 容器编排配置,需添加Prometheus/Grafana服务 |
| docs/container_registry.md | 容器仓库监控指标说明 |
步骤1:启用GitLab监控端点
配置metrics暴露
- 修改assets/runtime/config/gitlab.yml,确保以下配置:
production:
monitoring:
prometheus:
enabled: true
metrics_server:
enabled: true
address: 0.0.0.0
port: 8080
- 设置IP白名单(允许Prometheus抓取):
docker run --name gitlab -d \
--env 'MONITORING_IP_WHITELIST=172.17.0.0/16' \ # 替换为Prometheus容器网段
sameersbn/gitlab:18.5.1
- 验证端点可用性:
curl http://gitlab-container-ip:8080/-/metrics
步骤2:部署Prometheus与Grafana
Docker Compose配置
扩展docker-compose.yml,添加监控服务:
version: '3'
services:
gitlab:
image: sameersbn/gitlab:18.5.1
ports:
- "8080:80"
- "8081:8080" # metrics端口
environment:
- GITLAB_SECRETS_DB_KEY_BASE=your-secret-key
# 其他配置...
prometheus:
image: prom/prometheus:v2.45.0
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
command:
- '--config.file=/etc/prometheus/prometheus.yml'
grafana:
image: grafana/grafana:9.5.2
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
depends_on:
- prometheus
volumes:
grafana-data:
Prometheus配置
创建prometheus.yml:
scrape_configs:
- job_name: 'gitlab'
static_configs:
- targets: ['gitlab:8080']
metrics_path: '/-/metrics'
步骤3:Grafana数据对接
添加Prometheus数据源
- 访问Grafana界面(http://localhost:3000)
- 配置数据源:
- 类型:Prometheus
- URL:http://prometheus:9090
- 保存并测试连接
导入GitLab监控模板
- 导入模板ID
12740(GitLab Performance Monitoring) - 调整指标前缀为
gitlab_,适配metrics端点输出格式
步骤4:自定义监控面板
核心指标面板
基于健康检查文档,创建关键指标面板:
常用查询示例
| 指标 | PromQL | 说明 |
|---|---|---|
| 活跃用户数 | gitlab_transactions_total{action="user_session"} | 用户认证指标 |
| 仓库大小 | gitlab_projects_size_bytes_sum | 需启用容器仓库监控 |
| 构建成功率 | sum(rate(gitlab_ci_builds_success_total[5m])) / sum(rate(gitlab_ci_builds_total[5m])) | CI/CD流水线状态 |
步骤5:告警配置
关键告警规则
在Grafana中创建以下告警:
-
磁盘空间告警
- 条件:
gitlab_disk_usage_percent{mountpoint="/home/git/data"} > 85 - 通知渠道:Email/Slack
- 参考配置:Docker Swarm部署文档中的资源限制策略
- 条件:
-
API响应延迟
- 条件:
histogram_quantile(0.95, sum(rate(gitlab_api_request_duration_seconds_bucket[5m])) by (le)) > 1 - 优先级:P2
- 条件:
告警通知配置
修改Grafana配置文件(grafana.ini):
[smtp]
enabled = true
host = smtp.example.com:587
user = alert@example.com
password = your-smtp-password
高级配置:SSL与安全加固
HTTPS配置
- 生成SSL证书(参考SSL文档):
openssl req -new -key gitlab.key -out gitlab.csr
openssl x509 -req -days 3650 -in gitlab.csr -signkey gitlab.key -out gitlab.crt
- 挂载证书至容器:
services:
gitlab:
volumes:
- ./certs:/home/git/data/certs # [assets/runtime/config/nginx/](https://link.gitcode.com/i/841ac412705d92e14a433dbc298b4fb0)
监控端点保护
设置IP白名单(配置参数):
--env 'MONITORING_IP_WHITELIST=192.168.1.0/24'
故障排查
常见问题解决
- metrics端点403错误:检查MONITORING_IP_WHITELIST配置
- 数据采集延迟:调整Prometheus
scrape_interval至15s - 面板无数据:验证gitlab.yml中
metrics_server配置
日志查看
docker logs gitlab 2>&1 | grep -i metrics # 查看指标暴露日志
docker exec -it prometheus grep gitlab /var/log/prometheus/prometheus.log # 检查Prometheus抓取状态
总结
通过本文配置,可实现docker-gitlab全链路监控。关键链路为:
- GitLab暴露指标(gitlab.yml)
- Prometheus采集(
prometheus.yml) - Grafana可视化与告警
建议定期回顾Changelog.md,跟进监控功能更新。完整配置示例可参考Docker Swarm部署中的监控栈定义。
【免费下载链接】docker-gitlab Dockerized GitLab 项目地址: https://gitcode.com/gh_mirrors/do/docker-gitlab
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



