Azure VM および仮想マシン スケール セットのための Application Insights

Azure Virtual Machines または Azure Virtual Machine Scale Sets 上で実行されている、ASP.NET および ASP.NET Core IIS でホストされたアプリケーションの監視を有効にすることが、従来より簡単になりました。 コードを変更することなく、Application Insights を使用する利点のすべてが得られます。

この記事では、Application Insights エージェントを使用して Application Insights 監視を有効にする方法について説明します。 また、大規模なデプロイのプロセスを自動化するための予備的なガイダンスも提供します。

Application Insights を有効にする

自動インストルメンテーションは簡単に有効にできます。 高度な構成は必要ありません。

サポートされている自動インストルメンテーション シナリオの全一覧については、「サポートされている環境、言語、リソース プロバイダー」を参照してください。

注意

自動インストルメンテーションは、ASP.NET、ASP.NET Core の IIS でホストされているアプリケーション、Java で使用できます。 Azure 仮想マシンおよび仮想マシン スケール セット上でホストされている Node.js および Python アプリケーションをインストルメント化するには、SDK を使用します。

Application Insights エージェントでは、SDK と同じ依存関係のシグナルを既定で自動的に収集します。 詳細については、「依存関係の自動収集」を参照してください。

Application Insights エージェント拡張機能をインストールする前に、接続文字列が必要になります。 新しい Application Insights リソースを作成するか、既存の Application Insights リソースから接続文字列をコピーします。

仮想マシンの監視を有効にする

Azure portal または PowerShell を使用して、VM の監視を有効にすることができます。

Azure portal

  1. Azure portal で、お使いの Application Insights リソースに移動します。 接続文字列をクリップボードにコピーします。

    Screenshot that shows the connection string.

  2. 仮想マシンに移動します。 左側のメニューの [設定] セクションで、[拡張機能とアプリケーション]>[追加] を選択します。

    Screenshot that shows the Extensions + applications pane with the Add button.

  3. [Application Insights エージェント]>[次へ] を選択します。

    Screenshot that shows the Install an Extension pane with the Next button.

  4. 手順 1 でコピーした接続文字列を貼り付け、[確認と作成] を選択します。

    Screenshot that shows the Create tab with the Review + create button.

PowerShell

注意

PowerShell を初めて使用しますか? 作業の開始ガイドを確認してください。

Application Insights エージェントを Azure 仮想マシンの拡張機能としてインストールまたは更新します。

# define variables to match your environment before running
$ResourceGroup = "<myVmResourceGroup>"
$VMName = "<myVmName>"
$Location = "<myVmLocation>"
$ConnectionString = "<myAppInsightsResourceConnectionString>"

$publicCfgJsonString = @"
{
    "redfieldConfiguration": {
        "instrumentationKeyMap": {
        "filters": [
            {
            "appFilter": ".*",
            "machineFilter": ".*",
            "virtualPathFilter": ".*",
            "instrumentationSettings" : {
                "connectionString": "$ConnectionString"
            }
            }
        ]
        }
    }
    }
"@

$privateCfgJsonString = '{}'
	
Set-AzVMExtension -ResourceGroupName $ResourceGroup -VMName $VMName -Location $Location -Name "ApplicationMonitoringWindows" -Publisher "Microsoft.Azure.Diagnostics" -Type "ApplicationMonitoringWindows" -Version "2.8" -SettingString $publicCfgJsonString -ProtectedSettingString $privateCfgJsonString

Note

さらに複雑で大規模なデプロイの場合は、PowerShell のループを使って、複数の VM で Application Insights エージェント拡張機能をインストールまたは更新することができます。

Azure 仮想マシンの Application Insights エージェント拡張機能の状態のクエリを実行します。

Get-AzVMExtension -ResourceGroupName "<myVmResourceGroup>" -VMName "<myVmName>" -Name ApplicationMonitoringWindows -Status

Azure 仮想マシンにインストールされている拡張機能の一覧を取得します。

Get-AzResource -ResourceId "/subscriptions/<mySubscriptionId>/resourceGroups/<myVmResourceGroup>/providers/Microsoft.Compute/virtualMachines/<myVmName>/extensions"

Azure 仮想マシンから Application Insights エージェント拡張機能をアンインストールします。

Remove-AzVMExtension -ResourceGroupName "<myVmResourceGroup>" -VMName "<myVmName>" -Name "ApplicationMonitoring"

