Ubuntu下GitLab的监控与日志管理指南
GitLab提供内置监控功能,可通过创建“Monitoring”项目查看实例健康状况(如CPU、内存使用率)。此外,使用gitlab-rake gitlab:monitor:check命令可检查实例健康,输出潜在问题。
通过top、htop、vmstat、iostat等命令实时监控系统资源(CPU、内存、磁盘I/O)。这些工具无需额外安装,适合快速查看系统整体状态。
/etc/prometheus/prometheus.yml中添加GitLab监控目标),Grafana用于可视化数据并创建仪表盘(如CPU、内存使用率)。可设置告警规则(如CPU使用率超过80%触发告警)。通过GitLab REST API获取实例信息(如项目状态、提交活动)。例如,使用GET /api/v4/projects获取项目列表,结合脚本可实现自动化监控。
GitLab日志集中存储在/var/log/gitlab/目录下,按组件分类:
/var/log/gitlab/gitlab-rails/production.log(记录应用活动);/var/log/gitlab/sidekiq/current(记录异步任务执行情况);/var/log/gitlab/nginx/gitlab_access.log(访问日志)、/var/log/gitlab/nginx/gitlab_error.log(错误日志);/var/log/postgresql/postgresql-<version>-main.log(数据库活动)。gitlab-ctl命令:sudo gitlab-ctl tail(查看所有服务日志)、sudo gitlab-ctl tail gitlab-rails(查看Rails日志)、sudo gitlab-ctl tail nginx/gitlab_error.log(查看Nginx错误日志);tail -f命令:sudo tail -f /var/log/gitlab/gitlab-rails/production.log(实时跟踪Rails日志);journalctl命令:sudo journalctl -u gitlab-rails(查看Rails服务系统日志)。通过logrotate管理日志切割、压缩与保留。修改/etc/gitlab/gitlab.rb文件自定义参数:
logging['logrotate_frequency'] = "daily" # 每天切割日志
logging['logrotate_rotate'] = 30 # 保留30天
logging['logrotate_compress'] = "compress" # 使用gzip压缩
修改后执行sudo gitlab-ctl reconfigure应用配置。
若需更详细的日志信息,可修改/etc/gitlab/gitlab.rb中的日志级别(如debug级别):
gitlab_rails['log_level'] = :debug # 可选::info、:warn、:error、:fatal
修改后执行sudo gitlab-ctl reconfigure使更改生效。