公司虚拟化平台VMware vCenter Server无法连接故障排查解决

1.环境:

系统:Windows 2008R2

vCenter版本:VMware vCenter Server 5.1.799731

数据库:Oracle 11.2.0

2.故障描述:

用VMware vSphere Client客户端无法登录,提示“出现未知连接错误。(由于连接故障,请求失败。无法连接到远程服务器)”

排错过程:

1.mstsc远程桌面到服务器。

打开服务器管理器--服务,找到vCenter的服务VMware VirtualCenter Server,发现服务没有启动。

2.确认oracle数据库的服务OracleServiceBNVCDB状态,为已启动状态。

3.手动尝试启动vCenter服务,启动失败,报错

4.此时,怀疑是不是Windows系统本身问题,于是,尝试重启系统。看来这招大招也不行,vCenter服务依然无法启动。根据报错提示,查看系统事件日志,诊断--Windows日志--系统。果然发现有错误信息:“VMware VirtualCenter Server 服务因 系统找不到指定的文件。 服务特定错误而停止。(the VMware VirtualCenter Server service terminated with service-specific error The system cannot find the file specified..)”

根据错误提示,到vmware 官网查KB库http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003926,根据KB的解决方案去排查,问题依旧,看来这个KB不适用当前的问题。

5.继续查看Windows的系统日志,诊断--Windows日志--应用程序。看到一条错误信息:“无法找到来自源 VMware VirtualCenter Server 的事件 ID 1000 的描述。本地计算机上未安装引发此事件的组件,或者安装已损坏。可以安装或修复本地计算机上的组件。如果该事件产生于另一台计算机,则必须在该事件中保存显示信息。 以下是包含在事件中的信息:  Failed to intialize VMware VirtualCenter. Shutting down...

消息资源存在,但在字符串/消息表中找不到该消息”

根据错误的信息继续上官网查KB库,根据查到的几个KB库,问题依然无法解决。

6.没办法,只能看vCenter的日志了。Note: In Windows 2008, the vpxd.log file is located at C:\ProgramData\VMware\VMware VirtualCenter\Logs.

看到日志最后有个错误输出:

2014-10-28T15:09:31.000+08:00 [04992 error ‘vpxdvpxdMain‘] [Vpxd::ServerApp::Init] Init failed: Unexpected exception

--> Backtrace:

--> backtrace[00] rip 000000018018977a

--> backtrace[01] rip 0000000180100c98

--> backtrace[02] rip 0000000180101fae

--> backtrace[03] rip 000000018008aeab

--> backtrace[04] rip 0000000000514971

--> backtrace[05] rip 00000000004b1298

--> backtrace[06] rip 00000000004b16c9

--> backtrace[07] rip 0000000000420fae

--> backtrace[08] rip 0000000140ddbfb8

--> backtrace[09] rip 000000013fcd0078

--> backtrace[10] rip 000000013fcd016a

--> backtrace[11] rip 000000013fcd0279

--> backtrace[12] rip 000000013fcd0609

--> backtrace[13] rip 0000000140012903

--> backtrace[14] rip 00000001407be4b9

--> backtrace[15] rip 00000001407b835c

--> backtrace[16] rip 00000001409d8a3b

--> backtrace[17] rip 000007feff26a82d

--> backtrace[18] rip 0000000077a4f56d

--> backtrace[19] rip 0000000077b83281

-->

2014-10-28T15:09:31.000+08:00 [04992 warning ‘VpxProfiler‘] ServerApp::Init [TotalTime] took 11122 ms

2014-10-28T15:09:31.000+08:00 [04992 error ‘Default‘] Failed to intialize VMware VirtualCenter. Shutting down...

2014-10-28T15:09:31.000+08:00 [04992 info ‘vpxdvpxdSupportManager‘] Wrote uptime information

2014-10-28T15:09:31.889+08:00 [03356 warning ‘VpxProfiler‘ opID=SWI-ee9b4a9d] VpxUtil_InvokeWithOpId [TotalTime] took 12012 ms

2014-10-28T15:09:43.901+08:00 [03356 warning ‘VpxProfiler‘ opID=SWI-b94098aa] VpxUtil_InvokeWithOpId [TotalTime] took 12012 ms

2014-10-28T15:09:55.913+08:00 [03356 warning ‘VpxProfiler‘ opID=SWI-898eea54] VpxUtil_InvokeWithOpId [TotalTime] took 12012 ms

2014-10-28T15:10:07.925+08:00 [03356 warning ‘VpxProfiler‘ opID=SWI-aaa55fdf] VpxUtil_InvokeWithOpId [TotalTime] took 12012 ms

