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%。

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

文件系统占用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

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

但好像我又想的简单了。重启服务后发现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)

检查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日志,确定无效用户信息,192.168.1.202@vsphere.Local凭证不匹配:

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

接下来,我们需要对192.168.1.202@vsphere.Local用户进行密码重置和更新。

运行/usr/lib/vmware-vmdir/bin/vdcadmintool重置192.168.1.202@vsphere.Local密码:

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 : 192.168.1.202@vsphere.local

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的管理和正常使用。

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

  1. IT职场人生系列之十五:语言与技术II

    本文是IT职场人生系列的第十五篇 本篇延续了技术与语言I的内容(之十二),搜集了之后大家的一些评论和我的反馈,整理在这里. "新人学老技术有风险"的实质 其实不是说老技术没有学习的 ...

  2. IT职场人生系列之十二:语言与技术I

    本文是IT职场人生系列的第十二篇. 最近移动互联网很流行,很多人都在学习IOS.Android编程.这也引起一个入行.改行的潮流. 那么,作为新手.老手,应该怎样选择自己学习的语言和技术呢? 本人从早 ...

  3. IT职场人生系列之十三:技术?管理?业务?

    本文是IT职场人生系列的第十三篇. 很多技术人员工作几年后,都要面临未来的出路问题. 所有出路中,无外乎技术.管理.业务三个层面. 技术 技术本身也是一条出路,但是在之十二中曾经提到,有深技术和浅技术 ...

  4. IT职场人生系列之十二 语言与技术I

    本文是IT职场人生系列的第十二篇. 最近移动互联网很流行,很多人都在学习IOS.Android编程.这也引起一个入行.改行的潮流. 那么,作为新手.老手,应该怎样选择自己学习的语言和技术呢? 本人从早 ...

  5. IT职场人生系列之六:员工的公司观

    本文是IT职场人生系列的第六篇. 90%的人一生都不会创业,而是给别人打工.而打工的人的自然本能是:"这也不是我的公司,犯不上投入太多."结果推论就是:90%的人将以不投入的方式度 ...

  6. IT职场人生系列之二十一:如何学习新语言(一)

    这是IT职场人生系列的第二十一篇.(序言,专栏目录) 最近<火星人敏捷开发管理工具>接近发版了,回忆起一年半以前刚利用业余时间开工的时候,编程已经中断了7年(03年最后一次用VC++6.0 ...

  7. IT职场人生系列之十四:经验积累

    本文是IT职场人生系列的第十四篇. 任何时候都会发现IT业是个变化迅速的行业,几年前还很时髦的技术,现在已经过时了:几年前还很热门的行业,现在也过时了.这种变化之莫测,别说我们普通人,连IT巨头们都经 ...

  8. 「技术人生」:技术同学应该如何理解业务?

    简介:本文以大量理论论述解析业务,并提供多种基于不同场景的实操方法,帮助技术同学以科学.合理的方式开展日常工作.指导团队开展业务建设,保障顶层设计的落地执行. 一. 背景 目前已经发布<技术一号 ...

  9. 技术人生——解决问题的规律

    简介:本文将介绍问题研究背景及解决问题的一般规律和特殊规律及二者之间的辩证关系. 作者:贺科学 往期技术一号位方法论系列文章: 「技术人生」专题第1篇:什么是技术一号位? 「技术人生」第2篇:学会分析 ...

最新文章

  1. python csv读取-Python对于CSV文件的读取与写入
  2. DC_command的部分理解(持续更新)
  3. PyTorch 入门实战
  4. [Jarvis OJ - PWN]——[XMAN]level2(x64)
  5. pycharm professional2019.1破解过程
  6. 2021 年最值得学习的 5 大机器学习编程语言!
  7. 2018年1月3日-江苏地税系统无法正常登陆的解决方案
  8. Android基础 (八)手机多媒体
  9. Json转换为txt
  10. 如何用Java写QQ机器人 v2.0
  11. mysql sock_mysql.sock 文件解析
  12. 为什么你要考虑使用Prisma
  13. 图像基础—— 特征提取之颜色特征提取
  14. 一个程序员如何给LPL发弹幕加油
  15. c++求两条直线的交点
  16. 如何通过微信与手机连接到服务器,本地服务器和微信服务器的具体通信过程是怎样的...
  17. 服务器2012怎么换桌面背景,Windows Server 2012 R2桌面化详细设置图解
  18. creo5.0安装教程
  19. 魔方渗透系统安装教程
  20. Java 之父:找Bug最浪费时间,现在不是开源的黄金时代

热门文章

  1. java输入a控制台打印1_Java—— 流(Stream)、文件(File)和IO
  2. 经纬度绘图_Python气象绘图教程(二十二)—mpl_toolkits.axes_grid1
  3. php fstat,PHP fstat( )用法及代码示例
  4. python lxml用法详解_Python-- lxml用法
  5. python抽取数据库元数据_0797-使用HDP或CDP的Atlas采集CDH6的元数据和血缘
  6. 字段缺失_数据科学| 手把手教你用 pandas 索引、汇总、处理缺失数据
  7. cytoscape插件下载_Cytoscape
  8. thread类_Python线程:thread对象
  9. c语言程序设计第一课作业,C语言程序设计第一课答案.doc
  10. php如何写文件缓存,PHP代码篇(八)--php实现文件缓存的读写