Azure 仮想マシンと Azure 仮想マシン スケール セットに Azure Monitor Application Insights エージェントをデプロイするDeploy the Azure Monitor Application Insights Agent on Azure virtual machines and Azure virtual machine scale sets

Azure 仮想マシンAzure 仮想マシン スケール セット上で実行されている .NET ベースの Web アプリケーションに対する監視を有効にすることが、従来より簡単になりました。Enabling monitoring on your .NET based web applications running on Azure virtual machines and Azure virtual machine scale sets is now easier than ever. コードを変更することなく、Application Insights を使用する利点のすべてが得られます。Get all the benefits of using Application Insights without modifying your code.

この記事では、Application Insights エージェントを使用した Application Insights 監視の有効化について説明した後、大規模なデプロイのプロセスを自動化するための事前ガイダンスを提供します。This article walks you through enabling Application Insights monitoring using the Application Insights Agent and provides preliminary guidance for automating the process for large-scale deployments.

重要

.NET 用の Azure Application Insights エージェントは、現在、パブリック プレビュー段階です。Azure Application Insights Agent for .NET is currently in public preview. このプレビュー バージョンはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードに使用することは推奨されません。This preview version is provided without a service-level agreement, and we don't recommend it for production workloads. 一部の機能は、サポートされていなかったり、制限されていたりする場合があります。Some features might not be supported, and some might have constrained capabilities. 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Application Insights を有効にするEnable Application Insights

Azure 仮想マシンと Azure 仮想マシン スケール セットでホストされるアプリケーションに対するアプリケーション監視を有効にする方法には、次の 2 つがあります。There are two ways to enable application monitoring for Azure virtual machines and Azure virtual machine scale sets hosted applications:

  • コード不要 (Application Insights エージェントを使用)Codeless via Application Insights Agent

    • 有効にするにはこの方法が最も簡単であり、高度な構成は不要です。This method is the easiest to enable, and no advanced configuration is required. 多くの場合、これは "ランタイム" 監視と呼ばれます。It is often referred to as "runtime" monitoring.

    • Azure 仮想マシンと Azure 仮想マシン スケール セットの場合は、少なくともこのレベルの監視を有効にすることをお勧めします。For Azure virtual machines and Azure virtual machine scale sets we recommend at a minimum enabling this level of monitoring. その後、特定のシナリオに基づいて、手動のインストルメンテーションが必要かどうかを評価できます。After that, based on your specific scenario, you can evaluate whether manual instrumentation is needed.

    • Application Insights エージェントでは、.NET SDK と同じ依存関係のシグナルを既定で自動的に収集します。The Application Insights Agent auto-collects the same dependency signals out-of-the-box as the .NET SDK. 詳細については、「依存関係の自動収集」を参照してください。See Dependency auto-collection to learn more.

      注意

      現在は、.Net IIS でホストされたアプリケーションのみがサポートされています。Currently only .Net IIS-hosted applications are supported. SDK を使用して、Azure 仮想マシンと仮想マシン スケール セット上でホストされている ASP.NET Core、Java、Node.js アプリケーションをインストルメント化します。Use an SDK to instrument ASP.NET Core, Java, and Node.js applications hosted on an Azure virtual machines and virtual machine scale sets.

  • コードベース (SDK を使用)Code-based via SDK

注意

エージェント ベースの監視と手動の SDK ベースのインストルメンテーションの両方が検出された場合は、手動のインストルメンテーション設定のみが受け付けられます。If both agent based monitoring and manual SDK based instrumentation is detected only the manual instrumentation settings will be honored. これは、重複したデータが送信されないようにするためです。This is to prevent duplicate data from being sent. このチェックアウトの詳細については、以下の「トラブルシューティング」セクションを参照してください。To learn more about this check out the troubleshooting section below.

PowerShell を使用して、Azure 仮想マシン上で .NET アプリケーションの Application Insights エージェントを管理するManage Application Insights Agent for .NET applications on Azure virtual machines using PowerShell

注意

Application Insights エージェントをインストールする前に、インストルメンテーション キーが必要になります。Before installing the Application Insights Agent, you'll need an instrumentation key. 新しい Application Insights リソースを作成するか、既存の Application Insights リソースからインストルメンテーション キーをコピーします。Create a new Application Insights Resource or copy the instrumentation key from an existing application insights resource.

注意

PowerShell の新機能については、New to powershell? 使用開始ガイドを確認してください。Check out the Get Started Guide.

Application Insights エージェントを Azure 仮想マシンの拡張機能としてインストールまたは更新するInstall or update the Application Insights Agent as an extension for Azure virtual machines

$publicCfgJsonString = '
{
  "redfieldConfiguration": {
    "instrumentationKeyMap": {
      "filters": [
        {
          "appFilter": ".*",
          "machineFilter": ".*",
          "instrumentationSettings" : {
            "instrumentationKey": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
          }
        }
      ]
    }
  }
}
';
$privateCfgJsonString = '{}';

Set-AzVMExtension -ResourceGroupName "<myVmResourceGroup>" -VMName "<myVmName>" -Location "<myVmLocation>" -Name "ApplicationMonitoring" -Publisher "Microsoft.Azure.Diagnostics" -Type "ApplicationMonitoringWindows" -Version "2.8" -SettingString $publicCfgJsonString -ProtectedSettingString $privateCfgJsonString