2014-10-28T15:10:19.937+08:00 [03356 warning ‘VpxProfiler‘ opID=SWI-46814322] VpxUtil_InvokeWithOpId [TotalTime] took 12012 ms

2014-10-28T15:10:20.936+08:00 [04992 info ‘Default‘] Forcing shutdown of VMware VirtualCenter now

其中有几个关键字:“Init failed: Unexpected exception”,从字面看不出具体是什么原因,只能还是借助万能的google。根据关键字搜索了一下,果然有相关的文章,但很不幸,这些文章都无法解决这个问题。

7.时间一分一秒的过去,依然没什么头绪,只能不断的看网上的文章,看了好几篇的文章,虽然情况描述的不一样,但是很多都反馈vCenter服务无法启动的问题,大多数都是数据库方面问题。于是,心思重点放在oralce数据库。

8.手动重启oracle数据库服务,确认oracle数据库服务正常,然后再启动vcenter服务,还是失败。

9.继续搜索,找到一篇文章:https://communities.vmware.com/message/2151843,描述的问题很相近,于是对着文章去排查

1)在浏览器输入https://192.168.1.244:7444/ims/CommandServer,提示404错误。为了确认是不是都是提示404的,找了公司另一个正常的vCenter服务器验证,正常的提示应该是“该网站的安全证书不受信任”。

2)根据之前的经验,网站提示404,一般是找不到页面或者数据库连接错误导致。难道真的是数据库问题?继续查.......

3)netstat -na|findstr 7444,确认了端口正常。

4)根据文章的提示,SSO SERVER数据库有问题。查看日志:D:\Program Files\VMware\Infrastructure\SSOServer\logs,目录下的lookupServer日志有报错:

Caused by: java.sql.SQLException: ORA-28001: the password has expired

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:388)

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:381)

at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:564)

at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:431)

at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)

at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)

at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366)

at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752)

at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:359)

at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)

at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)

at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)

at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)

at java.sql.DriverManager.getConnection(DriverManager.java:582)

at java.sql.DriverManager.getConnection(DriverManager.java:154)

at org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:78)

at com.vmware.vim.lookup.impl.DbStorage$ConnectionFactoryWithSetup.createConnection(DbStorage.java:811)

at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)

at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1148)

at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)

at com.vmware.vim.lookup.impl.DbStorage$SqlExecutor.execute(DbStorage.java:698)

... 40 more

报错提示很明显“ORA-28001: the password has expired”,连接数据库的用户的密码过期了。是不是这个问题引起的呢?如果把密码过期问题解决了,是不是整个问题就解决了呢?不放过任何一个机会。

10.根据上面的错误提示google,找到一篇很不错的文章,顺便科普了我的oracle数据库知识。http://hi.baidu.com/5unge/item/cade17d405b4861b21e25035

Oracle提示错误消息ORA-28001: the password has expired,是由于Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录。 Oracle公司是为了数据库的安全性默认在11G中引入了这个默认功能,但是这个默认的功能很容易被DBA或者是开发人员给疏忽,一旦密码180天未修改过,就会出现这样的问题。

看到这里,当前环境的数据库不就是oracle 11g的么?看到一丝丝曙光了。根据文章的步骤:

1)SELECT * FROM dba_profiles WHERE profile=‘DEFAULT‘ AND resource_name=‘PASSWORD_LIFE_TIME‘

查询密码的有效期设置,LIMIT字段是密码有效天数。查到的结果是180天。

2)select username,account_status from dba_users;查看用户的状态信息,查到很多用户几乎都是EXPIERD状态。问题又来了(不是挖掘机),哪个用户才是vCenter所使用的呢?

3)找到配置文件:D:\Program Files\VMware\Infrastructure\SSOServer\webapps\lookupservice\WEB-INF\classes\config,很明显了,用户名就是RSA_USER

4)首先去除180天的密码生存周期的限制

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

再查看确认,已经是unlimited状态了。

5)这样修改后,用户密码还是过期的,也就是说,还要修改用户的密码才行,为避免修改其它密码引起不必要的错误,还是用回原来的密码去修改

alter user RSA_USER identified by "your_password";

6)最后确认用户

11.最后,重启oracle数据库,再启动vcenter服务,结果,竟然:还不行!泪奔~~~

12.没辙了,继续放大招:重启系统。

13.奇迹出现了,vcenter服务自启动正常了。

14.用客户端测试连接,成功了。看了看时间,时间已经过去了8个小时。

