技术人生系列——vCenter重启大法不香了?

https://mp.weixin.qq.com/s/HFZKp0ligd_3PbayTBiZhw

技术人生系列中虚拟化技术一直写得比较少,有小伙伴后台留言希望我们分享一些这个方面的技术案例,近期我们的虚拟化工程师就碰到了一个比较典型的案例,话不多说,马上进入我们本期的技术人生。

 

 

 

 

 

/ / / /

 

 

近期某天下午,我正在公司整理文档,突然接到客户工程师的电话,告知VMware vSphere虚拟化平台web客户端无法访问,client端可以正常登录。听着客户的描述,我一面安抚客户不要着急,一面思考,根据客户的描述应该是vCenter web服务异常导致的,以前也碰到过这个问题,重启服务就可以轻松搞定,所以告知客户我会通过远程来进行问题处理。

 

 

/ /     这个故障不简单     / / 

 

 

16:10 ,客户发来远程,登录客户vCenter所在ESXI主机,通过控制台进入系统命令行进行服务检查,结果vCenter无法开启shell服务,无法对vCenter进行命令操作,与客户沟通得到确认后,对vCenter进行重启。但系统重启后依旧无法登录,看来不是单纯的服务状态异常了,应该还有其他原因。

 

经过多次尝试终于登陆vCenter命令行,赶紧查看服务状态,发现eam、invsvc和vpx服务没有启动,文件系统根目录使用率达到了100%。

技术人生系列——vCenter重启大法不香了?_第1张图片

localhost:~ # df -Th

Filesystem                           Type   Size  Used Avail Use% Mounted on

/dev/sda3                            ext3    11G  11G  0G  100% /

udev                                 tmpfs  4.0G  164K  4.0G   1% /dev

tmpfs                                tmpfs  4.0G  160K  4.0G   1% /dev/shm

/dev/sda1                            ext3   128M   38M   84M  31% /boot

/dev/mapper/core_vg-core             ext3    25G  173M   24G   1% /storage/core

/dev/mapper/log_vg-log               ext3   9.9G  353M  9.0G   4% /storage/log

/dev/mapper/db_vg-db                 ext3   9.9G  205M  9.2G   3% /storage/db

/dev/mapper/dblog_vg-dblog           ext3   5.0G  171M  4.5G   4% /storage/dblog

/dev/mapper/seat_vg-seat             ext3   9.9G  165M  9.2G   2% /storage/seat

/dev/mapper/netdump_vg-netdump       ext3  1001M   18M  932M   2% /storage/netdump

/dev/mapper/autodeploy_vg-autodeploy ext3   9.9G  151M  9.2G   2% /storage/autodeploy

/dev/mapper/invsvc_vg-invsvc         ext3   5.0G  165M  4.6G   4% /storage/invsvc

技术人生系列——vCenter重启大法不香了?_第2张图片

文件系统占用100%导致系统服务无法启动?

 

根据以往case经验,根目录100%一般是由于系统root用户密码过期导致audit 日志中记录大量无效认证日志,于是查看audit.log 大小,果然发现了大量日志占用根目录。

ls -lh
total 4.6G
drwx------ 2 root root 4.0K May 5 2016 audispd
-rw------- 1 root root 4.5G Apr 3 16:55 audit.log
-rw------- 1 root root 445K Apr 8 2020 audit.log-20160408.bz2
-rw------- 1 root root 447K Apr 9 2020 audit.log-20160409.bz2
-rw------- 1 root root 444K Apr 10 2020 audit.log-20160410.bz2
-rw------- 1 root root 447K Apr 11 2020 audit.log-20160411.bz2

技术人生系列——vCenter重启大法不香了?_第3张图片

16:40,问题基本弄清楚了,由于为根目录使用100%导致系统服务异常。解决问题的思路是,清理audit.log日志释放根目录空间,root密码更改并调整密码过期时间为永不过期,重启服务应该就可以大功告成。

localhost:~ # chage -l root

Minimum:   0

Maximum:   365

Warning:   7

Inactive:  -1

Last Change:      May 02, 2018

Password Expires: May 02, 2019

Password Inactive:   Never

Account Expires:  Never

技术人生系列——vCenter重启大法不香了?_第4张图片

但好像我又想的简单了。重启服务后发现eam、invsvc和vpx服务仍未启动,vpx服务依赖invsvc服务启动;先解决eam和invsvc服务启动的问题吧。

 

检查相关日志,通过查看var/log/vmware/eam/wrapper.log,发现在系统启动中存在报错信息:Could not resolve placeholder 'eam.hostd_restart_timeout'。

INFO | jvm 1| 2015/02/24 07:55:45 | WrapperSimpleApp Error: Encountered an error running main:
INFO | jvm 1| 2015/02/24 07:55:45 | WrapperSimpleApp Error: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'esxAgentMgr' defined in class path resource [eam-server-beans.xml]: Could not resolve placeholder 'eam.hostd_restart_timeout'
INFO | jvm 1| 2015/02/24 07:55:45 | WrapperSimpleApp Error: at org.springframework.beans.factory.config.PropertyPlaceholderConfigurer.processProperties (PropertyPlaceholderConfigurer.java:268)
INFO | jvm 1| 2015/02/24 07:55:45 | WrapperSimpleApp Error: at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory (PropertyResourceConfigurer.java:75)

技术人生系列——vCenter重启大法不香了?_第5张图片

检查eam配置文件 /etc/vmware-eam/eam.properties,配置文件为空,配置文件丢失了,需要恢复:

 

(1)确认系统ID :cat /etc/vmware/install-defaults/sca.hostid。

