Vcenter 503 Service Unavailable 报错修复
事件信息
- 时间:2026-03-19 到 2026-03-20
- 设备:VMware vCenter Server Appliance 6.0.0.30300
- 架构:embedded PSC
- 当前主机名:vcsa.chinadafeng.com
- 当前短主机名:vcsa
- 当前 PNID:192.168.7.8
- 当前 SSO 域:vphere.local
初始故障现象
- Web 访问报错:
1 | 503 Service Unavailable (Failed to connect to endpoint ... /var/run/vmware/vpxd-webserver-pipe) |
- root 密码遗忘
- 控制台启动阶段卡在 Waiting for vpxd to initialize
- 后续发现:
- /、/storage/log、/storage/core 空间打满
- vpxd、invsvc、vdcs、workflow、vsphere-client 多个服务异常
- vmware-sts-idmd 报 LDAP error 49
- vmware-vdcs 报旧 pid 文件残留
最终确认的根因
- 日志盘和核心转储盘打满,导致服务无法正常启动。
- 主机名/解析在处理中被改乱,曾一度把 hostname 弄成裸 IP,系统只识别成 192。
- SSO/IDM 机器账户密码失配,导致 vmware-sts-idmd 无法绑定本地 LDAP:
1 | LDAP error 49 cn=192.168.7.8,ou=Domain Controllers,DC=vphere,DC=local |
- Content Library 残留旧文件:
1 | /var/log/vmware/vdcs/vmware-vdcs.pid |
导致 vmware-vdcs 启动失败。
处理经过
- 通过老版 VCSA 的 GRUB 单用户模式重置 root 密码。
- 清理满盘:
- 清理 /storage/core
- 清理 /storage/log
- 删除 .hprof、旧压缩日志、历史大日志
- 修复主机名和解析:
- hostname 恢复为 vcsa
- hostname -f 恢复为 vcsa.chinadafeng.com
- vmafdd 恢复正常
- 发现 vpxd 日志仍报:
1 | SSO Admin server: Invalid response code: 404 Not Found |
继续深挖 SSO。
\5. 在 /var/log/vmware/sso/vmware-sts-idmd.log 确认真实根因:
1 | LDAP error 49 cannot bind connection: [ldap://localhost:389, cn=192.168.7.8,ou=Domain Controllers,DC=vphere,DC=local] |
- 用 vdcadmintool 重置机器账户密码,再用 lwregshell 写回本机注册表中的 dcAccountPassword。
- vmware-sts-idmd 恢复,认证成功。
- 查看 /var/log/vmware/vdcs/wrapper.log,发现:
1 | pid file ... /var/log/vmware/vdcs/vmware-vdcs.pid already exists |
移走旧
vmware-vdcs.pid
后,依次启动:
- vmware-vdcs
- vmware-vpx-workflow
- vsphere-client
本次已恢复的关键服务
- vmafdd
- vmdird
- vmcad
- vmware-sts-idmd
- vmware-stsd
- vmware-vpostgres
- vmware-vpxd
- vmware-invsvc
- vmware-vdcs
- vmware-vpx-workflow
- vsphere-client
仍可后续关注的非核心服务
- vmware-mbcs
- vmware-netdumper
- vmware-perfcharts
- vmware-rbd-watchdog
- vmware-vsan-health
- vmware-vsm
- vmware-vws
这些不一定影响当前登录和 vCenter 核心管理功能,可单独补查。
下次排查 SOP
- 先做快照
如果涉及 SSO、证书、vmdir、机器账户密码,优先做关机快照。 - 先看空间
1 | df -h df -i |
重点看:
- /
- /storage/log
- /storage/core
- 查核心服务
1 | service-control --status --all |
重点看:
- vmafdd
- vmdird
- vmware-sts-idmd
- vmware-stsd
- vmware-vpostgres
- vmware-vpxd
- vmware-invsvc
- vmware-vdcs
- vmware-vpx-workflow
- vsphere-client
- 查 503 是否真是 vpxd 管道问题
1 | ls -l /var/run/vmware/vpxd-webserver-pipe tail -n 100 /var/log/vmware/vpxd/vpxd.log |
- 如果看到 SSO/STS/IDM 异常,查:
1 | tail -n 100 /var/log/vmware/sso/vmware-sts-idmd.log tail -n 100 /var/log/vmware/sso/ssoAdminServer.log |
- 如果 vmware-sts-idmd.log 有 LDAP error 49
先查机器账户:
1 | /opt/likewise/bin/lwregshell list_values '[HKEY_THIS_MACHINE\services\vmdir\]' | egrep -i "dcAccountDN|dcAccountPassword" |
然后:
1 | /usr/lib/vmware-vmdir/bin/vdcadmintool |
选 3. Reset account password
再写回:
1 | /opt/likewise/bin/lwregshell cd HKEY_THIS_MACHINE\services\vmdir set_value dcAccountPassword "新密码" quit |
- 如果 vmware-vdcs 起不来,查:
1 | tail -n 100 /var/log/vmware/vdcs/wrapper.log ls -l /var/log/vmware/vdcs/vmware-vdcs.pid |
若存在旧 pid:
1 | mkdir -p /var/log/vmware/vdcs/clspid mv /var/log/vmware/vdcs/vmware-vdcs.pid /var/log/vmware/vdcs/clspid/ service-control --start vmware-vdcs |
- 依次补启动:
1 | service-control --start vmware-vdcs service-control --start vmware-vpx-workflow service-control --start vsphere-client |
- 最终验证
1 | service-control --status --all | egrep "vmware-vpxd|vmware-invsvc|vmware-vdcs|vmware-vpx-workflow|vsphere-client|vmware-sts-idmd" |
本次关键配置结论
- 这台老环境的 SSO 域不是 vsphere.local,而是 vphere.local
不是笔误,不要手改。 - 机器账户不是 Web 登录账户。
192.168.7.8@vphere.local 这类账户只给内部服务使用。 - Web 登录仍应使用:
配原 SSO 管理员密码。
- root 仍是 Linux/SSH 登录账户。
避坑记录
- 不要把 VCSA 6.0 的 hostname 直接改成裸 IP。
- 不要把管理 IP 写到 127.0.0.1 或 ::1 那两行。
- 不要把机器账户密码当作 UI 登录密码。
- 不要在没做快照时直接动 vmdir、证书、Lookup/SSO 配置。
参考