gitlab9.2维护参考

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介:

gitlab9.2备份报错

今天无意中发现gitlab已经有10天不能正常备份了,报错:

[root@tools-gitlab gitlab_backups]# /usr/bin/gitlab-rake  gitlab:backup:create

Dumping database ... 
Dumping PostgreSQL database gitlabhq_production ... pg_dump: [archiver (db)] connection to database "gitlabhq_production" failed: FATAL:  remaining connection slots are reserved for non-replication superuser connections
[FAILED]
Backup failed

检查gitlab的状态check

#gitlab-rake gitlab:check
或者使用sudo gitlab-ctl tail postgresql 查看postgresql日志也可以。

hooks directories in repos are links: ... rake aborted!
PG::ConnectionBad: FATAL:  remaining connection slots are reserved for non-replication superuser connections
/opt/gitlab/embedded/service/gitlab-rails/app/models/project.rb:234:in `block in <class:Project>'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/check.rake:469:in `check_repos_hooks_directory_is_link'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/check.rake:345:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/bin/bundle:22:in `load'
/opt/gitlab/embedded/bin/bundle:22:in `<main>'
Tasks: TOP => gitlab:check => gitlab:gitlab_shell:check
(See full trace by running task with --trace)

登陆postgresql数据库查看连接

确定是数据库连接总数太少,总共200个,其中当前连接已经达到197,其中3个连接是保留给非用户的。

#登陆数据库,默认是没有密码的
gitlab-psql -d gitlabhq_production
#当前总共正在使用的连接数
postgres=# select count(1) from pg_stat_activity;
#显示系统允许的最大连接数
postgres=# show max_connections;
#显示系统保留的用户数
postgres=# show superuser_reserved_connections ;

更改gitlab的postgresql数据库最大连接数

vim /etc/gitlab/gitlab.rb 
添加如下内容

postgresql['max_connections'] = 500

更新配置,重启gitlab

gitlab-ctl reconfigure
gitlab-ctl restart

ok,问题处理完毕。下面是常用的命令,其他版本未试过。

运维常用命令

# 修改默认的配置文件
sudo vim /etc/gitlab/gitlab.rb
# 查看版本
sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
# 检查gitlab
gitlab-rake gitlab:check SANITIZE=true --trace
gitlab-rake gitlab:check
gitlab-rake gitlab:check SANITIZE=true
# 查看日志
gitlab-ctl tail

# 数据库关系升级
gitlab-rake db:migrate
# 清理缓存
gitlab-rake cache:clear
# 更新gitlab包
yum update gitlab-ce
# 升级gitlab
yum install gitlab-ce
# 升级数据命令
gitlab-ctl pg-upgrade

服务管理
gitlab-ctl start # 启动所有 gitlab 组件:
gitlab-ctl stop  # 停止所有 gitlab 组件:
gitlab-ctl stop postgresql # 停止所有 gitlab postgresql 组件:
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl restart # 重启所有 gitlab 组件:
gitlab-ctl restart gitlab-workhorse # 重启所有 gitlab gitlab-workhorse 组件:
gitlab-ctl status # 查看服务状态
gitlab-ctl reconfigure # 生成配置启动服务

日志查看
sudo gitlab-ctl tail # 查看日志
sudo gitlab-ctl tail redis # 检查redis的日志
sudo gitlab-ctl tail postgresql       # 检查postgresql的日志
sudo gitlab-ctl tail gitlab-workhorse # 检查gitlab-workhorse的日志
sudo gitlab-ctl tail logrotate # 检查logrotate的日志
sudo gitlab-ctl tail nginx    # 检查nginx的日志
sudo gitlab-ctl tail sidekiq  # 检查sidekiq的日志
sudo gitlab-ctl tail unicorn  # 检查unicorn的日志

重置管理员密码

sudo gitlab-rails console production

#查询用户的email,用户名,密码等信息,id:1 表示root账号
user = User.where(id: 1).first

#重新设置密码
user.password = '新密码'
user.password_confirmation = '新密码' 

#保存密码
user.save!

备份保留七天

单位为秒,我算了好几次了。

# /etc/gitlab/gitlab.rb 配置文件 修改下面这一行
gitlab_rails['backup_keep_time'] = 604800  

启用禁用账户验证防护

修改下面的配置项控制Rack Attack:

gitlab_rails['rack_attack_git_basic_auth'] = {
  'enabled' => true, # 启用/禁用 Rack Attack
  'ip_whitelist' => ["127.0.0.1"], # 白名单地址,多个IP用","隔开
  'maxretry' => 10, # 限制每个IP尝试登陆的次数为10次。
  'findtime' => 60, # 60秒后重置每IP的授权计数器
  'bantime' => 3600 # 对多次错误登陆的IP封禁1小时(3600秒)
}

上篇文章是:
centos7.x搭建gitlab9.2.2



本文转自 yanconggod 51CTO博客,原文链接:http://blog.51cto.com/yanconggod/2062591

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
8月前
|
存储 运维 安全
【运维知识高级篇】一篇文章带你搞懂GitHub基础操作!(注册用户+配置ssh-key+创建项目+创建存储库+拉取代码到本地+推送新代码到Github)
【运维知识高级篇】一篇文章带你搞懂GitHub基础操作!(注册用户+配置ssh-key+创建项目+创建存储库+拉取代码到本地+推送新代码到Github)
138 0
|
11月前
|
运维 监控 开发工具
运维笔记:docker中 gitlab 安装、配置和初始化
小笔记:gitlab配置文件 /etc/gitlab/gitlab.rb 配置项
513 0
|
网络安全 开发工具 数据安全/隐私保护
Gitlab上手指南(三)|在企业中如何注册Gitlab,如何创建公司项目?
一般企业的gitlab都是私有的,也就是部署在企业私有服务器上面,外网不能访问,比如<https://icode.xiumubai.com/>,在入职的时候,公司会给你开通企业邮箱,使用这个邮箱就可以登陆企业gitlab。
1128 0
|
存储 缓存 安全
Gitlab上手指南(五)|如何优雅的拉取和合并代码
pull or fetch 拉取代码的操作有两种形式,git pull和git fetch,那么这两种有什么区别呢? 让我们先来看看一个架构图 图中展示一个完整的git流程,为了更清晰的了解每个区域,
1735 0
|
监控 前端开发 测试技术
还在手动维护Yapi?
因前后端人员通过接口定义字段,返回值等对接时非常苦恼,没有一个很好的平台维护,后端每次迭代都要写开发文档,需求变化,多系统联调等,给前后端联调造成阻塞。
280 0
|
数据安全/隐私保护
Gitlab 基础配置(1)
Gitlab 基础配置(1)
Gitlab 基础配置(1)
|
开发工具 git
Gitlab 基础配置(2)
Gitlab 基础配置(2)
Gitlab 基础配置(2)
|
缓存 监控 测试技术
【实测】用土话让你明白如何做测试平台的持续部署和集成 - 4【gitlab-runner在gitlab上要如何配置】
【实测】用土话让你明白如何做测试平台的持续部署和集成 - 4【gitlab-runner在gitlab上要如何配置】
【实测】用土话让你明白如何做测试平台的持续部署和集成 - 4【gitlab-runner在gitlab上要如何配置】
|
运维 安全 NoSQL
如何使用官方最新源代码部署yapi?
我们之前使用的yapi 1.9.2,存在高危漏洞,攻击者可利用该漏洞在目标服务器上执行任意代码,导致服务器被攻击者控制,植入木马或挖矿病毒。通过目前网络上给出的安全解决方案,总感觉解决的不彻底,yapi 官方仓库已经修复了沙箱提权的问题,我尝试使用官方最新源代码部署yapi,遇到好多问题,顺手记录下来,无论部署新环境或者升级新版本,日后方便自己回顾或者他人参考。
1044 0
如何使用官方最新源代码部署yapi?
|
数据安全/隐私保护
Gitlab部署文档
我们使用Omnibus 包安装 GitLab 因为它安装起来更快、更容易升级版本,而且包含了其他安装方式所没有的可靠性功能
892 0