vSphere Web Client 出現「503 服務不可用」錯誤:該怎麼辦?
VMware vCenter Server 作為 vSphere 中的集中式管理中心,用於管理虛擬化資料中心中的 ESXi 主機、叢集、虛擬機器及其他元件。這篇部落格文章將探討您在嘗試透過 vSphere Client 連線至 vCenter 時,可能會遇到的 503 服務不可用 錯誤。請繼續閱讀以了解此錯誤的潛在原因及解決方法。
何謂”503 服務不可用”錯誤?
503 服務不可用 是當客戶端向伺服器發送請求時,伺服器所回傳的標準 HTTP 狀態碼之一。5xx 類別的 HTTP 狀態碼用於通知使用者發生伺服器錯誤。據此, 503 服務不可用 是一種描述伺服器端錯誤的回應。 通常此錯誤表示伺服器無法處理該請求,您應在託管該應用程式的 Web 伺服器上排查問題。
以下是 VMware vSphere Client 此錯誤的完整說明:
503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x000055615a4d7a70] _serverNamespace = / action = Allow _pipeName =/var/run/vmware/vpxd-webserver-pipe)
若發生 vCenter 503 Service Unavailable 錯誤,可能由多種因素引起:
- 部分服務尚未載入且未執行(常見問題之一是反向代理服務或 vSphere Web Client 服務已停止運作)。
- vCenter Server 正在進行維護
- vCenter Server 負載過高
- vCenter Server 發生磁碟問題
- vCenter 使用的資料庫出現問題
- 防火牆設定不正確(適用於安裝在 Windows 上的 vCenter)及網路問題
您應在 vCenter 伺服器端而非客戶端找出並解決此錯誤。
服務尚未啟動
若您剛啟動 vCenter 實例,且所有必要服務尚未啟動,請等待幾分鐘後再試一次。
- 嘗試從另一台客戶端連線至 vCenter。
若此方法無效,請檢查所有必要服務是否已啟動。
- 請在網頁瀏覽器中輸入 vCenter 的 IP 位址或完全合格網域名稱 (FQDN),並搭配埠號 5480,以開啟”裝置管理介面”(適用於 vCenter Server Appliance),例如:
https://192.168.101.103:5480/ui/services - 請在
Services區段中檢查 vCenter 服務的狀態。例如,若 vSphere Web Client 服務狀態為Started,而 vCenter Server 服務狀態為Stopped,則可能會發生 VMware503 Service Unavailable錯誤。
- 您可以在主控台和命令列介面 (CLI) 中檢查 vCenter 服務的狀態。請在 vCenter 裝置管理介面的
Access區段中啟用 SSH 登入、主控台 CLI 以及 Bash Shell。
- 此外,您也可以在 vCenter Server Appliance (VCSA) 的 DCUI(直接主控台使用者介面)中,透過
Troubleshooting Mode選項啟用 Bash Shell 和 SSH 存取。
-
請在您的電腦上執行以下指令(輸入您的 vCenter 主機名稱或 IP 位址),以確認電腦與 vCenter 伺服器之間已建立連線:
telnet vcenter_fqdn 9443 - 透過 SSH 連線至 vCenter,或連線至 VCSA 控制台(在 vCenter 的 DCUI 中按
Alt+F1,登入後,輸入shell,並按Enter)。 -
在執行 vCenter 的機器上執行以下指令,檢查 vCenter 服務的狀態:
service-control --status --all

