Azure VM 및 가상 머신 확장 집합에 대한 Application Insights

이제 Azure Virtual MachinesAzure 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에 사용할 수 있습니다. SDK를 사용하여 Azure 가상 머신 및 가상 머신 확장 집합에서 호스트되는 Node.js 및 Python 애플리케이션을 계측할 수 있습니다.

Application Insights 에이전트는 SDK와 동일한 종속성 신호를 기본적으로 자동 수집합니다. 자세한 내용은 종속성 자동 수집을 참조하세요.

Application Insights 에이전트 확장을 설치하기 전에 연결 문자열이 필요합니다. 새 Application Insights 리소스를 만들거나 기존 Application Insights 리소스에서 연결 문자열을 복사합니다.

가상 머신에 대한 모니터링 사용

Azure Portal 또는 PowerShell을 사용하여 VM에 대한 모니터링을 사용하도록 설정할 수 있습니다.

Azure Portal

  1. Azure Portal에서, Application Insights 리소스로 이동합니다. 연결 문자열을 클립보드에 복사합니다.

    연결 문자열을 표시하는 스크린샷.

  2. 가상 머신으로 이동합니다. 왼쪽 메뉴의 설정 섹션에서 확장 + 애플리케이션>추가를 선택합니다.

    추가 버튼이 있는 확장 + 애플리케이션 창을 표시하는 스크린샷.

  3. Application Insights 에이전트>다음을 선택합니다.

    다음 버튼이 있는 확장 설치 창을 표시하는 스크린샷.

  4. 1단계에서 복사한 연결 문자열을 붙여넣고 검토 + 만들기를 선택합니다.

    검토 + 만들기 버튼이 있는 만들기 탭을 표시하는 스크린샷.

PowerShell

참고 항목

PowerShell을 처음 접하시나요? 시작 가이드를 확인하세요.

다음과 같이 Azure 가상 머신에 대한 확장으로 Application Insights 에이전트를 설치하거나 업데이트합니다.

# 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 Virtual Machine에서 Application Insights 에이전트 확장을 제거합니다.

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

참고 항목

Application Insights 에이전트 확장을 배포하는 데 사용한 연결 문자열과 연결된 Application Insights 리소스 내의 라이브 메트릭 스트림을 선택하여 설치를 확인합니다. 여러 가상 머신에서 데이터를 보내는 경우 서버 이름 아래에서 대상 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 Virtual Machines 및 Virtual Machine Scale Sets에서 실행되는 .NET 애플리케이션용 Application Insights 모니터링 에이전트 확장에 대한 문제 해결 팁을 확인하세요.

확장을 배포하는 데 문제가 있는 경우 다음 디렉터리에 있는 파일에 기록된 실행 출력을 검토합니다.

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

확장이 성공적으로 배포되었지만 원격 분석을 볼 수 없는 경우 에이전트 문제 해결에서 다루는 다음 문제 중 하나일 수 있습니다.

  • 앱의 bin 디렉터리에서 충돌하는 DLL
  • IIS 공유 구성과 충돌

애플리케이션 호스트와 수집 서비스 간의 연결 테스트

Application Insights SDK 및 에이전트는 수집 엔드포인트에 대한 REST 호출로 수집하기 위해 원격 분석을 보냅니다. PowerShell 또는 curl 명령의 원시 REST 클라이언트를 사용하여 웹 서버 또는 애플리케이션 호스트 컴퓨터에서 수집 서비스 엔드포인트로의 연결을 테스트할 수 있습니다. Azure Monitor Application Insights에서 누락된 애플리케이션 원격 분석 문제 해결을 참조하세요.

릴리스 정보

2.8.44

  • Application Insights .NET/.NET Core SDK를 2.20.1로 업데이트함 - 빨간색 필드
  • SQL 쿼리 컬렉션을 사용하도록 설정했습니다.
  • Microsoft Entra 인증에 대한 지원을 사용하도록 설정했습니다.

2.8.42

Application Insights .NET/.NET Core SDK를 2.18.1로 업데이트함 - 빨간색 필드

2.8.41

ASP.NET Core 자동 계측 기능이 추가되었습니다.

다음 단계