问题描述:

服务器重启之后,启动gitlab发现redis总是超时

启动命令:

gitlab-ctl start

失败提示:

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

gitlab使用本地redis gitlab redis配置_gitlab使用本地redis


查看production.log日志:

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

gitlab使用本地redis gitlab redis配置_git_02


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

从错误信息中只能看到redis连接失败,并不能得到更多的有效定位错误的信息,继续查看gitlab的运行日志来寻找信息,检查gitlab相关日志,实时查看日志输出命令:

gitlab-ctl tail

错误信息:

gitlab使用本地redis gitlab redis配置_git_03

此时定位到redis无法连接的问题:

2020-12-10_02:20:06.94705 chpst: fatal: unable to run: /opt/gitlab/embedded/bin/redis-server: file does not exist
2020-12-10_02:20:07.95314 chpst: fatal: unable to run: /opt/gitlab/embedded/bin/redis-server: file does not exist

进入指定目录查看:

cd /opt/gitlab/embedded/bin/redis-server:

gitlab使用本地redis gitlab redis配置_gitlab使用本地redis_04


由于找不到redis-server导致软链接失效,文件报红闪烁,向/opt/gitlab/embedded/bin/redis-server再copy一个redis-server后:

gitlab使用本地redis gitlab redis配置_git_05


重新启动gitlab,启动成功:

gitlab-ctl restart

gitlab使用本地redis gitlab redis配置_日志文件_06


注意:若报502错误可能是由于第一次启动redis未成功导致的部分端口占用,停掉gitlab,重启服务器即可。

如果服务器的redis配置进行了修改,比如加了密码什么的,可能会需要修改/var/opt/gitlab/redis/redis.conf,之后执行

gitlab-ctl reconfigure
gitlab-ctl restart

补充:gitlab的日志系统

1、production.log:该日志位于/home/gitlab/logs/gitlab-rails中,其作用是记录gitlab的每次请求的具体信息,包括请求的URL、ip地址、请求类型、以及此次请求所涉及的具体代码、SQL请求以及SQL请求消耗的时间。比如:

2、application.log:此日志文件位于/home/gitlab/logs/gitlab-rails中,其作用是记录创建用户、创建项目、移动项目等日志。

3、githost.log:此日志文件位于/home/gitlab/logs/gitlab-rails中,此日志的作用是记录对gitlab服务器的错误请求日志。

4、sidekiq.log:此日志文件位于/home/gitlab/logs/gitlab-rails中,gitlab中可能存在一些任务需要运行很长时间,因此会选择将这些任务在后台执行,sidekiq.log文件就是用来记录这一类任务的处理信息,此日志文件是一个软连接文件。

5、gitlab-shell.log:此日志文件位于/home/gitlab/logs/gitlab-shell中,该日志文件的作用是记录执行gitlab命令以及为项目添加ssh权限的日志文件

6、unicorn_stderr.log:此日志文件位于/home/gitlab/logs/unicorn,该日志文件的作用是记录gitlab的web服务器的相关记录。

7、repochec.log:此日志文件位于/home/gitlab/logs/prometheus