vSphere Web Client 出現「503 服務不可用」錯誤:該怎麼辦?

VMware vCenter Server 是 vSphere 中的集中式管理平台,用於管理虛擬化資料中心中的 ESXi 主機、叢集、虛擬機器及其他元件。這篇部落格文章將探討 503 服務不可用 這是您在嘗試連線至 vCenter 時,vSphere Client 可能會顯示的錯誤訊息。請閱讀本文,了解此錯誤的可能原因以及解決方法。

NAKIVO for VMware vSphere 備份

NAKIVO for VMware vSphere 備份

為 VMware vSphere 虛擬機器提供全面資料保護及快速還原選項。支援本地、異地及雲端的備份目標。具備防勒索軟體功能。

什麼是"503 服務不可用"錯誤?

503 服務不可用 是伺服器在收到客戶端發送的請求時所返回的標準 HTTP 狀態碼之一。5xx 類別的 HTTP 狀態碼用於通知使用者伺服器發生錯誤。基於此, 503 服務不可用 這是一個描述伺服器端錯誤的回應。通常此錯誤表示伺服器無法處理該請求,您應在託管該應用程式的網頁伺服器上查找問題。

以下是 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。

如果這樣做沒有幫助,請檢查所有必要的服務是否已啟動。

  1. 請在網頁瀏覽器中輸入 vCenter 的 IP 位址或完全合格的網域名稱 (FQDN),並加上 5480 埠號,以開啟"裝置管理介面"(適用於 vCenter Server Appliance),例如:https://192.168.101.103:5480/ui/services
  2. 請在 Services 區段。例如,如果 vSphere Web Client 服務是 Started,且 vCenter Server 服務是 Stopped, VMware 503 Service Unavailable 可能會發生錯誤。Fixing the 503 Service Unavailable error – checking running services
  3. 您可以在主控台和命令列介面 (CLI) 中檢查 vCenter 服務的狀態。請在 Access vCenter 裝置管理介面的該區段。SSH login and Bash Shell are enabled in VCSA management settings
  4. 此外,您也可以在 vCenter Server 裝置(VCSA)的 DCUI(直接主控台使用者介面)中啟用 Bash Shell 和 SSH 存取權限,方法是 Troubleshooting Mode 選項。
    Enabling SSH access in Troubleshooting Mode options in the DCUI of VCSA
  5. 請在您的電腦上執行以下指令(輸入您的 vCenter 主機名稱或 IP 位址),以確認您的電腦與 vCenter 伺服器之間已建立連線:

    telnet vcenter_fqdn 9443

  6. 透過 SSH 連線至 vCenter,或連線至 VCSA 主控台(按下 Alt+F1 在 vCenter 的 DCUI 中,登入後輸入 shell, 然後按下 Enter).
  7. 請在執行 vCenter 的機器上執行以下指令,以檢查 vCenter 服務的狀態:

    service-control --status --all
    Checking status of vCenter services to find a cause of the 503 Service Unavailable error

  8. 如果存在外部平台服務控制器 (PSC),請檢查 vCenter 與 PSC 之間的連線。同時也請檢查 PSC 上的服務。
  9. 如果某些服務已停止運作,請使用以下命令執行所有服務:

    service-control --start --all

  10. 請嘗試停止並重新啟動 vSphere Client 服務:

    service-control --stop vsphere-client
    service-control --start vsphere-client

  11. 請等待約 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
  • /storage/archive/ 在 VCSA 6.7 中,分區可能會滿載,根據 VMware 對 vCenter 6.7 的設計,這是預期中的(正常)情況。請檢查可用記憶體和處理器資源:
    top
  • 檢查執行 vCenter 的主機上的檔案系統。請使用 e2fsck 檢查 VCSA 上的檔案系統,並執行以下指令 e2fsck -y filesystem例如:
    e2fsck -y /dev/sda1
  • 若發現錯誤並已修正,請重新啟動 vCenter Server:
    reboot

vCenter 資料庫的問題

資料庫是 vCenter Server 正常運作所需的重要元件。若資料庫無法正常運作,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 系統上,請檢查 事件檢視器 查看應用程式事件日誌。

