「503 サービス利用不可」エラーが vSphere Web クライアントで発生した場合、どうすればいいですか?

VMware vCenter Server、vSphere の集中管理ポイントは、ESXiホスト、クラスタ、VM、および仮想化データセンター内の他のコンポーネントを管理するために使用されます。このブログ記事では、vSphere Client に接続しようとした際に発生する可能性のある 503 Service Unavailable について説明します。このエラーの原因と対処方法について学んでください。

NAKIVO for VMware vSphere バックアップ

NAKIVO for VMware vSphere バックアップ

VMware vSphere 仮想マシン(VM)向けの包括的なデータ保護と即時復旧オプション。オンサイト、オフサイト、およびクラウド上の安全なバックアップ先。ランサムウェア対策機能。

“503サービス利用不可”エラーとは何ですか?

503サービス利用不可 は、クライアントがサーバーにリクエストを送信した際にサーバーから返される標準的なHTTPステータスコードの1つです。5xxクラスのHTTPステータスコードは、ユーザーにサーバーのエラーを知らせるために使用されます。これに基づいて、 503サービス利用不可 はサーバー側のエラーを記述する応答です。通常、このエラーはサーバーがリクエストを処理できないことを示し、アプリケーションをホストするウェブサーバーで問題を探すべきです。

VMware vSphereクライアントのこのエラーの全文はこちらです:

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ウェブクライアントサービスがダウンしていることです)。
  • vCenterサーバーがメンテナンス中である
  • vCenterサーバーが過負荷になっている
  • vCenterサーバーでディスクが失敗した
  • vCenterで使用されているデータベースに問題がある
  • 不正なファイアウォール設定(WindowsにインストールされたvCenterの場合)およびネットワークの問題

エラーをvCenterサーバーで修正し、クライアント側ではなく、修正してください。

サービスが開始されていません

最近vCenterインスタンスを開始した場合、必要なすべてのサービスがまだ開始されていない可能性がありますので、数分待ってから再試行してください。

  • 別のクライアントからvCenterに接続してみてください。

これが役に立たない場合、必要なすべてのサービスが開始されているかどうかを確認してください。

  1. vCenterサーバーアプライアンス用のアプライアンス管理インターフェースをWebブラウザで、vCenterのIPアドレスもしくはFQDN (完全修飾ドメイン名) とポート5480を使用して開いてください。例:https://192.168.101.103:5480/ui/services
  2. Services セクションでvCenterサービスの状態を確認してください。例えば、vSphereウェブクライアントサービスがStartedで、vCenterサーバーサービスがStoppedの際、VMware503 Service Unavailableエラーが発生することがあります。Fixing the 503 Service Unavailable error – checking running services
  3. コンソールとCLI(コマンドラインインターフェース)でvCenterサービスのステータスを確認することができます。Accessアプライアンス管理インターフェースのセクションで、SSHログイン、コンソールCLI、Bashシェルを有効にしてください。SSH login and Bash Shell are enabled in VCSA management settings
  4. また、vCenterサーバーアプライアンス(VCSA)のDCUI(直接コンソールユーザーインターフェース)のオプションでBashシェルとSSHアクセスを有効にすることもできます。Troubleshooting Mode Enabling SSH access in Troubleshooting Mode options in the DCUI of VCSA
  5. お使いのコンピュータとvCenterサーバの接続を確認するには、コンピュータからコマンドを実行してください(vCenterのホスト名またはIPアドレスを入力してください):

    telnet vcenter_fqdn 9443

  6. SSH経由でvCenterに接続するか、VCSAコンソールに接続してください(vCenterのDCUIでAlt+F1を押し、ログインし、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)がある場合、PSCへのvCenter接続を確認してください。また、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へアクセスしてみてください。

ログファイルの確認

ログファイルを確認することで、vCenter503 Service Unavailableエラーなどの原因を特定するのに役立ちます。

