记一例Vmware虚拟化Vcenter连接不上解决过程。
前言
周五了,快下班了,突然想到虚拟化已经有段时间没登上去看过了,别出什么问题,就想登录Vcenter看一下,结果真的怕什么来什么。Vcenter直接登陆不上,用Client登陆的时候报错:
Vcenter的管理地址是通的,用Client登陆Vcenter所在的主机也是可以的,Vcenter虚拟机是linux版本的,状态看起来也正常。
下面开始查找原因并解决问题。
从同事那得到的解决方案:1.重启Vcenter。2.重新建一个Vcenter。3.重启Vcenter所在的主机。
重启Vcenter,我在求援前已经做过这个操作,重启Vcenter花了将近四十分钟,这时候我就觉得Vcenter的系统可能出了问题了。
重新建一个Vcenter,这个操作我没有试过,我也不想轻易尝试,因为之前有个用户Vcenter登录不上(现在想想好像和这次的症状有点像),我做过这个操作,比较麻烦,主要是对虚拟化还不够精通,所以不想轻易走这一步。
重启Vcenter所在的主机,这是一个没有解决办法的无奈之举,当时也想尝试一下,但因为客户虚拟化存储空间和内存不足,这台主机上的虚拟机因为涉及生产还要一台台协调时间关机,并且重启有风险。
在网上搜了一会关于Vcenter连接不上的问题,比较多的原因都指向日志文件过大将Vcenter的文件系统胀爆了。于是就顺着这个方向去处理。
文件系统胀死了,那肯定要把导致文件系统胀死的日志文件找出来删掉。
我这台Vcenter虚拟机是linux版本的,所以要想办法用shell连接系统,于是我走常规途径:用Xshell连接Vcenter管理地址,是可以连接的。但是没办法切换到shell状态,进不了操作系统。
在Command后输入shell.set --enabled True无法切换到shell,Vcenter中的shell设置也开启了,无法进入系统操作(原因未知,可能也和系统文件系统胀死有关,也有可能是Vcenter的非正常关机导致的),常规路线失败。
继续百度。
找到两篇英文技术博客,内容是通过系统启动前进入grub菜单修改root密码的操作过程,这让我想到了grub菜单里还有条进操作系统的路。
grub菜单下修改root密码
https://kb.vmware.com/s/article/2069041
顺势进入命令行,第一个就是要验证文件系统是否胀死。于是用df -h命令查看文件系统利用率,发现所有目录都是used 100%,原因找到了。然后开始找是什么日志文件导致了系统胀死的,按之前网上的解决方法,都是说Vcenter报错日志过大导致的,但我切到几个主要的日志文件目录下查看,并未发现过大的日志文件。这就很奇怪,继续找原因,茫茫大海中,终于找到了一点蛛丝马迹----root用户登录密码过期导致audit 日志中记录大量无效认证日志,于是找到audit日志所在目录/var/log/audit/audit.log,果然这就是罪魁祸首,于是我大胆的用rm命令将带.bz2的文件都删掉了。
然后df -h命令查看文件系统使用率正常了。
当然我在做这些操作的时候Vcenter虚拟机是做了快照备份的!
尝试重启Vcenter。重启完成。问题解决。
重启后用xshell直接连Vcenter发现用命令行是可以直接进Vcenter的操作系统的,所以文件系统胀死是导致之前Xshell不能进系统命令行的原因。