Gitlab服务组成
nginx: 静态web服务器 gitlab-shell: 用于处理Git命令和修改authorized keys列表 gitlab-workhorse: 轻量级的反向代理服务器 logrotate:日志文件管理工具 postgresql:数据库 redis:缓存数据库 sidekiq:用于在后台执行队列任务(异步执行) unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
运维故障排查
# 查看版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
# 检查gitlab
gitlab-rake gitlab:check SANITIZE=true --trace
# 实时查看日志
gitlab-ctl tail
# 数据库关系升级
gitlab-rake db:migrate
# 清理redis缓存
gitlab-rake cache:clear
# 升级GitLab-ce 版本
yum update gitlab-ce
# 升级PostgreSQL最新版本
gitlab-ctl pg-upgrade
服务管理
# 启动所有 gitlab 组件:
gitlab-ctl start
# 停止所有 gitlab 组件: gitlab-ctl stop # 停止所有 gitlab postgresql 组件: gitlab-ctl stop postgresql # 停止相关数据连接服务 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq # 重启所有 gitlab 组件: gitlab-ctl restart # 重启所有 gitlab gitlab-workhorse 组件: gitlab-ctl restart gitlab-workhorse # 查看服务状态 gitlab-ctl status # 生成配置并启动服务 gitlab-ctl reconfigure
日志管理
# 实时查看所有日志 gitlab-ctl tail # 实时检查redis的日志 gitlab-ctl tail redis # 实时检查postgresql的日志 gitlab-ctl tail postgresql # 检查gitlab-workhorse的日志 gitlab-ctl tail gitlab-workhorse # 检查logrotate的日志 gitlab-ctl tail logrotate # 检查nginx的日志 gitlab-ctl tail nginx # 检查sidekiq的日志 gitlab-ctl tail sidekiq # 检查unicorn的日志 gitlab-ctl tail unicorn #检查在gitlab中是否有任何配置。在指定版本中删除的rb。 gitlab-ctl check-config #安装部署页面 gitlab-ctl deploy-page #将用户配置与包可用配置进行比较 gitlab-ctl diff-config #删除所有用户和组 gitlab-ctl remove-accounts #版本升级 gitlab-ctl upgrade
GitLab备份和恢复
- 备份
GitLab备份的默认目录是 /var/opt/gitlab/backups ,可通过修改/etc/gitlab/gitlab.rb更改。
gitlab_rails['backup_path'] = '/data/backups'
备份命令
gitlab-rake gitlab:backup:create
备注:该命令会在备份目录(默认:/var/opt/gitlab/backups/)下创建一个tar压缩包xxxxxxxx_gitlab_backup.tar,其中开头的xxxxxx是备份创建的时间戳,这个压缩包包括GitLab整个的完整部分。
修改配置保留七天备份 /etc/gitlab/gitlab.rb
# 数值单位:秒 gitlab_rails['backup_keep_time'] = 604800
恢复备份文件:
停止 unicorn 和 sidekiq ,保证数据库没有新的连接,不会有写数据情况。
# 停止相关数据连接服务 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq # 指定恢复文件,会自动去备份目录找。如/var/opt/gitlab/backups/499244722_2020_04_05_12.10.1_gitlab_backup.tar。 # 指定文件名的格式类似:499242399_2020_04_05_12.10.1,加 “_gitlab_backup.tar” # 一定按这样的格式指定,否则会出现 The backup file does not exist! 的错误 gitlab-rake gitlab:backup:restore BACKUP=499242399_2020_04_05_12.10.1 # 启动Gitlab gitlab-ctl start