最初に、vsphere_client_virgo.logファイルを調査してください。

  • Windows版のvCenter Serverでは、ログは以下に保存されています:
    C:ProgamDataVMwarevCenterServerlogsvsphere-clientlogs
  • vCenter Server Applianceの場合、vCenterのログは以下に保存されています:
    /var/log/vmware/vsphere-client/logs/

さらに、vpxd.logファイルを確認してください。

  • Windows上で動作しているvCenterでは、vpxd.logは以下に保存されています:
    C:ProgramDataVMwarevCenterServerlogsvmware-vpx
  • vCenter Server Applianceでは、vpxd.logは以下に保存されています:
    /var/log/vmware/vpxd/

ハードウェアリソースの不足

ディスクスペースの不足は、vCenterの503サービスが利用できませんエラー自体の原因にはなりません。しかし、ディスクスペースがないと一部のサービスが開始できず、503サービスが利用できませんエラーの原因になる可能性があります。vCenterの高いストレージレイテンシもこのエラーの一因となることがあります。VCSA 6.5から、アプライアンスは12個の仮想ディスクが提供されており(以前はVCSAには2つの仮想ディスクがありました)、仮想ディスクのいずれかで問題が発生する可能性があります。もしvCenter Serverが過負荷の場合、忙しいサーバはお客様の要求に対応できません。

  • ディスクスペースを確認し、vCenter Server側でコマンドを実行してください。vCenter Server Applianceを使用している場合、このコマンドを実行してください:
    df -h
  • VCSA 6.7では、/storage/archive/パーティションがいっぱいになることは、VMwareのvCenter 6.7の設計に基づく通常の状況です。メモリとプロセッサリソースを確認してください:
    top
  • vCenterを実行しているマシンのファイルシステムを確認してください。 VCSA のファイルシステムを確認するには e2fsck を使用し、例として次の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 フォーマットで命名されています。例えば、月の第 3 日目のログファイルは”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. IDDEVICE_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" と出力されると全てOKです。
  7. データベースCLIを終了します:
    q
  8. vCenter Server を再起動するには、rebootを入力してください。vCenter Server とサービスの起動を待ってから、vSphere Client を開いてみてください。

再起動後も同じエラーが発生する場合があります。再度データベースログを確認してください。再び重複エントリが作成されていた場合は、それらを削除してvCenter を再起動します。問題が解決するまで重複エントリの削除とvCenter Serverの再起動を数回繰り返す必要があるかもしれません。

  • 時には影響を受けたVMを検出し、インベントリから削除した後、VMをインベントリに再登録(追加)する必要があります。
  • この方法で問題を解決できない場合は、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クライアントサービスを停止および開始します:
    service-control --stop vsphere-client
    service-control --start vsphere-client
  6. vSphereユーザーインターフェースサービスを開始します:
    service-control --start vsphere-ui
  7. サービスが開始されるまでお待ちください。
  8. vCenterサーバーを再起動し、vCenterが正常に動作しているか確認してください。

通常、必要なアカウントは、vCenterのインストーラーによって自動的に追加されるはずですが、このポリシーが手動でグループポリシーエディターで設定されなければなりません。

ネットワークおよびDNSに関する問題

