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 文件残留

最终确认的根因

  1. 日志盘和核心转储盘打满,导致服务无法正常启动。
  2. 主机名/解析在处理中被改乱,曾一度把 hostname 弄成裸 IP,系统只识别成 192。
  3. SSO/IDM 机器账户密码失配,导致 vmware-sts-idmd 无法绑定本地 LDAP:
1
LDAP error 49 cn=192.168.7.8,ou=Domain Controllers,DC=vphere,DC=local 
  1. Content Library 残留旧文件:
1
/var/log/vmware/vdcs/vmware-vdcs.pid 

导致 vmware-vdcs 启动失败。

处理经过

  1. 通过老版 VCSA 的 GRUB 单用户模式重置 root 密码。
  2. 清理满盘:
    • 清理 /storage/core
    • 清理 /storage/log
    • 删除 .hprof、旧压缩日志、历史大日志
  3. 修复主机名和解析:
    • hostname 恢复为 vcsa
    • hostname -f 恢复为 vcsa.chinadafeng.com
    • vmafdd 恢复正常
  4. 发现 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] 
  1. 用 vdcadmintool 重置机器账户密码,再用 lwregshell 写回本机注册表中的 dcAccountPassword。
  2. vmware-sts-idmd 恢复,认证成功。
  3. 查看 /var/log/vmware/vdcs/wrapper.log,发现:
1
pid file ... /var/log/vmware/vdcs/vmware-vdcs.pid already exists 
  1. 移走旧

    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

  1. 先做快照
    如果涉及 SSO、证书、vmdir、机器账户密码,优先做关机快照。
  2. 先看空间
1
df -h df -i 

重点看:

  • /
  • /storage/log
  • /storage/core
  1. 查核心服务
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
  1. 查 503 是否真是 vpxd 管道问题
1
ls -l /var/run/vmware/vpxd-webserver-pipe tail -n 100 /var/log/vmware/vpxd/vpxd.log 
  1. 如果看到 SSO/STS/IDM 异常,查:
1
tail -n 100 /var/log/vmware/sso/vmware-sts-idmd.log tail -n 100 /var/log/vmware/sso/ssoAdminServer.log 
  1. 如果 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 
  1. 如果 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. 依次补启动:
1
service-control --start vmware-vdcs service-control --start vmware-vpx-workflow service-control --start vsphere-client 
  1. 最终验证
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 登录仍应使用:
1
administrator@vphere.local 

配原 SSO 管理员密码。

  • root 仍是 Linux/SSH 登录账户。

避坑记录

  • 不要把 VCSA 6.0 的 hostname 直接改成裸 IP。
  • 不要把管理 IP 写到 127.0.0.1 或 ::1 那两行。
  • 不要把机器账户密码当作 UI 登录密码。
  • 不要在没做快照时直接动 vmdir、证书、Lookup/SSO 配置。

参考