ubuntu上gitlab的监控与日志分析怎么做
导读:Ubuntu上 GitLab 的监控与日志分析实操指南 一 监控体系与快速检查 系统层快速巡检:使用 top/htop、vmstat、iostat、sar、netstat/ss、dstat 观察 CPU、内存、磁盘 I/O、网络 等负载,...
Ubuntu上 GitLab 的监控与日志分析实操指南
一 监控体系与快速检查
- 系统层快速巡检:使用 top/htop、vmstat、iostat、sar、netstat/ss、dstat 观察 CPU、内存、磁盘 I/O、网络 等负载,定位资源瓶颈。
- GitLab 自带检查与健康页:
- 执行 sudo gitlab-rake gitlab:check 做组件与配置一致性自检。
- 管理员登录 Web,进入 Admin Area → Monitoring,查看 CPU、内存、磁盘空间、网络流量 等实例指标与图表。
- 性能剖析:在 Admin Area → Settings → Metrics and profiling 启用 Performance Bar,对单次请求进行耗时剖析(SQL、Gitaly、Redis 等)。
二 指标监控 Prometheus Grafana
- 启用与抓取:Omnibus 安装默认集成 Prometheus,在 /etc/gitlab/gitlab.rb 确认或设置
- prometheus[‘enable’] = true
- prometheus[‘listen_address’] = ‘0.0.0.0:9090’
执行 sudo gitlab-ctl reconfigure 生效。
- 配置抓取目标:在 Prometheus 的 prometheus.yml 增加 job(示例):
- job_name: ‘gitlab’
static_configs:- targets: [‘your_gitlab_server:9090’]
- job_name: ‘gitlab’
- 可视化与告警:部署 Grafana,添加 Prometheus 数据源,导入 GitLab 官方或社区仪表盘(如 GitLab/NGINX/PostgreSQL/Redis/Prometheus Exporter 面板),在 Grafana 或 Prometheus 中配置 告警规则 与通知渠道(如 Email/Slack/Webhook)。
三 日志查看与定位
- 集中查看与实时跟踪:
- 全部日志:sudo gitlab-ctl tail
- 指定服务:sudo gitlab-ctl tail nginx/gitlab_error.log
- 文件路径与常用日志:
- 主日志目录:/var/log/gitlab
- 关键文件:gitlab-rails/production.log、gitlab-rails/production_json.log、sidekiq/current、nginx/gitlab_access.log、nginx/gitlab_error.log、gitlab-shell/gitlab-shell.log
- 时间与范围检索:
- 按时间查看:sudo journalctl --since “2025-11-20” --until “2025-11-27”
- 按服务查看:sudo journalctl -u gitlab-rails
- CI/CD 任务日志:通过 GitLab API 获取作业日志(需 PRIVATE-TOKEN):
- curl --header “PRIVATE-TOKEN: ” “https://gitlab.example.com/api/v4/projects/< project_id> /jobs/< job_id> /trace”
四 日志分析与长期保留
- 集中化分析平台:将 /var/log/gitlab/ 通过 Filebeat/rsyslog 发送至 ELK(Elasticsearch、Logstash、Kibana) 或 Graylog,在 Kibana/Graylog 中建立索引、可视化与告警,用于 错误趋势、访问统计、CI 失败分析 等。
- 日志轮转与保留:Omnibus 内置 logrotate,可在 /etc/gitlab/gitlab.rb 自定义 size、rotate、compress、retain 等策略,防止日志无限增长。
- 审计与安全分析:定期审查 审计日志 与关键业务日志,建立 异常行为告警(如频繁失败登录、权限变更、异常流水线触发)。
五 告警阈值与排障清单
- 建议阈值与动作(示例,需结合业务调优):
- CPU 持续 > 80% 持续 5 分钟:扩容或优化 Sidekiq/Unicorn 并发与队列。
- 内存使用 > 80%:检查 Puma/Unicorn 工作进程数、对象缓存(Redis)与后台任务积压。
- 磁盘使用 > 80%:清理旧日志/制品、扩容磁盘或调整 logrotate 保留策略。
- 响应时延 P95 > 2s:启用 Performance Bar 定位慢请求,检查 Gitaly、数据库慢查询、网络。
- Sidekiq 队列持续增长:扩容 Sidekiq 并发、优化任务、排查异常重试。
- Prometheus 抓取失败:核对 9090 端口、防火墙、服务状态与 gitlab.rb 配置。
- 高频排障命令清单:
- 组件状态:sudo gitlab-ctl status
- 配置自检:sudo gitlab-rake gitlab:check
- 实时错误:sudo gitlab-ctl tail gitlab-rails 与 sudo journalctl -u gitlab-rails -f
- 资源负载:htop、iostat -x 1、vmstat 1、sar -n DEV 1
- 近期错误快速筛检:
- grep -i “error|exception|failed” /var/log/gitlab/gitlab-rails/production.log | tail -n 200
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu上gitlab的监控与日志分析怎么做
本文地址: https://pptw.com/jishu/757735.html