- 若存在外部平台服務控制器 (PSC),請檢查 vCenter 與 PSC 的連線狀況。同時也請檢查 PSC 上的服務。
-
若某些服務已終止,請執行以下指令以啟動所有服務:
service-control --start --all -
嘗試停止並重新啟動 vSphere Client 服務:
service-control --stop vsphere-client
service-control --start vsphere-client - 請等待約 10–15 分鐘,直到服務啟動為止,然後嘗試在 vSphere Client 中存取 vCenter。
檢查日誌檔案
檢查日誌檔案有助於找出錯誤原因,包括 vCenter 503 Service Unavailable 錯誤。
首先,檢查 vsphere_client_virgo.log 檔案。
- 對於 Windows 版本的 vCenter Server,日誌儲存於:
C:ProgamDataVMwarevCenterServerlogsvsphere-clientlogs - 對於 vCenter Server 裝置,vCenter 日誌儲存於:
/var/log/vmware/vsphere-client/logs/
同時也請檢查 vpxd.log 檔案。
- 在 Windows 上的 vCenter 中,
vpxd.log儲存於:
C:ProgramDataVMwarevCenterServerlogsvmware-vpx - 在 vCenter Server 裝置上,
vpxd.log儲存於:
/var/log/vmware/vpxd/
可用硬體資源不足
磁碟空間不足本身並不會直接導致 vCenter 503 服務不可用 錯誤。然而,若無可用磁碟空間,某些服務將無法啟動,這可能會導致 503 服務不可用 錯誤。 vCenter 的儲存延遲過高也可能是導致此錯誤的原因之一。自 VCSA 6.5 起,該裝置配備了 12 個虛擬磁碟(先前 VCSA 僅有 2 個虛擬磁碟),其中某個虛擬磁碟可能發生異常。若 vCenter Server 負載過高,繁忙的伺服器將無法處理您的請求。
- 請檢查可用磁碟空間,並在 vCenter Server 端執行該指令。 若您使用 vCenter Server 裝置,請執行此指令:
df -h - 在 VCSA 6.7 中,
/storage/archive/分區可能會滿載,根據 VMware 對 vCenter 6.7 的設計,這是預期中的(正常)情況。請檢查可用記憶體和處理器資源:
top - 請檢查執行 vCenter 的機器上的檔案系統。 使用
e2fsck檢查VCSA上的檔案系統,並運行命令e2fsck -y filesystem,例如:
e2fsck -y /dev/sda1 - 如果發現並修復錯誤,重新啟動vCenter伺服器:
reboot
vCenter資料庫
的問題
資料庫是vCenter伺服器正常運行所需的重要組成部分。如果資料庫不能正常工作,可能會出現“ vCenter 503服務不可用 ”的錯誤。我們來探索可能的資料庫問題及其解決方法。
有時下列錯誤會顯示在vpxd日誌檔案中:
An unrecoverable problem has occurred, stopping the VMware VirtualCenter service. Error: Error[VdbODBCError] (-1) "ODBC error: (23505) - ERROR: duplicate key value violates unique constraint "pk_vpx_vm_virtual_device";
Error while executing the query" is returned when executing SQL statement "INSERT INTO VPX_VM_VIRTUAL_DEVICE
- 如果您的vCenter安裝在Windows上,請檢查事件檢視器中的應用程式事件日誌。
這是一個由於內嵌的Postgres資料庫中重複條目而導致的錯誤,而該資料庫是vCenter正常運行所需的。
- 請打開vCenter設備的命令列介面,例如,通過SSH連接到伺服器。
- 前往Postgres日誌目錄:
cd /var/log/vmware/vpostgres - 檢查日誌檔案。日誌檔案的命名格式為
postgresql-“dayofmonth”.log。例如,月的第三天的日誌檔案名為“postgresql-03.log”。如果今天是五月3日,請檢查相應日誌檔案的內容:cat postgresql-03.log
2020-05-03 16:05:12.749 UTC 38a12db9.5481 1008636 VCDB vc ERROR: duplicate key value violates unique constraint “pk_vpx_vm_virtual_device”
2020-05-03 16:05:12.749 UTC 38a12db9.5481 1008636 VCDB vc DETAIL: Key (id, device_key)=(8101, 4002) already exists. - 記住
ID和DEVICE_KEY。在此例中,這些數值分別為8101和4002。 - 連接到vCenter使用的內嵌Postgres資料庫:
/opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres - 刪除重複的條目:
DELETE FROM vc.vpx_vm_virtual_device where id=’8101′ and device_key=’4002′;
"DELETE 1"在輸出中表示一切正常。 - 退出資料庫CLI:
q - 輸入
reboot以重啟vCenter伺服器。待vCenter伺服器及服務啟動後,嘗試開啟vSphere客戶端。
重新啟動後您可能會再次遇到同樣的錯誤。再次檢查資料庫日誌。如果重新生成了重複條目,請刪除它們並重啟vCenter。可能需要多次刪除重複條目並重啟vCenter伺服器,直到問題解決。
- 有時您可能需要檢測受影響的虛擬機器,從清單中移除受影響的虛擬機器,然後重新註冊(添加)虛擬機器到清單中。
- 如果此方法不能永久修復此問題,請嘗試將vCenter升級到vCenter 6.7或更高版本。
- 如果您使用SQL資料庫,請檢查您是否有足夠的磁碟空間存儲SQL資料庫日誌。 如果 SQL 資料庫記錄檔的檔案系統中沒有可用空間,您可能會收到錯誤信息。
權限問題
如果您在 Windows Server 上安裝了 vCenter,帳戶權限有時可能會發生問題。
在群組政策編輯器中,檢查 “ 作為批次作業登錄 ” 政策確保所有必要的帳戶均在其中。缺少 vCenter 安裝於 Windows Server 的權限可能會導致 VMware vSphere 503 Service Unavailable 錯誤。
- 在 Windows (
Start > Run > gpedit.msc) 中開啟本地群組政策編輯器。 - 在群組政策編輯器中,前往
Computer Configuration > Windows Settings > Security Settings > Local Policies > User Rights Assignment > Log on as a batch job。 - 如果這些使用者帳戶缺失,請將其新增至此政策:
cm
content-library
eam
imagebuilder
mbcs
netdumper
perfcharts
rbd
vapiEndpoint
vmware-vpostgres
vsan-health
vsm
vsphere-client
vsphere-ui - 點擊
Add User or Group以新增帳戶。
- 使用以下命令停止並啟動 VMware vSphere 用戶端服務:
service-control --stop vsphere-client
service-control --start vsphere-client - 啟動 vSphere 使用者介面服務:
service-control --start vsphere-ui - 等待服務啟動完畢。
- 重新啟動 vCenter Server 並檢查 vCenter 是否運作正常。
通常,vCenter 安裝程式應自動新增所需的帳戶,除非在群組政策編輯器中手動設置了此政策。
網路和 DNS 問題
確保 vCenter 的 DNS 名稱設置正確,並解決 vCenter Server 的 IP 位址。如果 DNS 項目錯誤,您可能會收到 503 Service Unavailable 錯誤。在安裝 vCenter 時,於階段 1 的步驟 7(配置網路設置)中設置 DNS 名稱。