這是由於用於確保 vCenter 正常運作的內嵌 Postgres 資料庫中存在重複條目所導致的錯誤。

  1. 開啟 vCenter Server 裝置的命令列介面,並透過 SSH 連線至伺服器(例如)。
  2. 前往 Postgres 日誌目錄:
    cd /var/log/vmware/vpostgres
  3. 請檢查日誌檔案。日誌檔案的名稱格式如下: postgresql-“dayofmonth”.log 格式。例如,當月第三天的日誌檔案命名為"postgresql-03.log”。如果今天是 5 月 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.
  4. 還記得那個 ID 以及 DEVICE_KEY. 在此範例中,這些值分別為 8101 和 4002。
  5. 連線至 vCenter 所使用的內嵌 Postgres 資料庫:
    /opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres
  6. 刪除重複的項目:
    DELETE FROM vc.vpx_vm_virtual_device where id=’8101′ and device_key=’4002′;
    "DELETE 1" 若輸出中出現此訊息,表示一切正常。
  7. 退出資料庫命令列介面:
    q
  8. 類型 reboot 重新啟動您的 vCenter Server。請等待 vCenter Server 及其服務啟動完成,然後嘗試開啟 vSphere Client。

重新啟動後,您可能會再次遇到相同的錯誤。請再次檢查資料庫日誌。如果重複的記錄再次產生,請刪除它們並重新啟動 vCenter。您可能需要重複刪除重複記錄並重新啟動 vCenter Server 數次,直到問題解決為止。

  • 有時您可能需要偵測受影響的虛擬機器,將其從清單中移除,然後將該虛擬機器重新註冊(新增)至清單中。
  • 如果此方法無法永久解決問題,請嘗試將您的 vCenter 升級至 vCenter 6.7 或更新版本。
  • 如果您使用 SQL 資料庫,請檢查是否有足夠的可用磁碟空間來儲存 SQL 資料庫日誌。如果 SQL 資料庫日誌檔案系統上沒有可用空間,您可能會收到錯誤訊息。

權限相關問題

如果您的 vCenter 安裝在 Windows Server 上,有時可能會發生帳戶權限相關的問題。

請檢查"以批次工作身分登入” 政策,並確認所有必要的帳戶均已存在。若安裝 vCenter 的 Windows Server 缺乏權限,可能會導致 vSphere 503 Service Unavailable 錯誤。

  1. 在 Windows 中開啟"本機群組原則編輯器"(Start > Run > gpedit.msc).
  2. 在"群組原則編輯器"中,請前往 Computer Configuration > Windows Settings > Security Settings > Local Policies > User Rights Assignment > Log on as a batch job.
  3. 如果缺少以下使用者帳戶,請將其新增至此原則:
    cm
    content-library
    eam
    imagebuilder
    mbcs
    netdumper
    perfcharts
    rbd
    vapiEndpoint
    vmware-vpostgres
    vsan-health
    vsm
    vsphere-client
    vsphere-ui
  4. 點擊 Add User or Group 以新增帳戶。Editing permissions in the group policy editor
  5. 請使用以下指令停止並重新啟動 vSphere Client 服務:
    service-control --stop vsphere-client
    service-control --start vsphere-client
  6. 啟動 vSphere 使用者介面服務:
    service-control --start vsphere-ui
  7. 請等待服務啟動。
  8. 重新啟動 vCenter Server,並檢查 vCenter 是否運作正常。

通常,在群組原則編輯器中手動設定此原則之前,vCenter 安裝程式應會自動新增所需的帳戶。

網路與 DNS 問題

請確認 vCenter 的 DNS 名稱已設定正確,且 vCenter Server 的 IP 位址已成功解析。若 DNS 中的記錄有誤,您可能會遇到 503 Service Unavailable 錯誤。安裝 vCenter 時,請在第 1 階段的第 7 步(設定網路設定)中設定 DNS 名稱。