vCenterのDNS名が正しく設定されていること、およびvCenterサーバーの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. vCenterサーバープライアンスの /etc/hosts でホスト名を確認してください。このファイルに、次の形式で完全修飾ドメイン名 (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. vCenterがインストールされているマシンで vpxd サービスを再起動します:
    service vmware-vpxd restart
  6. 必要なすべてのサービスが開始されるまで待ってから、VMware vSphereクライアントを開いてみてください。
    ネットワークの問題を少なくするために、埋め込みPSCを持つvCenterデプロイメントモデルの使用が推奨されます。 最新のバージョンのvCenter、例えばvCenter 7.0は、組み込みのPSCでのみインストールをサポートしています。

もしvCenter 503 Service Unavailableエラーがまだ発生する場合は、次の方法を試してみてください。

  1. 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
  2. 同様に、1を設定してIPv6を無効にします。
  3. 設定をセーブした後、次のコマンドを実行してください:
    sysctl -a
    sysctl -p
  4. 現在、VMware vSphereクライアントを開いています。再起動後にすべてが正常に動作しているか確認してください。
  5. SMBv1を無効にしてSMBv2を有効にしてみてください。その後、vCenterサーバーを再起動し、この方法が役立つかどうか確認してください。

パスワードの問題

vCenter Server Applianceのルートパスワードの期限が切れていないか確認してください。期限が切れている場合、迂回策なしで設定を編集したり、vCenterアプライアンス503 Service Unavailableエラーを含むエラーを修正することができません。期限切れしないパスワードにしたい場合、ルートパスワードの有効期限を0に設定することができます。

  1. vCenter Server Appliance ManagementのGUIでルートパスワードの有効期限設定を編集することができます:
    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をバックアップするか、仮想マシン上で動作している場合は少なくともスナップショットを取得してください。外部のプラットフォームサービスコントローラーを使用している場合は同様にしてください。
  4. rootとしてSSH経由でvCenter Server Applianceにログインします。shell.set --enabled trueを入力し、BashコンソールにアクセスするためにShellを入力します。
  5. コマンドを実行して vdcadmintool ツールを開きます:
    /usr/lib/vmware-vmdir/bin/vdcadmintool
  6. 第三のオプションを選択してください:
    Reset account password
  7. vmdird-syslog.logファイルの情報に基づいて、リセットしたいアカウントの名前を入力します。
  8. 新しいパスワードが自動的に生成されます。このパスワードをコピーしてメモしてください。
    注意: パスワードに空白文字が表示される場合、先のステップに戻って新しいパスワードを生成してください。これは、パスワードに特殊文字が含まれている場合に発生し、それらが欠落した(空白の)文字として表示されるためです。
  9. 外部PSCを使用している場合、上記のようにSSH経由でvCenter Serverに接続してください。 組み込みのPSCを使用している場合は、次のステップに進みます。
  10. 新しいパスワードを更新するためにコマンドを実行します:
    /opt/likewise/bin/lwregshell
    cd HKEY_THIS_MACHINEservicesvmdir
    set_value dcAccountPassword "new password"
    quit
  11. 次のコマンドを使用してvCenterサーバーアプライアンスサービスを再起動します:
    service-control --stop --all
    service-control --start --all

vCenterのバックアップを実行する

設定を終了した後は、通常、vCenterをバックアップすることをお勧めします。これは、vCenterが正しく動作していることを確認した後、設定を編集する前に行ってください。これにより、何か問題が発生した場合にvCenterを復元できる可能性が高まります。最善の方法は、運用中にvCenterの設定が変更されたり、vCenterインベントリに項目が追加されたりすることがあるため、定期的なvCenterバックアップを作成することです。障害がいつ発生するかは予測できません。

NBRは、VMware vSphere VMやWindowsおよびLinuxを実行している物理マシン、SQLデータベースをバックアップできる汎用のデータ保護ソリューションです。NBRでvCenterサーバーマシンを保護し、vCenterに何か問題が発生した場合、短時間で動作中の設定を復元できます。増分バックアップのサポートとGFS保持ポリシーにより、VMware vCenterのバックアップをより合理的に実行できます。製品はSQLログの切り詰めをサポートしており、ストレージスペースを節約し、大規模なデータベースログによるディスクスペース不足で発生するエラーの可能性を減少させます。

NAKIVO Backup & Replication をお試しください

NAKIVO Backup & Replication をお試しください

無料トライアルを利用して、本ソリューションのデータ保護機能をすべてお試しください。15日間無料。機能や容量の制限は一切ありません。クレジットカードも不要です。

関連記事