如果您使用外部 PSC,則必須雙向解析 PSC IP 位址 – 正向查找和反向查找。
- 檢查 vCenter Server 裝置中的
/etc/hosts主機名稱。在該檔案中確保完整符合資格網域名稱(FQDN)和短名稱存在,格式如下:
vCenter_IP vCenter Server Appliance FQDN vcenter short name
例如:
192.168.101.103 vCenter6-7.vsphere.local vCenter6-7 - 更改 DNS 組態後,請重新啟動
vpxd服務:
service vmware-vpxd restart - 您可以使用以下命令檢查
vpxd服務的狀態:
vpxd status service vmware-vpxd status - 在 PSC 上運行這些命令以重新啟動相關服務:
/etc/init.d/vmware-stsd restart
/etc/init.d/vmware-sts-idmd restart
service vmware-cm restart - 在安裝 vCenter 的機器上重新啟動 vpxd 服務:
service vmware-vpxd restart - 等待所有所需服務啟動,再嘗試開啟 VMware vSphere 用戶端。
建議您使用嵌入式 PSC 的 vCenter 部署模式,以減少網路問題。 最新版本的 vCenter,例如 vCenter 7.0,只支持安裝嵌入式PSC。
如果您仍然遇到 vCenter 503 Service Unavailable 錯誤,嘗試下一種方法。
- 試著開啟或關閉 IPv6。在
/etc/sysctl.conf中,將net.ipv6.conf.eth0.disable_ipv6從1更改為0來啟用 IPv6:
#Disabling SLAAC/Link Local addresses
net.ipv6.conf.eth0.disable_ipv6=0 - 同樣地,將設為 1 停用 IPv6。
- 儲存設定後,運行以下命令:
sysctl -a
sysctl -p - 現在開啟 VMware vSphere Client。檢查在重新啟動後一切運作是否正常。
- 嘗試停用 SMBv1 並啟用 SMBv2。然後重新啟動 vCenter 伺服器查看此方法是否有效。
密碼問題
檢查 vCenter 伺服器設備的 root 密碼是否過期。如果它已過期,您將無法登入 vCenter 來編輯設定或修復包括 vCenter 設備 503 Service Unavailable 錯誤在內的問題。您可以將 root 密碼的過期時間設置為 0,以確保密碼永不過期。
- 您可以在 vCenter 伺服器設備管理的 GUI 中編輯 root 密碼的過期設置:
https://your_vCenter_IP:5480/ui/administration
- 若
vmdird中指定於vmdird-syslog.log檔案的帳戶出現密碼不符的情況,此因素可能是導致出現以下錯誤的原因:503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x7f3d084a60c0] _serverNamespace = / _isRedirect = false _pipeName =/var/run/vmware/vpxd-webserver-pipe)" - 檢查
/var/log/vmware/vmdird/vmdird-syslog.log檔案以確認哪些帳戶的密碼無效並需要重置。
注意: 編輯組態前請備份您的 vCenter,至少在 vCenter 伺服器在虛擬機器上運行時拍攝快照。如果您在使用外部平台服務控制器,也進行相同操作。 - 使用 SSH 作 vCenter 伺服器設備登入為
root。輸入shell.set --enabled true並輸入Shell以訪問 Bash 控制台。 - 執行命令打開 vdcadmintool 工具:
/usr/lib/vmware-vmdir/bin/vdcadmintool - 選擇第三選項:
Reset account password - 根據
vmdird-syslog.log檔案信息輸入要重置密碼的帳戶名稱。 - 密碼自動生成一個新密碼。複製並記錄此密碼。
注意: 如果在密碼中看到空白字符,返回上一步驟生成新密碼。當密碼中包含特殊字符時,此問題可能會發生,並顯示為缺失(空白)字符。 - 按上述解釋透過 SSH 連接到 vCenter 伺服器(如果您正在使用外部PSC)。 如果您正在使用嵌入式 PSC,請進行下一步。
- 執行命令以更新新密碼:
/opt/likewise/bin/lwregshell
cd HKEY_THIS_MACHINEservicesvmdir
set_value dcAccountPassword "new password"
quit - 使用命令重新啟動 vCenter 伺服器裝置服務:
service-control --stop --all
service-control --start --all
執行 vCenter 備份
通常建議在完成設定後備份 vCenter。您應該在確認 vCenter 正常運行後進行,以便在出現問題時可以還原 vCenter。最佳方法是定期創建 vCenter 備份,因為 vCenter 的組態可能在運行過程中發生更改,並且某些項目可能添加到 vCenter 清單中。您無法預測故障何時發生。
NAKIVO Backup & Replication 是一個通用的資料保護解決方案,可以備份 VMware vSphere 虛擬機器和運行 Windows 和 Linux 的實體機器,包括 SQL 資料庫。使用 NAKIVO Backup & Replication 保護您的 vCenter 伺服器機器,如果您的 vCenter 出現問題,可以在很短的時間內恢復運行組態。增量備份支持和 GFS 保留政策有助於更合理地進行 VMware vCenter 備份。該產品支持 SQL 記錄截斷,以節省存儲空間並減少由於大型資料庫記錄而導致磁碟空間不足的錯誤概率。