この記事では、AZURE Virtual Machines と Azure Virtual Machine Scale Sets 上の IIS でホストされる ASP.NET および ASP.NET Core アプリケーションの自動侵入によって Azure MonitorApplication Insights の監視を有効にする方法について説明します。 仮想マシン拡張機能を使用して Application Insights エージェントをデプロイする方法について説明します。これは 、SDK と同じ依存関係シグナルを自動収集し、PowerShell を使用して大規模なデプロイを自動化するためのガイダンスを提供します。
サポートされている自動インストルメンテーション シナリオの全一覧については、「サポートされている環境、言語、リソース プロバイダー」を参照してください。
[前提条件]
Application Insights エージェント拡張機能をインストールする前に、接続文字列が必要です。 新しい Application Insights リソースを作成 するか、既存のリソースから接続文字列をコピーします。
仮想マシンの監視を有効にする
Azure portal または PowerShell を使用して、VM の監視を有効にすることができます。
Azure portal で、お使いの Application Insights リソースに移動します。 接続文字列をクリップボードにコピーします。
仮想マシンに移動します。 左側のメニューの [設定] セクションで、[拡張機能とアプリケーション]>[追加] を選択します。
[Application Insights エージェント]>[次へ] を選択します。
手順 1 でコピーした接続文字列を貼り付け、[確認と作成] を選択します。
注意
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
注意
さらに複雑で大規模なデプロイの場合は、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 を使用して、仮想マシン スケール セットの監視を有効にすることができます。
VM の場合の上記の手順に従いますが、VM ではなく仮想マシン スケール セットに移動します。
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
よく寄せられる質問
ASP.NET Core アプリのクライアント側の監視を無効にする方法
ASP.NET Core アプリの既定では、クライアント側の監視が有効になっています。 無効にする場合は、次の情報を使用してサーバーに環境変数を定義します。
- 名前:
APPINSIGHTS_JAVASCRIPT_ENABLED
- 値:
false
トラブルシューティング
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 の自動インストルメンテーション機能を追加しました。
次のステップ