注意

インストールを確認するには、Application Insights エージェント拡張機能のデプロイに使用した接続文字列に関連付けられている、Application Insights リソース内の Live Metrics Stream を選択します。 複数の仮想マシンからデータを送信する場合は、[サーバー名] でターゲットの Azure 仮想マシンを選びます。 データのフローが開始されるまでに最大で 1 分かかる場合があります。

仮想マシン スケール セットの監視を有効にする

Azure portal または PowerShell を使用して、仮想マシン スケール セットの監視を有効にすることができます。

Azure portal

VM の場合の上記の手順に従いますが、VM ではなく仮想マシン スケール セットに移動します。

PowerShell

Application Insights エージェントを仮想マシン スケール セットの拡張機能としてインストールまたは更新します。

# Set resource group, vmss name, and connection string to reflect your environment
$ResourceGroup = "<myVmResourceGroup>"
$VMSSName = "<myVmName>"
$ConnectionString = "<myAppInsightsResourceConnectionString>"
$publicCfgHashtable =
@{
  "redfieldConfiguration"= @{
    "instrumentationKeyMap"= @{
      "filters"= @(
        @{
          "appFilter"= ".*";
          "machineFilter"= ".*";
          "virtualPathFilter"= ".*";
          "instrumentationSettings" = @{
            "connectionString"= "$ConnectionString"
          }
        }
      )
    }
  }
};
$privateCfgHashtable = @{};
$vmss = Get-AzVmss -ResourceGroupName $ResourceGroup -VMScaleSetName $VMSSName
Add-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "ApplicationMonitoringWindows" -Publisher "Microsoft.Azure.Diagnostics" -Type "ApplicationMonitoringWindows" -TypeHandlerVersion "2.8" -Setting $publicCfgHashtable -ProtectedSetting $privateCfgHashtable
Update-AzVmss -ResourceGroupName $vmss.ResourceGroupName -Name $vmss
# Note: Depending on your update policy, you might need to run Update-AzVmssInstance for each instance

仮想マシン スケール セットにインストールされている拡張機能の一覧を取得する。

Get-AzResource -ResourceId "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.Compute/virtualMachineScaleSets/<myVmssName>/extensions"

仮想マシン スケール セットからアプリケーション監視拡張機能をアンインストールする。

# set resource group and vmss name to reflect your environment
$vmss = Get-AzVmss -ResourceGroupName "<myResourceGroup>" -VMScaleSetName "<myVmssName>"
Remove-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "ApplicationMonitoringWindows"
Update-AzVmss -ResourceGroupName $vmss.ResourceGroupName -Name $vmss.Name -VirtualMachineScaleSet $vmss
# Note: Depending on your update policy, you might need to run Update-AzVmssInstance for each instance

トラブルシューティング

Azure 仮想マシンと仮想マシン スケール セット上で実行されている、.NET アプリケーション用の Application Insights 監視エージェント拡張機能のトラブルシューティングに関するヒントを見つけます。

拡張機能のデプロイで問題が発生する場合は、次のディレクトリにあるファイルにログされた、実行の出力を確認してください。

C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.ApplicationMonitoringWindows\<version>\

拡張機能が正常にデプロイされているのに、テレメトリを表示できない場合は、エージェントのトラブルシューティングに関する記事で説明されている次のいずれかの問題である可能性があります。

  • アプリの bin ディレクトリでの DLL の競合
  • IIS 共有構成との競合

アプリケーション ホストとインジェスト サービスの間の接続をテストする

Application Insights SDK とエージェントからテレメトリが送信され、インジェスト エンドポイントへの REST 呼び出しとして取り込まれます。 Web サーバーまたはアプリケーション ホスト マシンからインジェスト サービス エンドポイントへの接続は、PowerShell の生の REST クライアントを使用するか、curl コマンドを使用してテストできます。 「Azure Monitor Application Insights でアプリケーション テレメトリが見つからない場合のトラブルシューティング」をご覧ください。

リリース ノート

2.8.44

  • Application Insights .NET/.NET Core SDK を 2.20.1 - red field に更新しました。
  • SQL クエリ コレクションを有効にしました。
  • Microsoft Entra 認証に対して有効なサポート。

2.8.42

Application Insights .NET/.NET Core SDK を 2.18.1 - red field に更新しました。

2.8.41

ASP.NET Core の自動インストルメンテーション機能を追加しました。

次のステップ