注意

Application Insights エージェントは、PowerShell ループを使用して、複数の仮想マシンに大規模にまたがる拡張機能としてインストールまたは更新することができます。You may install or update the Application Insights Agent as an extension across multiple Virtual Machines at-scale using a Powershell loop.

Azure 仮想マシンから Application Insights エージェント拡張機能をアンインストールするUninstall Application Insights Agent extension from Azure virtual machine

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

Azure 仮想マシンに対する Application Insights エージェント拡張機能の状態にクエリを実行するQuery Application Insights Agent extension status for Azure virtual machine

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

Azure 仮想マシンに対してインストールされている拡張機能の一覧を取得するGet list of installed extensions for Azure virtual machine

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

# Name              : ApplicationMonitoring
# ResourceGroupName : <myVmResourceGroup>
# ResourceType      : Microsoft.Compute/virtualMachines/extensions
# Location          : southcentralus
# ResourceId        : /subscriptions/<mySubscriptionId>/resourceGroups/<myVmResourceGroup>/providers/Microsoft.Compute/virtualMachines/<myVmName>/extensions/ApplicationMonitoring

また、ポータルの Azure 仮想マシン ブレードで、インストールされている拡張機能を表示することもできます。You may also view installed extensions in the Azure virtual machine blade in the Portal.

注意

インストールを確認するには、Application Insights エージェント拡張機能のデプロイに使用したインストルメンテーション キーに関連付けられている、Application Insights リソース内の Live Metrics Stream をクリックします。Verify installation by clicking on Live Metrics Stream within the Application Insights Resource associated with the instrumentation key you used to deploy the Application Insights Agent Extension. 複数の仮想マシンからデータを送信する場合は、[サーバー名] でターゲット Azure 仮想マシンを選択します。If you are sending data from multiple Virtual Machines, select the target Azure virtual machines under Server Name. データのフローが開始されるまでに最大で 1 分かかる場合があります。It may take up to a minute for data to begin flowing.

PowerShell を使用して、Azure 仮想マシン スケール セットで .NET アプリケーションの Application Insights エージェントを管理するManage Application Insights Agent for .NET applications on Azure virtual machine scale sets using powershell

Application Insights エージェントを Azure 仮想マシン スケール セットの拡張機能としてインストールまたは更新するInstall or update the Application Insights Agent as an extension for Azure virtual machine scale set

$publicCfgHashtable =
@{
  "redfieldConfiguration"= @{
    "instrumentationKeyMap"= @{
      "filters"= @(
        @{
          "appFilter"= ".*";
          "machineFilter"= ".*";
          "instrumentationSettings"= @{
            "instrumentationKey"= "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; # Application Insights Instrumentation Key, create new Application Insights resource if you don't have one. https://ms.portal.azure.com/#blade/HubsExtension/BrowseResourceBlade/resourceType/microsoft.insights%2Fcomponents
          }
        }
      )
    }
  }
};
$privateCfgHashtable = @{};

$vmss = Get-AzVmss -ResourceGroupName "<myResourceGroup>" -VMScaleSetName "<myVmssName>"

Add-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "ApplicationMonitoring" -Publisher "Microsoft.Azure.Diagnostics" -Type "ApplicationMonitoringWindows" -TypeHandlerVersion "2.8" -Setting $publicCfgHashtable -ProtectedSetting $privateCfgHashtable

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 仮想マシン スケール セットからアプリケーション監視拡張機能をアンインストールするUninstall application monitoring extension from Azure virtual machine scale sets

$vmss = Get-AzVmss -ResourceGroupName "<myResourceGroup>" -VMScaleSetName "<myVmssName>"

Remove-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "ApplicationMonitoring"

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 仮想マシン スケール セットに対するアプリケーション監視拡張機能の状態にクエリを実行するQuery application monitoring extension status for Azure virtual machine scale sets

# Not supported by extensions framework

Azure 仮想マシン スケール セットに対してインストールされている拡張機能の一覧を取得するGet list of installed extensions for Azure virtual machine scale sets

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

# Name              : ApplicationMonitoringWindows
# ResourceGroupName : <myResourceGroup>
# ResourceType      : Microsoft.Compute/virtualMachineScaleSets/extensions
# Location          :
# ResourceId        : /subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.Compute/virtualMachineScaleSets/<myVmssName>/extensions/ApplicationMonitoringWindows

トラブルシューティングTroubleshooting

Azure 仮想マシンと仮想マシン スケール セット上で実行されている、.NET アプリケーション用の Application Insights 監視エージェント拡張機能のトラブルシューティングに関するヒントを見つけます。Find troubleshooting tips for Application Insights Monitoring Agent Extension for .NET applications running on Azure virtual machines and virtual machine scale sets.

注意

.NET Core、Java、および Node.js アプリケーションは、手動の SDK ベースのインストルメンテーションを通して Azure 仮想マシンおよび Azure 仮想マシン スケール セット上でのみサポートされているため、下の手順はこれらのシナリオには適用されせん。.NET Core, Java, and Node.js applications are only supported on Azure virtual machines and Azure virtual machine scale sets via manual SDK based instrumentation and therefore the steps below do not apply to these scenarios.

拡張機能の実行の出力は、次のディレクトリ内のファイルにログ記録されます。Extension execution output is logged to files found in the following directories:

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

次の手順Next steps