Set the FQDN when you install vCenter to avoid 503 service unavailable (failed to connect to endpoint

如果您使用的是外部 PSC,則必須能雙向解析該 PSC 的 IP 位址——包括正向查詢和反向查詢。

  1. 請檢查位於 /etc/hosts 在 vCenter Server 裝置上。請確保此檔案中包含完整域名 (FQDN) 及簡稱,且格式如下:
    vCenter_IP vCenter Server Appliance FQDN vcenter short name
    例如:
    192.168.101.103 vCenter6-7.vsphere.local vCenter6-7
  2. 變更 DNS 設定後,請重新啟動 vpxd 服務:
    service vmware-vpxd restart
  3. 您可以查看 vpxd 使用以下指令啟動服務:
    vpxd status service vmware-vpxd status
  4. 在 PSC 上執行以下指令以重新啟動相關服務:
    /etc/init.d/vmware-stsd restart
    /etc/init.d/vmware-sts-idmd restart
    service vmware-cm restart
  5. 重新啟動 vpxd 在安裝了 vCenter 的機器上執行此服務:
    service vmware-vpxd restart
  6. 請等待所有必要服務啟動後,再嘗試開啟 VMware vSphere Client。
    建議您採用內建 PSC 的 vCenter 部署模式,以減少網路問題。最新版本的 vCenter(例如 vCenter 7.0)僅支援搭配內建 PSC 的安裝方式。

如果您仍然遇到 vCenter 503 Service Unavailable 若發生錯誤,請嘗試下一種方法。

  1. 請嘗試啟用或停用 IPv6。開啟 /etc/sysctl.conf 並將 net.ipv6.conf.eth0.disable_ipv6 來自 10 要啟用 IPv6:
    #Disabling SLAAC/Link Local addresses
    net.ipv6.conf.eth0.disable_ipv6=0
  2. 同樣地,將設定為 1 以停用 IPv6。
  3. 儲存設定後,請執行以下指令:
    sysctl -a
    sysctl -p
  4. 請立即開啟 VMware vSphere Client。請確認重新開機後一切運作正常。
  5. 請嘗試停用 SMBv1,並改為啟用 SMBv2。接著重新啟動 vCenter Server,並確認此方法是否有所幫助。

密碼問題

請檢查您的 vCenter Server Appliance root 密碼是否已過期。若已過期,您將無法登入 vCenter 來編輯設定或修正錯誤,包括 vCenter 裝置相關的問題 503 Service Unavailable 此錯誤目前尚無解決方法。您可以將 root 密碼的有效期限設定為 0 如果你希望密碼永不過期。

  1. 您可以在 vCenter Server Appliance 管理介面的圖形化使用者介面中編輯 root 密碼的到期設定:
    https://your_vCenter_IP:5480/ui/administrationThe root password expiration settings in vCenter Server Appliance Management configuration
  2. 如果密碼不符 vmdird 針對指定於 vmdird-syslog.log,此因素可能是導致出現以下錯誤的原因:

    503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x7f3d084a60c0] _serverNamespace = / _isRedirect = false _pipeName =/var/run/vmware/vpxd-webserver-pipe)"

  3. 請檢查 /var/log/vmware/vmdird/vmdird-syslog.log 檔案,以確認哪個帳戶的密碼無效且必須重設。
    註: 在編輯設定之前,請先備份您的 vCenter;若您的 vCenter Server 是在虛擬機器上運作,至少應建立一個快照。若您正在使用外部 Platform Service Controller,也請對其執行相同的操作。
  4. 以 身分登入 vCenter Server 裝置 root 透過 SSH。輸入 shell.set --enabled true 並輸入 Shell 以存取 Bash 終端機。
  5. 開啟 vdcadmintool 透過執行以下指令來使用該工具:
    /usr/lib/vmware-vmdir/bin/vdcadmintool
  6. 請選擇第三個選項:
    Reset account password
  7. 請根據中的資訊,輸入您要重設密碼的帳戶名稱 vmdird-syslog.log 檔案。
  8. 系統會自動產生一個新密碼。請複製並記下此密碼。
    註: 若您在密碼中看到空白字元,請返回上一步驟重新產生新密碼。此問題發生於密碼中包含特殊字元,且這些字元會被顯示為缺失(空白)字元。
  9. 請依照上述說明透過 SSH 連線至 vCenter Server(若您使用的是外部 PSC)。若您使用的是內建 PSC,請繼續執行下一步。
  10. 執行以下指令以更新新密碼:
    /opt/likewise/bin/lwregshell
    cd HKEY_THIS_MACHINEservicesvmdir
    set_value dcAccountPassword "new password"
    quit
  11. 請使用以下命令重新啟動 vCenter Server 裝置 服務:
    service-control --stop --all
    service-control --start --all

執行 vCenter 備份

一般建議您在完成設定後備份 vCenter。您應在確認 vCenter 運作正常後,且在編輯設定之前執行此操作,以便在發生問題時能夠還原 vCenter。最佳做法是定期建立 vCenter 備份,因為 vCenter 的設定在運作過程中可能會變更,且 vCenter 清單中可能會新增某些項目。您無法預知故障何時會發生。

NAKIVO Backup & Replication 這是一款通用的資料保護解決方案,可備份運行 Windows 和 Linux 的 VMware vSphere 虛擬機器及實體機器,包括 SQL 資料庫。透過 NAKIVO Backup & Replication此外,若您的 vCenter 發生問題,您可在短時間內還原正常運作的設定。透過支援增量備份與 GFS 保留政策,可更合理地執行 VMware vCenter 備份。本產品支援 SQL 日誌截斷功能,以節省儲存空間,並降低因大型資料庫日誌導致磁碟空間不足而引發錯誤的機率。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,全面體驗本解決方案的所有資料保護特點。15 天免費試用。無功能或容量限制。無需提供信用卡資訊。

People also read