解决一次gitlab因异常关机导致启动失败

1. 服务器异常关机

众所周知,服务器会因为内存不足或者cpu使用率过高而出现异常关机现象,笔者昨天经历了此车祸现场。造成的暂难就是gitlab代码托管服务起不来。想告诉各位读者的是,当你的gitlab服务遇到这种情况的时候,如何去定位问题,解决问题。

2. gitlab服务

容器启动成功,但是处于unhealthy状态,登录界面500。

需要说明的一点是我的gitlab服务部署在linux上.

2.1 进入gitlab容器内部

docker exec -it bd0 bash

2.2 检查gitlab各服务状态

gitlab-ctl status

当时出现的是redis服务down了,当时没截图,网上找了个图,类似这样

失败提示:

down:redis:0s,normally up,want up;run:log:(pid 1022)1302s

也就是gitlab之所以前端显示500起不来,是因为redis服务没起来,所以我们只需要重点关注redis服务没起来的相关日志。

2.3 查看production.log日志

tail -f /var/log/gitlab/gitlab-rails/production.log

报错信息:Error connecting to Redis on /var/opt/gitlab/redis/redis.socket (Errno::ECONNREFUSED)):

从错误信息中只能看到redis连接失败,并不能得到更多的有效定位错误的信息,继续查看gitlab的运行日志来寻找信息,

2.4 检查gitlab相关日志

实时查看日志输出命令

gitlab-ctl tail

此处也可以在docker外面运行

docker logs gitlab

提示如下错误:

初步分析是应用在运行状态下,redis被强制停止造成了数据文件不完整,重启redis就会失败。

因此,我找到了redis的数据文件,删掉了数据文件dump.rdb,然后重启gitlab就好了

我的redis数据路由设置(可在docker-compose.yml文件中设置)在docker 外面

/gitlab/data/redis#

至此,gitlab启动成功

起初以为是文件夹权限问题,docker内部无法获取root权限,把docker外面redis的 overcommit_memory置1,然后重启gitlab的docker,overcommit_memory同步为1。但是gitlab还是启动失败

3 小结

可能gitlab报500错误的原因各种各样,但是查服务状态,查对应down服务的日志,想对应策略的方法一样,希望对你有所启发。


版权声明:本文为博主翻译文章+自己理解,部分代码自己写,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://www.cnblogs.com/JerryMouseLi/p/15542368.html

