问题描述:
服务器重启之后,启动gitlab发现redis总是超时
启动命令:
gitlab-ctl start
失败提示:
down:redis:0s,normally up,want up;run:log:(pid 1022)1302s
查看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的运行日志来寻找信息,检查gitlab相关日志,实时查看日志输出命令:
gitlab-ctl tail
错误信息:
此时定位到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:
由于找不到redis-server导致软链接失效,文件报红闪烁,向/opt/gitlab/embedded/bin/redis-server再copy一个redis-server后:
重新启动gitlab,启动成功:
gitlab-ctl restart
注意:若报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