Azure Windows VM エージェントのトラブルシューティング

Azure VM エージェントは仮想マシン (VM) エージェントです。 これにより、VM は、IP アドレス 168.63.129.16 上のファブリック コントローラー (VM がホストされている基になる物理サーバー) と通信できます。 これは、通信を容易にする仮想パブリック IP アドレスです。 詳細については、「 IP アドレス 168.63.129.16 とは」を参照してください。

オンプレミスから Azure に移行された VM、またはカスタマイズされたイメージを使用して作成された VM には、Azure VM エージェントがインストールされていません。 これらのシナリオでは、VM エージェントを手動でインストールする必要があります。 VM エージェントをインストールする方法の詳細については、「 Azure 仮想マシン エージェントの概要」を参照してください。

Azure VM エージェントが正常にインストールされると、VM 上の services.msc に次のサービスが一覧表示されます。

  • Windows Azure ゲスト エージェント - このサービスは、ゲストからホストへのさまざまな拡張機能と通信を構成する役割を担います。 また、WAppAgent.log にログを収集する責任もあります。
  • Telemetry Service - このサービスは、VM のテレメトリ データをバックエンド サーバーに送信する役割を担います。
  • RDAgent - このサービスは、ゲスト エージェントのインストールを担当します。 Transparent Installer は、ゲスト エージェントの他のコンポーネントとサービスをアップグレードするのに役立つ Rd エージェントのコンポーネントでもあります。 RD エージェントは、ゲスト VM から物理サーバー上のホスト エージェントにハートビートを送信する役割も担います。

注:

VM ゲスト エージェントのバージョン 2.7.41491.971 以降では、テレメトリ コンポーネントは Windows Azure ゲスト エージェント サービスに含まれているため、このテレメトリ サービスが新しく作成された VM に表示されない場合があります。

エージェントの状態とバージョンの確認

Azure portalの [VM のプロパティ] ページに移動し、エージェントの状態を確認します。 Azure VM エージェントが正常に動作している場合、状態は [準備完了] と表示されます。 VM エージェントが準備ができていない状態の場合、Azure portalの拡張機能と実行コマンドは機能しません。

準備ができていない状態の VM エージェントのトラブルシューティング

手順 1 Azure VM エージェント サービスがインストールされているかどうかを確認する

  • パッケージを確認する

    C:\WindowsAzure フォルダーを見つけます。 バージョン番号を表示する GuestAgent フォルダーが表示される場合は、Azure VM エージェントが VM にインストールされたことを意味します。 インストールされているパッケージを探すこともできます。 Azure VM エージェントが VM にインストールされている場合、パッケージは 次の場所に保存されます。 C:\windows\OEM\GuestAgent\VMAgentPackage.zip

    次の PowerShell コマンドを実行して、VM エージェントが VM にデプロイされているかどうかを確認できます。

    Get-AzVM -ResourceGroupName "RGNAME" -Name "VMNAME" -DisplayHint expand

    出力で ProvisionVMAgent プロパティを見つけて、値が True に設定されているかどうかを確認 します。 その場合は、エージェントが VM にインストールされていることを意味します。

  • サービスとプロセスを確認する

    サービス コンソール (services.msc) に移動し、Azure VM エージェント サービス、RD エージェント サービス、Windows Azure テレメトリ サービス、および Windows Azure ネットワーク エージェント サービスの状態を確認します。

    タスク マネージャーで次のプロセスを調べることで、これらのサービスが実行されているかどうかを確認することもできます。

    • WindowsAzureGuestAgent.exe: Azure VM エージェント サービス
    • WaAppAgent.exe: RD エージェント サービス
    • WindowsAzureTelemetryService.exe: Windows Azure Telemetry Service

    これらのプロセスとサービスが見つからない場合は、Azure VM エージェントがインストールされていないことを示します。

  • プログラムと機能を確認する

    コントロール パネルで、[プログラムと機能] に移動して、Azure VM エージェント サービスがインストールされているかどうかを確認します。

実行中のパッケージ、サービス、プロセスが見つからない場合や、[プログラムと機能] に Azure VM エージェントがインストールされていない場合は、 Azure VM エージェント サービスをインストールしてみてください。 ゲスト エージェントが正しくインストールされない場合は、 VM エージェントをオフラインでインストールできます。

