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 または Java ベースの Web アプリケーションに対する監視を有効にすることが、従来より簡単になりました。Enabling monitoring for your .NET or Java 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.

重要

Azure VM と VMSS で実行されている Java ベースのアプリケーションは、 Application Insights Java 3.0 エージェント (一般公開) で監視されます。Java based applications running on Azure VMs and VMSS are monitored with Application Insights Java 3.0 agent, which is generally available.

重要

Azure VM と VMSS で実行される ASP.NET アプリケーション用の Azure Application Insights エージェントは、現在パブリック プレビューの段階にあります。Azure Application Insights Agent for ASP.NET applications running on Azure VMs and VMSS is currently in public preview. オンプレミス で実行されている ASP.Net アプリケーションを監視するには、オンプレミス サーバー用の Azure Application Insights エージェントを使用します。これは一般提供されていて完全にサポートされます。For monitoring your ASP.Net applications running on-premises, use the Azure Application Insights Agent for on-premises servers, which is generally available and fully supported. Azure VM と VMSS のプレビュー バージョンはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードに使用することはお勧めしません。The preview version for Azure VMs and VMSS 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 エージェントを使用した自動インストルメンテーションAuto-instrumentation 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.

注意

自動インストルメンテーションは、現在、.NET IIS でホストされているアプリケーションと Java でのみ使用できます。Auto-instrumentation is currently only available for .NET IIS-hosted applications and Java. Azure 仮想マシンと仮想マシン スケール セット上でホストされている ASP.NET Core、Node.js、Python アプリケーションをインストルメント化するには、SDK を使用します。Use an SDK to instrument ASP.NET Core, Node.js, and Python applications hosted on an Azure virtual machines and virtual machine scale sets.

.NET.NET

  • 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.

JavaJava

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

.NET.NET

  • .NET アプリの場合、このアプローチはカスタマイズできる部分がはるかに多いのですが、Application Insights SDK NuGet パッケージへの依存関係を追加する必要があります。For .NET apps, this approach is much more customizable, but it requires adding a dependency on the Application Insights SDK NuGet packages. また、この方法では、最新バージョンのパッケージへの更新を自分で管理する必要があります。This method, also means you have to manage the updates to the latest version of the packages yourself.

  • エージェントベースの監視の既定ではキャプチャされないイベント/依存関係を追跡するためにカスタム API 呼び出しを行う必要がある場合は、この方法を使用する必要があります。If you need to make custom API calls to track events/dependencies not captured by default with agent-based monitoring, you would need to use this method. 詳細については、カスタムのイベントとメトリックのための API に関する記事を参照してください。Check out the API for custom events and metrics article to learn more.

    注意

    .NET アプリの場合のみ - エージェント ベースの監視と手動の SDK ベースのインストルメンテーションの両方が検出された場合は、手動のインストルメンテーション設定のみが受け付けられます。For .NET apps only - 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.

.NET Core.NET Core

.NET Core アプリケーションを監視するには、SDK を使用します。To monitor .NET Core applications, use the SDK

JavaJava

Java アプリケーションに対して追加のカスタム テレメトリが必要な場合は、使用可能なものの確認、カスタム ディメンションの追加、またはテレメトリ プロセッサの使用のいずれかを行います。If you need additional custom telemetry for Java applications, see what is available, add custom dimensions, or use telemetry processors.

Node.jsNode.js

Node.js アプリケーションをインストルメント化するには、SDK を使用します。To instrument your Node.js application, use the SDK.

PythonPython

Python アプリを監視するには、SDK を使用します。To monitor Python apps, use the SDK.

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 a connection string. 新しい Application Insights リソースを作成するか、既存の Application Insights リソースから接続文字列をコピーします。Create a new Application Insights Resource or copy the connection string 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": ".*",
          "virtualPathFilter": ".*",
          "instrumentationSettings" : {
            "connectionString": "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 connection string 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"= ".*";
          "virtualPathFilter": ".*",
          "instrumentationSettings" : {
            "connectionString": "InstrumentationKey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # Application Insights connection string, 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、Node.js、および Python アプリケーションは、手動の SDK ベースのインストルメンテーションを通して Azure 仮想マシンおよび Azure 仮想マシン スケール セット上でのみサポートされているため、下の手順はこれらのシナリオには適用されせん。.NET Core, Node.js, and Python 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