心得:

1.要善于查看日志,定位问题。

2.善于利用搜索,官方的KB库,如果有现成的解决方案最好,如果没有,可以参考思路。

3.不放过任何的错误提示。

时间: 2024-10-29 10:46:45

公司虚拟化平台VMware vCenter Server无法连接故障排查解决的相关文章

虚拟化——安装VMware vCenter server

(基于windows)安装VMware vCenter server 实验准备 客户端:本地客户端(虚拟机) 客户操作系统版本: Microsoft Windows Server 2003 (64-bit) 用户名:Administrator 密码:[email protected] 安装语言:中文 安装介质: cn_win_srv_2003_r2_enterprise_x64_with_sp2_vl_cd1_X13-47314.iso cn_win_srv_2003_r2_enterprise

Linux版VMware vCenter Server Appliance的安装

安装环境 母机:Windows Server 2012 R2 标准版 IE11浏览器 ESXI:VMware ESXi6.0 u2 vCenter:VMware vCenter Server 6.0 Update 2 Appliance 安装过程 关闭2012 R2系统自带IE11浏览器的增强安全配置以免影响安装程序无法正常弹出. 点击任务栏上的"服务器管理器"图标 点击弹出的服务器管理器-仪表板左边"本地服务器"标签 右侧的"IE增强的安全配置"

Vmware vCenter Server的学习见解

Vmware vCenterServer5.1及EXSI功能简介 Vmware vCenter Server介绍说明: 利用 VMware vCenterServer,您可以集中管理多个 VMware  ESXi 主机及其虚拟机.安装.配置和管理 vCenter Server 不当可能会导致管理效率降低,或者致使 VMware ESXi 主机和虚拟机停机. 一.Vmware vCenter Server的体系结构 Vmware vcenter的管理平台: vCenter Server 是充当 E

VMware vCenter Server Appliance Error: VPXD错误

最近发现有的时候在配置VCenter(OVF)的时候,有的时候会出现 Erro:VPXD must be stopped to perform this operation 这个错误,提示就是让我关掉这个VPXD服务. 这种错误以前偶尔出现,但是新版本中不知道为什么经常出现,后来发现如果想去掉这个错误就必须关掉这个服务,你的VCenter才能生效. 解决办法只有先关掉VCenter的所有服务. 然后进入的VCenter服务界面后才能关闭VPXD这个服务. 首先要登陆到Linux界面然后输入用户名

VMware vCenter Server安装

大家好,今天我来交大家安装VMware vCenter Server,在安装VMware vCenter Server以前,一定要构建DNS,确保能够对VMware vCenter Server进行解析.好了下面不多说了,我开始对VMware vCenter Server安装进行介绍 下载相关的程序,然后,点击运行安装,如图: 选择VMware vCenter Server安装的语言,如图: 打开VMware vCenter Server安装的欢迎向导页,在该页面点击"下一步",如图:

Vmware vCenter Server Appliance (VCSA6.0)安装

Vmware vCenter Server Appliance是基于SUSE Linux的vCenter应用程序,用来管理ESXi主机和虚拟机.以前版本是官方给的OVF模板直接导入,而现在给的是ISO文件安装,可以更多自定义. 以下为安装后的界面.

Windows Azure Pack(二)-添加VMware vCenter Server

登录进入SCVMM管理控制台,添加VCenter.右击"servers"-"Add VMware vCenter Server" 输入Vcenter 名称,端口,Vcenter的管理员帐号 等待添加的完成. 确认Vcenter服务器添加成功. 添加Exsi主机 输入运行帐号 选择群集下的Exsi主机. 选择存放的主机组 确认信息无误后,点击完成. 等待添加的完成. 确认主机添加成功.

测试vmware vcenter server appliance登陆web clinet出错failed to connect to vmware lookup service故障

解决:failed to connect to vmware lookup service故障( 5.5.0) 故障状态: 尝试登录vsphere web client时,系统提示如下错误信息: Failed to connect to vmware lookup service https://xxxx:7444/lookupservice/sdk-ssl certifate verification failed. 故障分析: 由于自己更改了vcenter virtual appliance

VMware vCenter Server 6.5.0 U1

VMware vCenter Server 6.5.0 U1gName: VMware-VCSA-all-6.5.0-8024368.iso Release Date: 2018-03-20 Build Number: 8024368 Name: VMware-vCenter-Server-Appliance-6.5.0.15000-8024368-updaterepo.zip Release Date: 2018-03-20 Build Number: 8024368 Name: VMware