Harbor 核心服务不可用---故障排除

故障现象:

Harbor 登录时显示:核心服务不可用.
在这里插入图片描述

2. 排查思路

  1. 可以通过浏览器打开登录页面,所以判断服务应该是起来了.
  2. 在输入密码后报错,所以判断可能是登录验证时的错误,需要排除密码错误.
  3. 尝试重启Harbor来解除故障,毕竟重启大法可以解决大多数的问题.
  4. 查看/var/log/harbor下的日志检查具体原因.

3. 查找故障原因

3.1 确定用户名密码

vi harbor.yml

在这里插入图片描述
这里我们确认了并不是密码错误造成的.

3.2 重启Harbor服务

docker-compose down
docker-compose up -d

在这里插入图片描述
故障依旧

3.3 查看Harbor日志

3.3.1 core日志

tail /var/log/harbor/core.log

在这里插入图片描述
这里我们发现有很多关于redis的报错.redis是由容器启动的,我们再检查一下redis的日志.

3.3.2 redis日志

tail /var/log/harbor/redis.log

在这里插入图片描述
太棒了,我们得到了关键信息:
Fatal error loading the DB: Invalid argument. Exiting.
那么事情就变得简单了.

4. 解决故障

4.1 故障原因分析

redis提供两种方式进行持久化.
1.是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化)
2.是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件)。
在redis服务重启的过程中,redis会自动加载dump.rdb文件以恢复上一次的状态,由于rdb文件版本高于redis服务器版本,导致rdb文件读取失败,服务无法启动,删除该文件就能解决这个故障。

4.2 故障排除

删除dump文件并重启Harbor

find / -name dump.rdb
rm -rf /data/harbor/redis/dump.rdb
docker-compose down
docker-compose up -d

在这里插入图片描述

5. 恢复正常

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_29974229/article/details/125257797