今天突然发现我的虚拟化管理平台 vSphere Web Client 无法打开了。提示 500 服务器错误,无法登录了。

20240723225043

随后我登录了 vCenter Server 的设备管理页面(Port 5480),去看是否有服务存在异常,发现页面并没有现实服务异常。抱着重启可以解决 99% 的问题,我就先重启了 vCenter Server 的 VM。

等到重启结束之后,vSphere Web Client 彻底打不开了。提示 No Healthy Upstream。

20240723225506

这种情况,一般是 vSphere 某些服务挂了,于是我又继续检查了服务。发现 vAPI 服务出现了告警,但是提示运行正常的。应该不是这个服务的问题。

20240723225358

对服务列表进行排序,发现很多启动类型为自动的服务当前运行状态均为停止。这就有些异常了。

为了更好的抓取日志,我们登录了 vCenter Server 的 SSH 终端。

切换到 shell 中执行 service-control --start --all 重启服务,果然有服务无法启动报错了。

20240723230235

这个服务无法启动,可能是因为证书过期导致的。

1
for i in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list); do echo STORE $i; sudo /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $i --text | egrep "Alias|Not After"; done

查看证书,发现证书在前段时间过期了。

20240723230707

OK,那我们尝试续签证书一下。执行下面这条命令开始重新签发证书。具体所需信息,根据 Shell 的提示进行即可。

1
/usr/lib/vmware-vmca/bin/certificate-manager

20240723230810

重新签发证书之后,会自动重启相关服务,业务恢复正常。

20240723231058

目前看,默认机器证书的有效期是 2 年,2 年后需要重新签发新的证书。

参考