一、GitLab监控技巧
GitLab自带监控功能,可通过Web界面快速查看系统状态:登录GitLab管理员账号,点击左侧菜单栏“Status”,即可查看Web服务器、数据库、Sidekiq等组件的运行状态;也可使用gitlab-rake gitlab:monitor:check命令检查实例健康状况,该命令会运行一系列检查并报告潜在问题(如数据库连接、磁盘空间等)。
利用Debian系统自带的top/htop命令实时查看GitLab进程的资源使用情况(CPU、内存):top -p $(pgrep -f gitlab)或htop -p $(pgrep -f gitlab);使用nmon工具进行秒级系统监控(如CPU、内存、磁盘I/O),安装后运行nmon -c 10 -f /var/log/nmon/gitlab_$(date +%Y%m%d).nmon可每10秒收集一次数据并保存到指定文件。
通过Prometheus收集GitLab性能指标(如请求延迟、仓库克隆速度、Sidekiq队列长度),Grafana创建可视化仪表盘:
sudo apt-get install prometheus,编辑/etc/prometheus/prometheus.yml添加GitLab监控目标(scrape_configs部分指定GitLab主机和端口);sudo apt-get install grafana,启动后添加Prometheus为数据源;/etc/gitlab/gitlab.rb,开启邮件报警功能:gitlab_rails['alert_monitor'] = true、gitlab_rails['alert_email'] = ['your_email@example.com'],设置触发条件(如gitlab_rails['alert_on_issues'] = true),运行sudo gitlab-ctl reconfigure生效。二、GitLab日志管理技巧
gitlab-ctl tail命令实时查看GitLab所有服务的日志(按Ctrl+C退出);gitlab-ctl tail gitlab-rails(Rails应用日志)、gitlab-ctl tail sidekiq(后台任务日志)、gitlab-ctl tail nginx(Nginx访问/错误日志);journalctl -u gitlab命令查看GitLab相关服务的系统日志(支持时间范围过滤,如--since "2025-09-01" --until "2025-09-26")。/etc/gitlab/gitlab.rb,设置logging['svlogd_path'] = "/var/log/gitlab/custom_path",运行sudo gitlab-ctl reconfigure将日志存储到自定义目录。/etc/gitlab/gitlab.rb自定义Logrotate参数(内置Logrotate服务):logging['logrotate_frequency'] = "daily" # 每天切割日志
logging['logrotate_rotate'] = 30 # 保留30天日志
logging['logrotate_compress'] = "compress" # 使用gzip压缩旧日志
logging['svlogd_size'] = 200 * 1024 * 1024 # 单个日志文件超过200M时切割
运行sudo gitlab-ctl reconfigure使配置生效。curl --header "PRIVATE-TOKEN: your_private_token" "https://gitlab.example.com/api/v4/projects/1/jobs/123/trace"
适用于自动化脚本收集和分析构建日志。