Gitlab日常管理

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

发表评论