解决一次gitlab因异常关机导致启动失败的更多相关文章

  1. VMware workstation 非正常关机导致开机失败,解决方法

    问题:VMware workstation 非正常关机导致开机失败!如下图:

  2. 同一个tomcat部署多个项目导致启动失败

    内容描述在同一个tomcat部署多个打包成war包的项目导致启动失败,报错如下: 报错信息Error starting ApplicationContext. To display the condi ...

  3. mysql因为服务器异常关机倒是启动不了 找不到mysql.sock

    今天mysql服务器突然异常关机,查看云平台发现该vm处于为开机状态切状态是无法启动,经过协调, 服务器启动了.但是进行service mysql start 启动时.提示错误: Starting M ...

  4. 解决GitLab的Forbidden和Nginx启动失败

    通过宝塔安装的GitLab突然出现Forbidden,原因居然是IP并发过大,IP被禁 解决方法: 登录服务器,编辑文件 /etc/gitlab/gitlab.rb  ,将下面的截图内容放开注释(默认 ...

  5. MyEclipse异常关闭导致启动不了tomcat的解决方法

     由于MyEclipse的异常关闭从而导致Tomcat并没有关闭,所以再次启动Tomcat当然是无法启动的啦,解决方法:在任务管理器中关闭一个叫javaw.exe的进程,如果你这时已经启动了MyEcl ...

  6. 解决spring boot JavaMailSender部分收件人错误导致发送失败的问题

    使用spring boot通常使用spring-boot-starter-mail进行邮件的发送.当进行邮件群发的话,如果一个收件人的地址错误,会导致所有邮件都发送失败.因此我们需要在邮件发送失败的时 ...

  7. 解决IntelliJ IDEA 13更新FindBugs 0.9.993时JRE版本过低导致启动失败问题

    今晚更新FindBugs 0.9.992(FindBugs 2)至FindBugs 0.9.993(FindBugs 3)后,按要求重启IntelliJ IDEA 13.本想看看更新后多了哪些功能,结 ...

  8. MongoDB升级导致启动失败

    起因 最近项目使用MongoDB,但是作为一个技术菜鸟,NoSQL数据库我还真不会用,于是我就在自己的阿里云服务器上安装了一个MongoDB4.0.9. 现象 但是当我使用yum -y update升 ...

  9. 解决Tomcat因Redis加载慢而启动失败的问题

    StartTomcat.py import subprocess as t import time, os, requests, sys WEB_IP = '127.0.0.1:8080' # WEB ...

随机推荐

  1. k8s-PodApi对象

    init容器 pod的生命周期钩子 资源限制 podApi对象概览 apiVersion + kind  一个是版本 一个是资源组  共同确定当前yaml由谁来管理 metadata元数据 用来唯一标 ...

  2. P3426-[POI2005]SZA-Template【KMP】

    正题 题目链接:https://www.luogu.com.cn/problem/P3426 题目大意 给出一个长度为\(n\)的字符串\(s\),求一个长度最小的字符串\(t\)使得\(s\)所有\ ...

  3. Loj#143-[模板]质数判定【Miller-Rabin】

    正题 题目链接:https://loj.ac/p/143 题目大意 给出一个数\(p\),让你判定是否为质数. 解题思路 \(Miller-Rabin\)是一种基于费马小定理和二次探测定理的具有较高正 ...

  4. Unity——对象池管理

    Unity对象池管理 一.Demo展示 二.逻辑 在游戏中会出现大量重复的物体需要频繁的创建和销毁:比如子弹,敌人,成就列表的格子等: 频繁的创建删除物体会造成很大的开销,像这种大量创建重复且非持续性 ...

  5. 关于dp那些事

    拿到一道题,先写出状态转移方程,再优化时间复杂度 状态优化: 对于状态可累加 \(e.g.dp[i+j]=dp[i]+dp[j]+i+j\) 的,用倍增优化 决策优化: \(e.g.dp[i][j]= ...

  6. 编程模仿MySql客服端

    写在前面 通过自己编写的Java代码程序,去模仿实现MySql客服端的简单功能,最终以控制台操作,很像在Dos窗口通过命令操作MySql数据库. 关键问题 在编写过程中遇到的一些小问题和一些值得留心注 ...

  7. Jupyter Notebook配置多个kernel

    Jupyter Notebook配置多个kernel 前言: 在anaconda下配置了多个环境,而Jupiter Notebook只是安装在base环境下,为了能在Jupiter Notebook中 ...

  8. 移动端 h5 uniapp 读,写,删本地文件或sd文件

    移动端 h5 uniapp 读,写,删本地文件或sd文件 应用场景: 当我们需要做离线应用或者是加载本地文件时使用到此方法.(本篇文章给大家分享访问app私有文件目录,系统公共目录,sd外置存储的文件 ...

  9. 5.31日 Scrum Metting

    日期:2021年5月31日 会议主要内容概述:讨论草稿箱前后端接口,讨论账单页面设计. 一.进度情况 组员 负责 两日内已完成的工作 后两日计划完成的工作 工作中遇到的困难 徐宇龙 后端 文件导入功能 ...

  10. 第2次 Beta Scrum Meeting

    本次会议为Beta阶段第2次Scrum Meeting会议 会议概要 会议时间:2021年5月31日 会议地点:「腾讯会议」线上进行 会议时长:0.5小时 会议内容简介:对完成工作进行阶段性汇报:对下 ...