サービスが表示され、実行されている場合は、問題が解決されたかどうかを確認するサービスを再起動します。 サービスが停止している場合は、サービスを開始して数分待ちます。 次に、エージェントの 状態準備完了として報告されているかどうかを確認します。 これらのサービスがクラッシュしている場合は、一部のサード パーティのプロセスによってこれらのサービスがクラッシュしている可能性があります。 これらの問題のトラブルシューティングを行うには、Microsoft サポートにお問い合わせください。

手順 2 自動更新が機能しているかどうかを確認する

Azure VM エージェントには自動更新機能があります。 新しい更新プログラムが自動的にチェックされ、インストールされます。 自動更新機能が正しく機能しない場合は、次の手順に従って Azure VM エージェントをアンインストールしてインストールしてみてください。

  1. [ プログラムと機能] に Azure VM エージェントが表示される場合は、Azure VM エージェントをアンインストールします。

  2. 管理者特権を持つコマンド プロンプト ウィンドウを開きます。

  3. ゲスト エージェント サービスを停止します。 サービスが停止しない場合は、 サービスを手動起動 に設定し、VM を再起動する必要があります。

    net stop RDAgent 
    net stop WindowsAzureGuestAgent
    net stop WindowsAzureTelemetryService
    
  4. ゲスト エージェント サービスを削除します。

    sc delete RDAgent 
    sc delete WindowsAzureGuestAgent
    sc delete WindowsAzureTelemetryService
    
  5. [CREATE a folder that that named OLD]\( C:\WindowsAzure OLD\(古い\) という名前のフォルダーを作成します。

  6. Packages または GuestAgent という名前のフォルダーを OLD フォルダーに移動します。

  7. VM を再起動して、アンインストール プロセスを完了します。

  8. ここから最新バージョンのエージェント インストール パッケージをダウンロードしてインストール します。 インストールを完了するには、管理者権限が必要です。

  9. 次のコマンドを使用してゲスト エージェントをインストールします。

    msiexec.exe /i c:\VMAgentMSI\WindowsAzureVmAgent.2.7.<version>.fre.msi /quiet /L*v c:\VMAgentMSI\msiexec.log
    

    次に、 Windows Azure ゲスト エージェント サービスが正しく起動するかどうかを確認します。

    ゲスト エージェントが正しくインストールされない場合は、VM エージェントをオフラインでインストールできます。

手順 3 VM がファブリック コントローラーに接続できるかどうかを確認する

PsPing などのツールを使用して、VM がポート 80 と 32526 で 168.63.129.16 に接続できるかどうかをテストします。 VM が期待どおりに接続しない場合は、VM 上のローカル ファイアウォールでポート 80 と 32526 経由の送信通信が開かれているかどうかを確認します。 この IP アドレスがブロックされている場合、VM エージェントはさまざまなシナリオで予期しない動作を表示する可能性があります。

高度なトラブルシューティング

Azure VM エージェントをトラブルシューティングするためのイベントは、次のログ ファイルに記録されます。

  • C:\WindowsAzure\Logs\WaAppAgent.log
  • C:\WindowsAzure\Logs\TransparentInstaller.log

次に示す一般的なシナリオでは、Azure VM エージェントが 準備ができていない 状態に入ったり、期待どおりに動作を停止したりできます。


Azure VM エージェント バージョン 2.7.41491.1004 を使用している Windows VM で Sysprep に問題が発生する可能性があります

これらの VM でSysprep.exeを実行すると、次のエラーが発生する可能性があります。

  • Sysprep を初めて実行すると、次のエラーが表示されます。

    ADMINISTRATOR: エラー ハンドラー

  • Sysprep を複数回実行すると、次のエラーが表示されます。

    VM の準備中に致命的なエラーが発生しました

この問題はバージョン 1004 のみであるため、エージェントを最新のエージェント バージョンにアップグレードするか、以下の MSI を使用してバージョン 1005 にアップグレードしてみてください。このバグは修正されています。

\reddog\Buildss\branchs\git_compute_iaas_vmagent_master\2.7.41491.1005\retail-amd64\exports\IaaSVmAgentInstaller

また、最初に VM の Sysprep 状態をリセットします。 これは 、いくつかのレジストリ キーの変更で構成されます。


エージェントが "開始中" でスタックしている

WaAppAgent ログでは、エージェントが開始プロセスでスタックしており、開始できないことがわかります。

ログ情報

[00000007] [2019/05/28 12:58:50.90] [INFO] WindowsAzureGuestAgent starting. バージョン 2.7.41491.901

分析

VM は引き続き古いバージョンの Azure VM エージェントを実行しています。 C:\WindowsAzure フォルダーには、同じバージョンを含む複数の Azure VM エージェント インスタンスがインストールされていることがわかります。 複数のエージェント インスタンスがインストールされているため、VM は最新バージョンの Azure VM エージェントを起動しません。

解決方法

Azure VM エージェントを手動でアンインストールし、次の手順に従って再インストールします。

  1. コントロール パネル>プログラムと機能を開き、Azure VM エージェントをアンインストールします。

  2. タスク マネージャーを開き、Azure VM エージェント サービス、RD エージェント サービス、Windows Azure テレメトリ サービス、Windows Azure ネットワーク エージェント サービスの各サービスを停止します。

  3. [C:\WindowsAzure] で、OLD という名前のフォルダーを作成します。

  4. Packages または GuestAgent という名前のフォルダーを OLD フォルダーに移動します。 また、GuestAgent_x.x.xxxxx として開始する C:\WindowsAzure\logs 内の GuestAgent フォルダーのいずれかを OLD フォルダーに移動します。

  5. 最新バージョンの MSI エージェントをダウンロードしてインストールします。 インストールを完了するには、管理者権限が必要です。

  6. 次の MSI コマンドを使用してゲスト エージェントをインストールします。

    msiexec.exe /i c:\VMAgentMSI\WindowsAzureVmAgent.2.7.<version>.fre.msi /quiet /L*v c:\VMAgentMSI\msiexec.log
    
  7. RD エージェント、Azure VM エージェント、および Windows Azure テレメトリ サービスが実行されていることを確認します。

  8. WaAppAgent.log を確認して、最新バージョンの Azure VM エージェントが実行されていることを確認します。

  9. C:\WindowsAzure の下にある OLD フォルダーを削除します。


WireServer IP (ホスト IP) に接続できません

WaAppAgent.log と Telemetry.log には、次のエラー エントリが表示されます。

ログ情報

[ERROR] GetVersions() failed with exception: Microsoft.ServiceModel.Web.WebProtocolException: Server Error: Service Unavailable (ServiceUnavailable) ---> 
System.Net.WebException: The remote server returned an error: (503) Server Unavailable.
[00000011] [12/11/2018 06:27:55.66] [WARN]  (Ignoring) Exception while fetching supported versions from HostGAPlugin: System.Net.WebException: Unable to connect to the remote server 
---> System.Net.Sockets.SocketException: An attempt was made to access a socket in a way forbidden by its access permissions 168.63.129.16:32526
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState status, IAsyncResult asyncResult, Exception& exception)
--- End of inner exception stack trace ---
at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
at System.Net.WebClient.DownloadString(Uri address)
at Microsoft.GuestAgentHostPlugin.Client.GuestInformationServiceClient.GetVersions()
at Microsoft.WindowsAzure.GuestAgent.ContainerStateMachine.HostGAPluginUtility.UpdateHostGAPluginAvailability()`

分析

VM が Wireserver ホスト サーバーに到達できません。

解決方法

  1. Wireserver に到達できないため、リモート デスクトップを使用して VM に接続し、インターネット ブラウザーから次の URL にアクセスしてみてください。 http://168.63.129.16/?comp=versions
  2. 手順 1 の URL に到達できない場合は、ネットワーク インターフェイスを調べて、DHCP 対応として設定され、DNS があるかどうかを確認します。 ネットワーク インターフェイスの DHCP 状態を確認するには、次のコマンドを実行します。 netsh interface ip show config
  3. DHCP が無効になっている場合は、次のコマンドを実行して、黄色の値をインターフェイスの名前に変更します。 netsh interface ip set address name="Name of the interface" source=dhcp
  4. ファイアウォール、プロキシ、または IP アドレス 168.63.129.16 へのアクセスをブロックしている可能性があるその他のソースによって発生する可能性がある問題を確認します。
  5. Windows ファイアウォールまたはサード パーティ製ファイアウォールがポート 80 と 32526 へのアクセスをブロックしているかどうかを確認します。 このアドレスをブロックしない理由の詳細については、「 IP アドレス 168.63.129.16 とは」を参照してください。

ゲスト エージェントが "停止中" で停止している

WaAppAgent.log では、次のエラー エントリが表示されます。

ログ情報

[00000007] [07/18/2019 14:46:28.87] [WARN] WindowsAzureGuestAgent stopping.
[00000007] [07/18/2019 14:46:28.89] [INFO] Uninitializing StateExecutor with WaitForTerminalStateReachedOnEnd : True
[00000004] [07/18/2019 14:46:28.89] [WARN] WindowsAzureGuestAgent could not be stopped. Exception: System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.WindowsAzure.GuestAgent.ContainerStateMachine.GoalStateExecutorBase.WaitForExtensionWorkflowComplete(Boolean WaitForTerminalStateReachedOnEnd)
at Microsoft.WindowsAzure.GuestAgent.ContainerStateMachine.GoalStateExecutorBase.Uninitialize(Boolean WaitForTerminalStateReachedOnEnd)
at Microsoft.WindowsAzure.GuestAgent.ContainerStateMachine.GoalStateExecutorForCloud.Uninitialize(Boolean WaitForTerminalStateReachedOnEnd)
at Microsoft.WindowsAzure.GuestAgent.AgentCore.AgentCore.Stop(Boolean waitForTerminalState)
at Microsoft.WindowsAzure.GuestAgent.AgentCore.AgentService.DoStopService()
at Microsoft.WindowsAzure.GuestAgent.AgentCore.AgentService.<>c__DisplayClass2.<OnStopProcessing>b__1()

分析

Azure VM エージェントが停止プロセスでスタックしています。

解決方法

  1. VM でWaAppAgent.exeが実行されていることを確認します。 実行されていない場合は、 rdagent サービスを再起動し、5 分待ちます。 WaAppAgent.exeが実行されている場合は、WindowsAzureGuest.exe プロセスを終了します。
  2. 手順 1 で問題が解決しない場合は、現在インストールされているバージョンを削除し、エージェントの最新バージョンを手動でインストールします。

Npcap ループバック アダプター

WaAppAgent.log では、次のエラー エントリが表示されます。

[00000006] [06/20/2019 07:44:28.93] [INFO]  Attempting to discover fabric address on interface Npcap Loopback Adapter.
[00000024] [06/20/2019 07:44:28.93] [WARN]  Empty DHCP option data returned
[00000006] [06/20/2019 07:44:28.93] [ERROR] Did not discover fabric address on interface Npcap Loopback Adapter

分析

Npcap ループバック アダプターは Wireshark によって VM にインストールされます。 Wireshark は、ネットワーク トラフィックをプロファイリングし、パケットを分析するためのオープンソース ツールです。 このようなツールは、多くの場合、ネットワーク アナライザー、ネットワーク プロトコル アナライザー、またはスニファと呼ばれます。

解決方法

Npcap ループバック アダプターは、WireShark によってインストールされる可能性があります。 無効にしてから、問題が解決されているかどうかを確認してください。


RPC の問題

WaAppAgent.log では、次のエラー エントリが表示されます。

[00000004] [01/12/2019 00:30:47.24] [ERROR] RdCrypt Initiailization failed. Error Code: -2147023143.
[00000004] [01/12/2019 00:30:47.24] [ERROR] Failed to get TransportCertificate. Error: System.AccessViolationException
Microsoft.Cis.Fabric.CertificateServices.RdCertificateFactory.Shutdown()
[00000004] [01/12/2019 00:30:47.24] [WARN]  Could not get transport certificate from agent runtime for subject name: 12345678-d7c8-4387-8cf3-d7ecf62544e5. Installing certificates in the LocalMachine store failed.
[00000004] [01/12/2019 00:30:47.24] [WARN] Fetching certificate blob from the cert URI: http://168.63.129.16/machine/12345678-d7c8-4387-8cf3-d7ecf62544e5/12345678-d447-4b10-a5da-1ba1581cd7d7._VMName?comp=certificates&incarnation=2 failed with exception: System.NullReferenceException
-2147023143 = 0x6d9 = EPT_S_NOT_REGISTERED

分析

これは、RPC エンドポイントがリッスンしていないか、一方の側に存在しない RPC プロセスが原因である可能性があります。

解決方法

次のコマンドを実行して、"CNGKEYISO" Windows サービスが RPC エンドポイントの一覧に含まれているかどうかを確認します。

portqry -n <VMName> -e 135

"CNGKEYISO" プロセスが表示されない場合は、Windows サービス コンソール (CNG キー分離 = KeyIso) から開始し、WaAppAgent.exe/WindowsAzureGuestAgent.exeを再起動してください。


PInvoke PFXImportCertStore が失敗し、null ハンドルが返されます。 エラー コード: 86。

この場合、Windows ゲスト エージェントが実行されているのに拡張機能が動作していないことがわかります。 WaAppAgent.log では、次のエラー エントリが表示されます。

PInvoke PFXImportCertStore failed and null handle is returned. Error Code: 86

[00000003] [10/21/2020 02:37:45.98] [WARN]  Could not get transport certificate from agent runtime for subject name: 12345678-dae3-4c2f-be57-55c0ab7a44e5. Installing certificates in the LocalMachine store failed.
[00000003] [10/21/2020 02:37:45.98] [ERROR] Installing certificates in the LocalMachine store failed with exception: Microsoft.WindowsAzure.GuestAgent.CertificateManager.CryptographyNative+PInvokeException: PInvoke PFXImportCertStore failed and null handle is returned. Error Code: 86.

分析

これは、ほとんどの場合、SYSTEM アカウントの Crypto フォルダーに対するアクセス許可がないために発生します。 GA サービス (RDAgent/WindowsAzureGuestAgent) の再起動中に Procmon トレースを収集すると、一部のアクセスが拒否されます。

解決方法

SYSTEM アカウントに、次のフォルダーに対するフル コントロールアクセス許可があることを確認します。

  • C:\ProgramData\Microsoft\Crypto\Keys

  • C:\ProgramData\Microsoft\Crypto\RSA

  • C:\ProgramData\Microsoft\Crypto\SystemKeys


System.BadImageFormatException: 正しくない形式のプログラムを読み込もうとしました。 (HRESULT からの例外: 0x8007000B)

WaAppAgent.log に次のエラー エントリが表示され、ゲスト エージェントがクラッシュしています。

[00000018] 2021-01-12T16:35:45Z [INFO]  Test extract the plugin zip file to the temp folder C:\TEMP\12345678-5f85-45dc-9f17-55be1fde7b10
[00000010] 2021-01-12T16:35:45Z [ERROR] InstallPlugins() failed with exception: System.AggregateException: One or more errors occurred. ---> System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
   at Microsoft.WindowsAzure.GuestAgent.ExtensionStateMachine.PluginInstaller.PackageExpand(String packageFilePath, String destinationPath)
   at Microsoft.WindowsAzure.GuestAgent.ExtensionStateMachine.PluginInstaller.ValidateExtensionZipFile(String pluginName, String pluginVersion, String& pluginZipFile)

分析

サード パーティ製アプリケーションが VM にインストールされ、32 ビット/64 ビット .Net アプリケーションの動作が変更された可能性があります。

BadImageFormationException は、64 ビット アプリケーションが 32 ビット DLL を読み込むときに発生します。

解決方法

レジストリを開き、次のキーを確認します。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Enable64Bit

0 に設定されている場合、64 ビット .Net アプリケーションは 32 ビット アプリケーションと見なされます。 これは機能しません。

解決策は、Enable64Bit キーを 1 に設定し、VM を再起動することです。


次の手順

Azure VM エージェントに関するその他の既知の問題は、 GitHub リポジトリに一覧表示されます。

"Azure VM エージェントが動作していません" の問題のトラブルシューティングを行うには、サポートMicrosoft問い合わせてください

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure コミュニティ サポートに製品フィードバックを送信することもできます。