The output should be a string like : 0a12dfe2-b3b7-4eb6-9737-1ec5a8e770ec

 

(2)确认系统名称hostname -f。

编辑 /etc/vmware-eam/eam.properties配置文件,修改如下标红位置,主要修改主机名,hostdid和 vCenter IP。

vc.proxy.host=localhost
vc.proxy.port=80
eam.host=
eam.int.http.port=15005
eam.ext.port=443
eam.ext.scheme=https
eam.ext.port.deprecated=80
eam.ext.scheme.deprecated=http
eam.support_linked_clone=true
eam.clear_db_on_startup=false
eam.debug_ref_count=false
eam.recent_event_size=20
vum.integration=true
eam.scan_for_unknown_agent_vms=1440
eam.resourcebundle.filename=eam-resourcebundle.jar
tcserver.tmp.dir=/var/tmp/vmware/eam/tomcat
eam.web.root=/usr/lib/vmware-eam/web
eam.keystore.type=VKS
eam.key.alias=vpxd-extension
eam.keystore.storename=vpxd-extension

cm.url=http://localhost:18090/cm/sdk/?hostid=0a12dfe2-b3b7-4eb6-9737-1ec5a8e770ec
cm.wait.attempts=360
cm.wait.intervalSeconds=5
sso.wait.attempts=360
sso.wait.intervalSeconds=5
vc.truststore.type=VKS
vc.truststore.storename=TRUSTED_ROOTS
vc.tunnelSdkUri.template=https://##{VC_HOST_NAME}##:8089/sdk/vimService #<====== Keep this unchanged
vc.tunnelSdkUri=https://<192.168.1.202>:8089/sdk/vimService #<====== Change this to your vCenter FQDN/IP
drs.demandCapacityRatio=100

(3)修改配置文件权限为0644:chmod 0644 eam.properties。

 

(4)重启eam服务:service-control --start vmware-eam,eam服务启动成功。

 

17:30,invsvc服务进行恢复,查看invsvc服务日志,在inv-svc.log中发现无效的凭证LDAP的报错:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'aclLotusInitializer' defined in class path resource [server/config/authorization-config.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class
CredentialsLdapException: Invalid credentials LDAP error [code: 49] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:287)

报错提示显示凭证无效,进一步查看/var/log/vmware/vmdird/vmdird-syslog.log日志,确定无效用户信息,[email protected]凭证不匹配:

2020-04-04T17:47:48.024511+00:00 err vmdird t@140107551946496: SASLSessionStep: sasl error (-13)(SASL(-13): authentication failure: client evidence does not match what we calculated.Probably a password error)
2020-0-04T17:47:48.024533+00:00 err vmdird t@140107551946496: VmDirSendLdapResult: Request (96), Error (49), Message ((49)(SASL step failed.)), (0) socket ([17] 10.105.217.85:389<-10.105.212.102:54753)
2020-0-04T17:47:48.024538+00:00 err vmdird t@140107551946496: Bind Request Failed ([17] 10.105.217.85:389<-10.105.212.102:54753) error 49: Protocol version: 3, Bind DN: "cn=192.168.1.202,ou=Computers,dc=vsphere,dc=local", Method: 163

接下来,我们需要对[email protected]用户进行密码重置和更新。

 

运行/usr/lib/vmware-vmdir/bin/vdcadmintool重置[email protected]密码:

localhost:~ # /usr/lib/vmware-vmdir/bin/vdcadmintool

==================

Please select:

0. exit

1. Test LDAP connectivity

2. Force start replication cycle

3. Reset account password

4. Set log level and mask

5. Set vmdir state

==================

3Please enter account UPN : [email protected]

New password is -

X+TcHrqn-q3n8TKFOIt

密码重新生成后更新密码:

/opt/likewise/bin/lwregshell

\> cd HKEY_THIS_MACHINE\services\vmdir\

HKEY_THIS_MACHINE\services\vmdir> set_value dcAccountPassword "X+TcHrqn-q3n8TKFOIt"

quit

密码重置成功后,使用service-control --start --all 重启所有服务,服务全部启动成功。

 

vCenter web客户端和client都成功登录,检查告警和集群整体状态正常。到此故障全部解决。

 

 

/ /     一点小总结     / / 

 

 

故障终于解决了,虽然重启大法不香了,但收获颇丰。我想应该赶紧总结下来,给其他小伙伴参考。

 

1、vCenter 根目录为什么100%?

 

root用户密码过期,导致audit.log中记录了大量的凭证失效记录,cron 作业未能正常进行日志轮转,导致根目录被audit.log日志占满。

 

2、eam服务为什么无法启动?

 

系统启动eam服务时会自动更新配置文件,但系统空间不足导致更新失败,eam配置文件被删除,导致服务无法启动。

 

3、invsvc服务为什么无法启动?

 

在服务启动时存在用户密码匹配失败,可能因为根目录100%后,密码文件损坏。

 

4、如何预防此类事故的发生?

 

 

追根溯源,引发这类问题的原因多是系统root密码长期过期导致,root用户密码过期导致文件系统使用率100%、配置文件丢失或损坏,最终vCenter无法对外提供服务。

 

所以,建议对vcsa的root用户密码过期策略进行修改,如果客户没有对密码定期修改的要求,建议将其更改为永不过期;如客户有对密码定期修改要求,一定要设置密码过期时间大于要求更改密码的周期。

 

还有,就是定期检查vCenter 系统磁盘空间使用率,防止文件系统100%导致系统服务异常,影响vCenter的管理和正常使用。

你可能感兴趣的:(VMware,配置笔记,系统维护(Windows,&,Linux))