다음을 통해 공유


작업 영역 기반 Application Insights 리소스로 마이그레이션

이 문서에서는 클래식 Application Insights 리소스를 작업 영역 기반 리소스로 마이그레이션하는 과정을 안내합니다.

작업 영역 기반 리소스:

  • Application Insights와 Log Analytics 간의 완전한 통합을 지원합니다.
  • Application Insights 원격 분석을 공통 Log Analytics 작업 영역으로 보냅니다.
  • 애플리케이션, 인프라 및 플랫폼 로그를 통합된 위치에 유지하면서 Azure Monitor의 최신 기능에 액세스할 수 있습니다.
  • 리소스 전체에서 공통 Azure 역할 기반 액세스 제어를 사용하도록 설정합니다.
  • 앱/워크스페이스 간 쿼리의 필요성을 제거합니다.
  • 모든 상용 지역 및 Azure 미국 정부에서 사용 가능합니다.
  • 클래식 리소스에서 마이그레이션한 후 계측 키를 변경할 필요가 없습니다.

새로운 기능

작업 영역 기반 Application Insights 리소스를 사용하면 Azure Monitor 및 Log Analytics의 최신 기능을 활용할 수 있습니다.

  • 고객 관리형 키는 사용자만 액세스할 수 있는 암호화 키를 사용하여 미사용 데이터 암호화를 제공합니다.
  • Azure Private Link를 사용하면 프라이빗 엔드포인트를 사용하여 Azure PaaS(서비스 제공 플랫폼)를 가상 네트워크에 안전하게 연결할 수 있습니다.
  • 프로파일러 및 스냅샷 디버거 BYOS(Bring Your Own Storage)를 사용하면 다음을 완벽하게 제어할 수 있습니다.
    • 미사용 암호화 정책.
    • 수명 관리 정책.
    • Application Insights Profiler 및 스냅샷 디버거와 연결된 모든 데이터에 대한 네트워크 액세스.
  • 약정 계층을 사용하면 종량제 가격에 비해 비용을 30%를 절약할 수 있습니다. 그렇지 않으면 Log Analytics의 종량제 데이터 수집 및 데이터 보존에 대한 청구는 Application Insights의 청구와 유사합니다.
  • 데이터는 Log Analytics 스트리밍 수집을 통해 더 빠르게 수집됩니다.

참고 항목

작업 영역 기반 Application Insights 리소스로 마이그레이션한 후 여러 Application Insights 리소스의 원격 분석이 공통 Log Analytics 작업 영역에 저장될 수 있습니다. 로그 쿼리 이해 섹션에 설명된 대로 여전히 특정 Application Insights 리소스에서 데이터를 가져올 수 있습니다.

마이그레이션 프로세스

작업 영역 기반 리소스로 마이그레이션하면 클래식 리소스의 스토리지에서 새 작업 영역 기반 스토리지로 데이터가 전송되지 않습니다. 마이그레이션을 선택하면 클래식 리소스 데이터에 대한 액세스를 유지하면서 새 데이터가 Log Analytics 작업 영역에 기록되는 위치가 변경됩니다.

클래식 리소스 데이터는 지속되며 클래식 Application Insights 리소스의 보존 설정이 적용됩니다. 마이그레이션 후 수집되는 모든 새 데이터에는 연결된 Log Analytics 작업 영역의 보존 설정이 적용됩니다. 이는 데이터 형식에 따라 다른 보존 설정도 지원합니다.

마이그레이션 프로세스는 영구적이며 되돌릴 수 없습니다. 리소스를 작업 영역 기반 Application Insights로 마이그레이션하면 항상 작업 영역 기반 리소스가 됩니다. 마이그레이션한 후에는 필요에 따라 자주 대상 작업 영역을 변경할 수 있습니다.

기존 리소스를 마이그레이션할 필요가 없으며 대신 새 작업 영역 기반 Application Insights 리소스를 만들려는 경우에는 작업 영역 기반 리소스 생성 가이드를 사용합니다.

참고 항목

마이그레이션 프로세스는 애플리케이션 가동 중지 시간을 유발하지 않으며, 다시 시작되거나 기존 계측 키 또는 연결 문자열을 변경해서는 안 됩니다.

필수 조건

  • 액세스 제어 모드가 "리소스 또는 작업 영역 권한 사용"으로 설정된 Log Analytics 작업 영역:

    • 작업 영역 기반 Application Insights 리소스는 전용 작업 영역 기반 권한으로 설정된 작업 영역과 호환되지 않습니다. Log Analytics 작업 영역 액세스 제어에 대한 자세한 내용은 액세스 제어 모드 지침을 참조하세요.
    • 기존 Log Analytics 작업 영역이 아직 없는 경우 Log Analytics 작업 영역 만들기 설명서를 참조하세요.
  • 연속 내보내기는 작업 영역 기반 리소스와 호환되지 않으며 사용 중지해야 합니다. 마이그레이션이 완료되면 진단 설정을 사용하여 스토리지 계정에 대한 데이터 보관 또는 Azure Event Hubs로의 스트리밍을 구성할 수 있습니다.

    주의

    • 진단 설정은 연속 내보내기와 다른 내보내기 형식/스키마를 사용합니다. 마이그레이션하면 Azure Stream Analytics와의 기존 통합이 중단됩니다.
    • 진단 설정 내보내기는 비용을 증가시킬 수 있습니다. 자세한 내용은 Application Insights에서 원격 분석 내보내기를 참조하세요.
  • Log Analytics 작업 영역의 설정>사용량 및 예상 비용>데이터 보관에서 현재 보관 설정을 확인합니다. 이 설정은 Application Insights 리소스를 마이그레이션한 후 새로 수집된 데이터가 저장되는 기간에 영향을 줍니다.

    참고 항목

    • 현재 기본 90일보다 더 오랫동안 Application Insights 데이터를 저장하고 마이그레이션 후 더 긴 보존 기간을 보존하려면 작업 영역 보존 설정을 조정합니다.
    • 마이그레이션 전에 클래식 Application Insights 리소스에 수집된 데이터에 대해 90일 이상 데이터 보존을 선택한 경우 해당 데이터가 보존 기간을 초과할 때까지 해당 Application Insights 리소스를 통해 데이터 보존 요금이 계속 청구됩니다.
    • 구성>사용량 및 예상 비용>데이터 보존에서 Application Insights 인스턴스에 대한 보존 설정을 사용하도록 설정한 경우, 해당 설정을 사용하여 클래식 리소스의 스토리지에 여전히 저장된 원격 분석 데이터의 보존 기간(일)을 제어합니다.
  • 작업 영역 기반 Application Insights 사용량 및 비용을 이해합니다.

클래식 Application Insights 리소스 찾기

다음 방법 중 하나를 사용하여 구독 내에서 클래식 Application Insights 리소스를 찾을 수 있습니다.

Azure Portal의 Application Insights 리소스

Application Insights 리소스 개요 내에서 클래식 Application Insights 리소스에는 연결된 작업 영역이 없으며 클래식 Application Insights 사용 중지 경고 배너가 나타납니다. 작업 영역 기반 리소스에는 개요 섹션 내에 연결된 작업 영역이 있습니다.

클래식 리소스: 클래식 Application Insights 포털 개요 페이지의 스크린샷.

작업 영역 기반 리소스: 작업 영역 기반 Application Insights 포털 개요 페이지의 스크린샷.

Azure Resource Graph

ARG(Azure Resource Graph) 탐색기를 사용하고 'resources' 테이블에서 쿼리를 실행하여 이 정보를 끌어올 수 있습니다.

resources
| where subscriptionId == 'Replace with your own subscription ID'
| where type contains 'microsoft.insights/components'
| distinct resourceGroup, name, tostring(properties['IngestionMode']), tostring(properties['WorkspaceResourceId'])

참고 항목

클래식 리소스는 'ApplicationInsights', 'N/A' 또는 Empty 값으로 식별됩니다.

Azure CLI:

인증이 기본 제공된 포털이나 az login을 사용하여 인증한 후 다른 곳에서 Cloud Shell에서 다음 스크립트를 실행합니다.

$resources = az resource list --resource-type 'microsoft.insights/components' | ConvertFrom-Json

$resources | Sort-Object -Property Name | Format-Table -Property @{Label="App Insights Resource"; Expression={$_.name}; width = 35}, @{Label="Ingestion Mode"; Expression={$mode = az resource show --name $_.name --resource-group $_.resourceGroup --resource-type microsoft.insights/components --query "properties.IngestionMode" -o tsv; $mode}; width = 45}

참고 항목

클래식 리소스는 'ApplicationInsights', 'N/A' 또는 Empty 값으로 식별됩니다. Azure CLI에서 다음 PowerShell 스크립트를 실행할 수 있습니다.

$subscription = "SUBSCRIPTION ID GOES HERE"
$token = (Get-AZAccessToken).Token
$header = @{Authorization = "Bearer $token"}
$uri = "https://management.azure.com/subscriptions/$subscription/providers/Microsoft.Insights/components?api-version=2015-05-01"
$RestResult=""
$RestResult = Invoke-RestMethod -Method GET -Uri $uri -Headers $header -ContentType "application/json" -ErrorAction Stop -Verbose
 $list=@()
$ClassicList=@()
foreach ($app in $RestResult.value)
  {
    #"processing: " + $app.properties.WorkspaceResourceId  ##  Classic Application Insights do not have a workspace.
    if ($app.properties.WorkspaceResourceId)
      {
        $Obj = New-Object -TypeName PSObject
        #$app.properties.WorkspaceResourceId
        $Obj | Add-Member -Type NoteProperty -Name Name  -Value $app.name
        $Obj | Add-Member -Type NoteProperty -Name WorkspaceResourceId  -Value $app.properties.WorkspaceResourceId
        $list += $Obj
      }
     else
      {
        $Obj = New-Object -TypeName PSObject
        $app.properties.WorkspaceResourceId
        $Obj | Add-Member -Type NoteProperty -Name Name  -Value $app.name
        $ClassicList += $Obj
       }
  }
$list |Format-Table -Property Name, WorkspaceResourceId -Wrap
  "";"Classic:"
$ClassicList | FT

리소스 마이그레이션

클래식 Application Insights 리소스를 작업 영역 기반 리소스로 마이그레이션하려면 다음을 수행합니다.

  1. Application Insights 리소스에서 왼쪽 메뉴의 "구성" 제목 아래에 있는 "속성"을 선택합니다.

    구성됨 제목 아래의 속성을 보여 주는 스크린샷.

  2. 작업 영역 기반으로 이전을 선택합니다.

    작업 영역 기반 단추로 마이그레이션을 보여 주는 스크린샷.

  3. 향후에 수집되는 모든 Application Insights 원격 분석을 저장할 Log Analytics 작업 영역을 선택합니다. 동일한 구독 또는 동일한 Microsoft Entra 테넌트를 공유하는 다른 구독의 Log Analytics 작업 영역일 수 있습니다. Log Analytics 작업 영역은 Application Insights 리소스와 동일한 리소스 그룹에 있을 필요가 없습니다.

    참고 항목

    작업 영역 기반 리소스로 마이그레이션하는 데 최대 24시간이 걸릴 수 있지만 일반적으로 프로세스가 더 빠릅니다. 마이그레이션 프로세스가 완료될 때까지 기다리는 동안 Application Insights 리소스를 통해 데이터에 액세스합니다. 완료되면 Log Analytics 작업 영역 테이블에 저장된 새 데이터가 표시됩니다.

    대상 작업 영역을 선택하는 옵션이 있는 마이그레이션 마법사 UI를 보여 주는 스크린샷.

    리소스가 마이그레이션되면 개요 창에 해당 작업 영역 정보가 표시됩니다.

    작업 영역 이름을 보여 주는 스크린샷.

    파란색 링크 텍스트를 선택하면 새로운 통합 작업 영역 쿼리 환경을 활용할 수 있는 연결된 Log Analytics 작업 영역으로 이동합니다.

작업 영역 기반 Application Insights 리소스로 마이그레이션한 후 작업 영역의 일별 한도를 사용하여 Application Insights의 한도 대신 수집 및 비용을 제한합니다.

로그 쿼리 이해

Application Insights 환경 내에서 Application Insights 클래식 리소스 쿼리, 통합 문서 및 로그 기반 경고에 대해 이전 버전과 완전히 호환됩니다.

새로운 작업 영역 기반 테이블 구조/스키마에 대한 쿼리를 작성하려면 먼저 Log Analytics 작업 영역으로 이동해야 합니다.

쿼리가 성공적으로 실행되도록 하려면 쿼리 필드가 새 스키마 필드와 일치하는지 유효성을 검사합니다.

하나의 Log Analytics 작업 영역에 원격 분석을 저장하는 Application Insights 리소스가 여러 개 있을 수 있지만 하나의 특정 Application Insights 리소스에서 데이터를 쿼리하려고 합니다. 이때 다음 두 가지 방법을 사용할 수 있습니다.

  • Application Insights 리소스로 이동하여 로그 탭을 선택합니다. 이 탭의 모든 쿼리는 선택한 Application Insights 리소스에서 자동으로 데이터를 가져옵니다.
  • Application Insights 원격 분석의 대상으로 구성한 Log Analytics 작업 영역으로 이동하여 로그 탭을 선택합니다. 특정 Application Insights 리소스에서 데이터를 쿼리하려면 모든 애플리케이션별 테이블에서 사용할 수 있는 기본 제공 _ResourceId 속성을 필터링합니다.

Log Analytics 작업 영역에서 직접 쿼리하면 마이그레이션 후 수집된 데이터만 표시됩니다. 통합 쿼리 환경에서 마이그레이션 후 수집된 새 데이터와 클래식 Application Insights 데이터를 모두 보려면 마이그레이션된 Application Insights 리소스 내에서 로그 탭을 사용합니다.

참고 항목

작업 영역 기반 모델로 마이그레이션한 후 Application Insights 리소스의 이름을 바꾸면 더 이상 Application Insights 로그 탭에 이름 바꾸기 전에 수집된 원격 분석이 표시되지 않습니다. 연결된 Log Analytics 리소스의 로그 탭에서 이전 데이터와 새 데이터를 모두 볼 수 있습니다.

수집 형식별로 Application Insights 리소스 식별

다음 스크립트를 사용하여 수집 형식별로 Application Insights 리소스를 식별합니다.

예시

Get-AzApplicationInsights -SubscriptionId 'Your Subscription ID' | Format-Table -Property Name, IngestionMode, Id, @{label='Type';expression={
    if ([string]::IsNullOrEmpty($_.IngestionMode)) {
        'Unknown'
    } elseif ($_.IngestionMode -eq 'LogAnalytics') {
        'Workspace-based'
    } elseif ($_.IngestionMode -eq 'ApplicationInsights' -or $_.IngestionMode -eq 'ApplicationInsightsWithDiagnosticSettings') {
        'Classic'
    } else {
        'Unknown'
    }
}}

프로그래매틱 리소스 마이그레이션

이 섹션은 리소스를 마이그레이션하는 데 도움이 됩니다.

Azure CLI

미리 보기 Application Insights Azure CLI 명령에 액세스하려면 먼저 다음을 실행해야 합니다.

 az extension add -n application-insights

az extension add 명령을 실행하지 않으면 az : ERROR: az monitor: 'app-insights' is not in the 'az monitor' command group. See 'az monitor --help'.라는 오류 메시지가 표시됩니다.

이제 다음 코드를 실행하여 Application Insights 리소스를 만들 수 있습니다.

az monitor app-insights component update --app
                                         --resource-group
                                         [--ingestion-access {Disabled, Enabled}]
                                         [--kind]
                                         [--query-access {Disabled, Enabled}]
                                         [--retention-time]
                                         [--workspace]

예시

az monitor app-insights component update --app your-app-insights-resource-name -g your_resource_group --workspace "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/test1234/providers/microsoft.operationalinsights/workspaces/test1234555"

이 명령에 대한 전체 Azure CLI 설명서는 Azure CLI 설명서를 참조하세요.

Azure PowerShell

Azure PowerShell 버전 8.0 이상부터 Update-AzApplicationInsights PowerShell 명령을 사용하여 클래식 Application Insights 리소스를 작업 영역 기반으로 마이그레이션할 수 있습니다.

이 cmdlet을 사용하려면 업데이트하려는 Application Insights 리소스의 이름과 리소스 그룹을 지정해야 합니다. 클래식 인스턴스를 작업 영역 기반으로 마이그레이션하려면 IngestionModeWorkspaceResoruceId 매개 변수를 사용합니다. 이 cmdlet의 매개 변수 및 구문에 대한 자세한 내용은 Update-AzApplicationInsights를 참조하세요.

예시

# Get the resource ID of the Log Analytics workspace
$workspaceResourceId = (Get-AzOperationalInsightsWorkspace -ResourceGroupName "rgName" -Name "laName").ResourceId

# Update the Application Insights resource with the workspace parameter
Update-AzApplicationInsights -Name "aiName" -ResourceGroupName "rgName" -IngestionMode LogAnalytics -WorkspaceResourceId $workspaceResourceId

Azure Resource Manager 템플릿

이 섹션에서는 템플릿을 제공합니다.

주의

마이그레이션 템플릿을 실행하기 전에 리소스에서 모든 연속 내보내기 설정을 제거했는지 확인합니다. 필수 조건을 참조하세요.

템플릿 파일

{
    "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "name": {
            "type": "string"
        },
        "type": {
            "type": "string"
        },
        "regionId": {
            "type": "string"
        },
        "tagsArray": {
            "type": "object"
        },
        "requestSource": {
            "type": "string"
        },
        "workspaceResourceId": {
            "type": "string"
        }
    },
    "resources": [
        {
            "name": "[parameters('name')]",
            "type": "microsoft.insights/components",
            "location": "[parameters('regionId')]",
            "tags": "[parameters('tagsArray')]",
            "apiVersion": "2020-02-02-preview",
            "properties": {
                "ApplicationId": "[parameters('name')]",
                "Application_Type": "[parameters('type')]",
                "Flow_Type": "Redfield",
                "Request_Source": "[parameters('requestSource')]",
                "WorkspaceResourceId": "[parameters('workspaceResourceId')]"
            }
        }
    ]
}

매개 변수 파일

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "type": {
            "value": "web"
        },
        "name": {
            "value": "customresourcename"
        },
        "regionId": {
            "value": "eastus"
        },
        "tagsArray": {
            "value": {}
        },
        "requestSource": {
            "value": "Custom"
        },
        "workspaceResourceId": {
            "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my_resource_group/providers/microsoft.operationalinsights/workspaces/myworkspacename"
        }
    }
}

연결된 작업 영역 수정

작업 영역 기반 Application Insights 리소스를 만든 후 연결된 Log Analytics 작업 영역을 수정할 수 있습니다.

Application Insights 리소스 창 내에서 속성>작업 영역 변경>Log Analytics 작업 영역을 선택합니다.

자주 묻는 질문

이 섹션에서는 일반적인 질문에 대한 답변을 제공합니다.

Application Insights 클래식 리소스를 작업 영역 기반 리소스로 마이그레이션하지 않으면 어떻게 되나요?

Microsoft는 2024년 5월에 클래식 리소스를 작업 영역 기반 리소스로 마이그레이션하는 단계적 방식을 시작했으며 이 마이그레이션은 몇 달 동안 진행됩니다. 특정 리소스, 구독 또는 지역이 마이그레이션되는 대략적인 날짜를 제공할 수 없습니다.

작업 영역 기반 리소스로의 수동 마이그레이션을 적극 권장합니다. 이 프로세스는 사용 중지 알림 배너를 선택하여 시작됩니다. Azure Portal의 클래식 Application Insights 리소스 개요 창에서 찾을 수 있습니다. 이 프로세스에는 일반적으로 애플리케이션 데이터를 저장하는 데 사용되는 Log Analytics 작업 영역을 선택하는 단일 단계가 포함됩니다. 연속 내보내기를 사용하는 경우 먼저 진단 설정으로 추가로 마이그레이션하거나 기능을 사용하지 않도록 설정해야 합니다.

클래식 리소스를 작업 영역 기반 리소스로 자동 마이그레이션하지 않으려면 리소스를 삭제하거나 수동으로 마이그레이션할 수 있습니다.

마이그레이션 비용에 영향을 주나요?

일반적으로 두 가지 예외를 제외하고는 차이가 없습니다.

  • 레거시 Application Insights 가격 책정 모델을 통해 매월 1GB를 무료로 받은 Application Insights 리소스는 무료 데이터를 받지 않습니다.
  • 2018년 4월 이전에 기본 가격 책정 계층에 있었던 Application Insights 리소스는 2018년 4월 이전과 동일한 비지역 가격 책정으로 계속 청구됩니다. 해당 시간 이후에 만들어진 Application Insights 리소스 또는 작업 영역 기반으로 변환된 리소스에는 현재 셀이 있는 영역 가격 책정이 적용됩니다. 사용자의 통화 및 지역에 따른 현재 가격은 Application Insights 가격 책정을 참조하세요.

작업 영역 기반 Application Insights로의 마이그레이션은 Log Analytics 약정 계층, 전용 클러스터, 기본 및 보조 로그를 포함하여 추가로 비용 최적화를 위한 다양한 옵션을 제공합니다.

원격 분석 상한은 어떻게 작동하나요?

Log Analytics 작업 영역에서 일일 한도를 설정할 수 있습니다.

청구 한도는 엄격하지 않습니다.

수집 기반 샘플링은 어떻게 작동하나요?

수집 기반 샘플링은 변경되지 않습니다.

마이그레이션 중에 수집된 데이터에 간격이 있나요?

아니요. 쿼리 시간 동안 데이터가 병합됩니다.

이전 로그 쿼리가 계속 작동하나요?

예, 계속 작동합니다.

고정된 메트릭 및 로그 차트가 있는 대시보드는 마이그레이션 후에도 계속 작동하나요?

예, 계속 작동합니다.

마이그레이션이 데이터에 액세스하는 AppInsights API에 영향을 주나요?

아니요. 마이그레이션은 데이터에 대한 기존 API 액세스에 영향을 미치지 않습니다. 마이그레이션 후 약간 다른 스키마를 사용하여 작업 영역에서 직접 데이터에 액세스할 수 있습니다.

라이브 메트릭 또는 기타 모니터링 환경에 영향을 주나요?

아니요. 라이브 메트릭 또는 기타 모니터링 환경에는 영향을 주지 않습니다.

마이그레이션 후 연속 내보내기는 어떻게 되나요?

자동화된 내보내기를 계속하려면 작업 영역 기반 리소스로 마이그레이션하기 전에 진단 설정으로 마이그레이션해야 합니다. 진단 설정은 작업 영역 기반 Application Insights로 마이그레이션됩니다.

Terraform을 사용하여 App Insights 리소스를 성공적으로 마이그레이션하려면 어떻게 해야 하나요?

Terraform을 사용하여 Azure 리소스를 관리하는 경우 App Insights 리소스를 업그레이드하기 전에 최신 버전의 Terraform azurerm 공급자를 사용하는 것이 중요합니다. 버전 3.12와 같은 이전 버전의 공급자를 사용하면 대체 작업 영역 기반 Application Insights 리소스를 만들기 전에 클래식 구성 요소가 삭제될 수 있습니다. 이 경우 이전 데이터가 손실되고 모니터링되는 앱의 구성을 새 연결 문자열 및 계측 키 값으로 업데이트해야 할 수 있습니다.

이 문제를 방지하려면 최신 버전의 Terraform azurerm 공급자, 버전 3.89 이상을 사용해야 합니다. 모든 이전 데이터와 연결 문자열/계측 키 값을 유지하면서 App Insights 클래식 리소스를 작업 영역 기반 리소스로 업그레이드하기 위해 적절한 ARM(Azure Resource Manager) 호출을 실행하여 적절한 마이그레이션 단계를 수행합니다.

기존 API를 사용하여 프로그래밍 방식으로 Application Insights 리소스를 만들 수 있나요?

이전 버전과의 호환성을 위해 Application Insights 리소스를 만들기 위한 이전 API 호출은 계속 작동합니다. 이러한 각 호출은 작업 영역 기반 Application Insights 리소스와 Log Analytics 작업 영역을 모두 만들어 데이터를 저장합니다.

리소스 만들기를 보다 효과적으로 제어하려면 새 API로 업데이트하는 것이 좋습니다.

작업 영역 기반 AI로 이동하기 전에 클래식 Application Insights에서 진단 설정을 마이그레이션해야 하나요?

예, 작업 영역 기반 Application Insights로 전환하기 전에 클래식 Application Insights 리소스에 대한 진단 설정을 마이그레이션하는 것이 좋습니다. 이렇게 하면 진단 설정의 연속성과 호환성이 보장됩니다.

문제 해결

이 섹션에서는 문제 해결 팁을 제공합니다.

액세스 모드

오류 메시지: "선택한 작업 영역은 작업 영역 기반 액세스 모드로 구성되어 있습니다. 일부 APM(애플리케이션 성능 모니터링) 기능이 영향을 받을 수 있습니다. 다른 작업 영역을 선택하거나 작업 영역 설정에서 리소스 기반 액세스를 허용합니다. CLI를 사용하여 이 오류를 재정의할 수 있습니다."

작업 영역 기반 Application Insights 리소스가 제대로 작동하도록 하려면 대상 Log Analytics 작업 영역의 액세스 제어 모드를 리소스 또는 작업 영역 권한 설정으로 변경해야 합니다. 이 설정은 Log Analytics 작업 영역 UI의 속성>액세스 제어 모드에 있습니다. 자세한 내용은 Log Analytics 액세스 제어 모드 구성 지침을 참조하세요. 액세스 제어 모드가 전용 작업 영역 권한 필요 설정으로 지정된 경우 포털 마이그레이션 환경을 통한 마이그레이션은 차단된 상태로 유지됩니다.

현재 대상 작업 영역에 대한 보안상의 이유로 액세스 제어 모드를 변경할 수 없는 경우 마이그레이션에 사용할 새 Log Analytics 작업 영역을 만듭니다.

연속 내보내기

오류 메시지: "계속하려면 연속 내보내기를 사용하지 않도록 설정해야 합니다. 마이그레이션 후 내보내기를 위해 진단 설정을 사용하세요."

작업 영역 기반 리소스에는 레거시 연속 내보내기 기능이 지원되지 않습니다. 마이그레이션하기 전에 진단 설정을 사용하도록 설정하고 연속 내보내기를 사용하지 않도록 설정해야 합니다.

  1. 클래식 Application Insights 리소스에서 진단 설정을 사용하도록 설정합니다.

  2. Application Insights 리소스 보기의 "구성" 제목에서 "연속 내보내기"를 선택합니다.

    연속 내보내기 메뉴 항목을 보여 주는 스크린샷.

  3. 사용 안 함을 선택합니다.

    연속 내보내기 사용 안 함 단추를 보여 주는 스크린샷.

    • 사용 안 함을 선택한 후 마이그레이션 UI로 돌아갈 수 있습니다. 연속 내보내기 편집 페이지에 설정이 저장되지 않았다는 메시지가 표시되면 확인을 선택합니다. 이 메시지는 연속 내보내기를 사용하지 않도록 설정하거나 사용하도록 설정하는 것과는 관련이 없습니다.

    • Application Insights 리소스를 마이그레이션한 후 진단 설정을 사용하여 제공하는 데 사용되는 연속 내보내기 기능을 바꿀 수 있습니다. Application Insights 리소스에서 진단 설정>진단 설정 추가를 선택합니다. 모든 테이블 또는 테이블의 하위 집합을 선택하여 스토리지 계정에 보관하거나 Azure Event Hubs로 스트리밍할 수 있습니다. 진단 설정에 대한 자세한 내용은 Azure Monitor 진단 설정 지침을 참조하세요.

보존 설정

경고 메시지: "사용자 지정 Application Insights 보관 설정은 작업 영역으로 전송된 데이터에 적용되지 않습니다. 별도로 다시 구성해야 합니다."

마이그레이션하기 전에 변경할 필요가 없습니다. 이 메시지는 현재 Application Insights 보존 설정이 기본값 90일 보존 기간으로 설정되지 않음을 경고합니다. 이 경고 메시지는 마이그레이션하고 새 데이터 수집을 시작하기 전에 Log Analytics 작업 영역에 대한 보존 설정을 수정하는 것이 좋음을 의미합니다.

Log Analytics UI의 설정>사용 및 예상 비용>데이터 보존에서 Log Analytics의 현재 보존 설정을 확인할 수 있습니다. 이 설정은 Application Insights 리소스를 마이그레이션한 후 새로 수집된 데이터가 저장되는 기간에 영향을 줍니다.

작업 영역 기반 리소스 변경

Application Insights 데이터는 작업 영역 기반 Application Insights 리소스가 도입되기 전에 Azure Monitor의 다른 로그 데이터와 별도로 저장됩니다. 둘 다 Azure Data Explorer를 기반으로 하며 동일한 KQL(Kusto 쿼리 언어)을 사용합니다. 작업 영역 기반 Application Insights 리소스 데이터는 다른 모니터링 데이터 및 애플리케이션 데이터와 함께 Log Analytics 작업 영역에 저장됩니다. 이 배열은 구성을 간소화합니다. 여러 솔루션의 데이터를 보다 쉽게 분석하고 작업 영역의 기능을 사용할 수 있습니다.

클래식 데이터 구조

Log Analytics 작업 영역의 구조는 Log Analytics 작업 영역 개요에 설명되어 있습니다. 클래식 애플리케이션의 경우 데이터가 Log Analytics 작업 영역에 저장되지 않습니다. 동일한 쿼리 언어를 사용합니다. Azure Portal에서 동일한 Log Analytics 도구를 사용하여 쿼리를 만들고 실행합니다. 클래식 애플리케이션의 데이터 항목은 서로 별도로 저장됩니다. 테이블 이름과 열 이름이 서로 다르지만 일반적인 구조는 작업 영역 기반 애플리케이션과 동일합니다.

참고 항목

클래식 Application Insights 환경에는 리소스 쿼리, 통합 문서 및 로그 기반 경고에 대한 이전 버전과의 호환성이 포함됩니다. 새 작업 영역 기반 테이블 구조 또는 스키마에 대해 쿼리하거나 보려면 먼저 Log Analytics 작업 영역으로 이동합니다. 미리 보기 중에 Application Insights 창에서 로그를 선택하면 기존 Application Insights 쿼리 환경에 액세스할 수 있습니다. 자세한 내용은 쿼리 범위를 참조하세요.

Application Insights에 대한 Azure Monitor 로그 구조를 보여주는 다이어그램

테이블 구조

레거시 테이블 이름 새 테이블 이름 설명
availabilityResults AppAvailabilityResults 가용성 테스트에 대한 요약 데이터입니다.
browserTimings AppBrowserTimings 들어오는 데이터를 처리하는 데 걸리는 시간 등, 클라이언트 성능에 대한 데이터입니다.
종속성 AppDependencies 애플리케이션에서 TrackDependency()를 통해 기록된 다른 구성 요소(외부 구성 요소 포함)에 대한 호출입니다. 예를 들어, REST API, 데이터베이스 또는 파일 시스템에 대한 호출이 있습니다.
customEvents AppEvents 애플리케이션에서 생성된 사용자 지정 이벤트입니다.
customMetrics AppMetrics 애플리케이션에서 생성된 사용자 지정 메트릭입니다.
pageViews AppPageViews 브라우저 정보가 포함된 각 웹 사이트 보기에 대한 데이터입니다.
performanceCounters AppPerformanceCounters 애플리케이션을 지원하는 컴퓨팅 리소스의 성능 측정. Windows 성능 카운터를 예로 들 수 있습니다.
requests AppRequests 애플리케이션이 받은 요청입니다. 예를 들어, 웹앱이 수신하는 각 HTTP 요청에 대해 별도의 요청 레코드가 기록됩니다.
예외 AppExceptions 애플리케이션 런타임에서 발생한 예외입니다. 서버 쪽 및 클라이언트 쪽(브라우저) 예외를 모두 캡처합니다.
traces AppTraces TrackTrace()를 통해 로그된 애플리케이션 코드/로깅 프레임워크를 통해 내보낸 자세한 로그(추적).

주의

Log Analytics를 사용하기 전에 Log Analytics에서 새로운 원격 분석을 기다립니다. 마이그레이션을 시작한 후 원격 분석은 먼저 Classic Application Insights로 이동합니다. 원격 분석 수집은 24시간 이내에 Log Analytics로 전환됩니다. 완료되면 Log Analytics는 새로운 원격 분석만 캡처합니다.

테이블 스키마

다음 섹션에서는 클래식 속성 이름과 새 작업 영역 기반 Application Insights 속성 이름 간의 매핑을 보여 줍니다. 레거시 테이블을 사용하여 쿼리를 변환하려면 이 정보를 사용합니다.

대부분의 열은 대/소문자가 다른 동일한 이름을 갖습니다. KQL은 대/소문자를 구분하므로 기존 쿼리의 테이블 이름과 함께 각 열 이름을 변경해야 합니다. 대문자화 외에도 변경 내용이 있는 열은 강조 표시됩니다. 작업 영역 기반 리소스의 경우에도 Application Insights 리소스의 로그 창 내에서 기존 Application Insights 쿼리를 계속 사용할 수 있습니다. Log Analytics 작업 영역 환경의 컨텍스트 내에서 쿼리할 때 새 속성 이름이 필요합니다.

AppAvailabilityResults

레거시 테이블: availabilityResults

ApplicationInsights Type LogAnalytics Type
appId string ResourceGUID string
application_Version string AppVersion string
appName string (제거됨)
client_Browser string ClientBrowser string
client_City string ClientCity string
client_CountryOrRegion string ClientCountryOrRegion string
client_IP string ClientIP string
client_Model string ClientModel string
client_OS string ClientOS string
client_StateOrProvince string ClientStateOrProvince string
client_Type string ClientType string
cloud_RoleInstance string AppRoleInstance string
cloud_RoleName string AppRoleName string
customDimensions dynamic 속성 동적
customMeasurements dynamic 측정값 동적
duration real DurationMs real
id string Id string
iKey string IKey string
itemCount int ItemCount int
itemId string (제거됨)
itemType string Type 문자열
location string 위치 string
message string 메시지 문자열
name 문자열 이름 string
operation_Id string OperationId string
operation_Name string OperationName string
operation_ParentId string ParentId string
operation_SyntheticSource string SyntheticSource string
performanceBucket string PerformanceBucket string
sdkVersion string SDKVersion string
session_Id string 세션 ID string
size real 크기 real
성공 string Success Bool
timestamp 날짜/시간 TimeGenerated 날짜/시간
user_AccountId string UserAccountId string
user_AuthenticatedId string UserAuthenticatedId string
user_Id string 사용자 ID string

AppBrowserTimings

레거시 테이블: browserTimings

ApplicationInsights Type LogAnalytics Type
appId string ResourceGUID string
application_Version string AppVersion string
appName string (제거됨)
client_Browser string ClientBrowser string
client_City string ClientCity string
client_CountryOrRegion string ClientCountryOrRegion string
client_IP string ClientIP string
client_Model string ClientModel string
client_OS string ClientOS string
client_StateOrProvince string ClientStateOrProvince string
client_Type string ClientType string
cloud_RoleInstance string AppRoleInstance string
cloud_RoleName string AppRoleName string
customDimensions dynamic 속성 동적
customMeasurements dynamic 측정값 동적
iKey string IKey string
itemCount int ItemCount int
itemId string (제거됨)
itemType string Type 문자열
name 문자열 이름 날짜/시간
networkDuration real NetworkDurationMs real
operation_Id string OperationId string
operation_Name string OperationName string
operation_ParentId string ParentId string
operation_SyntheticSource string SyntheticSource string
performanceBucket string PerformanceBucket string
processingDuration real ProcessingDurationMs real
receiveDuration real ReceiveDurationMs real
sdkVersion string SDKVersion string
sendDuration real SendDurationMs real
session_Id string 세션 ID string
timestamp 날짜/시간 TimeGenerated 날짜/시간
totalDuration real TotalDurationMs real
url string Url string
user_AccountId string UserAccountId string
user_AuthenticatedId string UserAuthenticatedId string
user_Id string 사용자 ID string

AppDependencies

레거시 테이블: 종속성

ApplicationInsights Type LogAnalytics Type
appId string ResourceGUID string
application_Version string AppVersion string
appName string (제거됨)
client_Browser string ClientBrowser string
client_City string ClientCity string
client_CountryOrRegion string ClientCountryOrRegion string
client_IP string ClientIP string
client_Model string ClientModel string
client_OS string ClientOS string
client_StateOrProvince string ClientStateOrProvince string
client_Type string ClientType string
cloud_RoleInstance string AppRoleInstance string
cloud_RoleName string AppRoleName string
customDimensions dynamic 속성 동적
customMeasurements dynamic 측정값 동적
데이터 string 데이터 string
duration real DurationMs real
id string Id string
iKey string IKey string
itemCount int ItemCount int
itemId string (제거됨)
itemType string Type 문자열
name 문자열 이름 string
operation_Id string OperationId string
operation_Name string OperationName string
operation_ParentId string ParentId string
operation_SyntheticSource string SyntheticSource string
performanceBucket string PerformanceBucket string
resultCode string ResultCode string
sdkVersion string SDKVersion string
session_Id string 세션 ID string
성공 string Success Bool
target string 대상 string
timestamp 날짜/시간 TimeGenerated 날짜/시간
type string DependencyType string
user_AccountId string UserAccountId string
user_AuthenticatedId string UserAuthenticatedId string
user_Id string 사용자 ID string

AppEvents

레거시 테이블: customEvents

ApplicationInsights Type LogAnalytics Type
appId string ResourceGUID string
application_Version string AppVersion string
appName string (제거됨)
client_Browser string ClientBrowser string
client_City string ClientCity string
client_CountryOrRegion string ClientCountryOrRegion string
client_IP string ClientIP string
client_Model string ClientModel string
client_OS string ClientOS string
client_StateOrProvince string ClientStateOrProvince string
client_Type string ClientType string
cloud_RoleInstance string AppRoleInstance string
cloud_RoleName string AppRoleName string
customDimensions dynamic 속성 동적
customMeasurements dynamic 측정값 동적
iKey string IKey string
itemCount int ItemCount int
itemId string (제거됨)
itemType string Type 문자열
name 문자열 이름 string
operation_Id string OperationId string
operation_Name string OperationName string
operation_ParentId string ParentId string
operation_SyntheticSource string SyntheticSource string
sdkVersion string SDKVersion string
session_Id string 세션 ID string
timestamp 날짜/시간 TimeGenerated 날짜/시간
user_AccountId string UserAccountId string
user_AuthenticatedId string UserAuthenticatedId string
user_Id string 사용자 ID string

AppMetrics

레거시 테이블: customMetrics

ApplicationInsights Type LogAnalytics Type
appId string ResourceGUID string
application_Version string AppVersion string
appName string (제거됨)
client_Browser string ClientBrowser string
client_City string ClientCity string
client_CountryOrRegion string ClientCountryOrRegion string
client_IP string ClientIP string
client_Model string ClientModel string
client_OS string ClientOS string
client_StateOrProvince string ClientStateOrProvince string
client_Type string ClientType string
cloud_RoleInstance string AppRoleInstance string
cloud_RoleName string AppRoleName string
customDimensions dynamic 속성 동적
iKey string IKey string
itemId string (제거됨)
itemType string Type 문자열
name 문자열 이름 string
operation_Id string OperationId string
operation_Name string OperationName string
operation_ParentId string ParentId string
operation_SyntheticSource string SyntheticSource string
sdkVersion string SDKVersion string
session_Id string 세션 ID string
timestamp 날짜/시간 TimeGenerated 날짜/시간
user_AccountId string UserAccountId string
user_AuthenticatedId string UserAuthenticatedId string
user_Id string 사용자 ID string
value real (제거됨)
valueCount int ItemCount int
valueMax real 최대 real
valueMin real Min real
valueSum real Sum real
valueStdDev real (제거됨)

참고 항목

이전 버전의 Application Insights SDK는 메트릭 사전 집계에서 표준 편차(valueStdDev)를 보고하는 데 사용되었습니다. 메트릭 분석의 채택률이 낮았기 때문에 필드가 제거되었으며 더 이상 SDK에서 집계되지 않습니다. Application Insights 데이터 컬렉션 엔드포인트에서 값을 받으면 수집 중에 삭제되고 Log Analytics 작업 영역으로 전송되지 않습니다. 분석에서 표준 편차를 사용하려면 Application Insights 원시 이벤트에 대한 쿼리를 사용합니다.

AppPageViews

레거시 테이블: pageViews

ApplicationInsights Type LogAnalytics Type
appId string ResourceGUID string
application_Version string AppVersion string
appName string (제거됨)
client_Browser string ClientBrowser string
client_City string ClientCity string
client_CountryOrRegion string ClientCountryOrRegion string
client_IP string ClientIP string
client_Model string ClientModel string
client_OS string ClientOS string
client_StateOrProvince string ClientStateOrProvince string
client_Type string ClientType string
cloud_RoleInstance string AppRoleInstance string
cloud_RoleName string AppRoleName string
customDimensions dynamic 속성 동적
customMeasurements dynamic 측정값 동적
duration real DurationMs real
id string Id string
iKey string IKey string
itemCount int ItemCount int
itemId string (제거됨)
itemType string Type 문자열
name 문자열 이름 string
operation_Id string OperationId string
operation_Name string OperationName string
operation_ParentId string ParentId string
operation_SyntheticSource string SyntheticSource string
performanceBucket string PerformanceBucket string
sdkVersion string SDKVersion string
session_Id string 세션 ID string
timestamp 날짜/시간 TimeGenerated 날짜/시간
url string Url string
user_AccountId string UserAccountId string
user_AuthenticatedId string UserAuthenticatedId string
user_Id string 사용자 ID string

AppPerformanceCounters

레거시 테이블: performanceCounters

ApplicationInsights Type LogAnalytics Type
appId string ResourceGUID string
application_Version string AppVersion string
appName string (제거됨)
category string 범주 string
client_Browser string ClientBrowser string
client_City string ClientCity string
client_CountryOrRegion string ClientCountryOrRegion string
client_IP string ClientIP string
client_Model string ClientModel string
client_OS string ClientOS string
client_StateOrProvince string ClientStateOrProvince string
client_Type string ClientType string
cloud_RoleInstance string AppRoleInstance string
cloud_RoleName string AppRoleName string
counter string (제거됨)
customDimensions dynamic 속성 동적
iKey string IKey string
인스턴스 string 인스턴스 string
itemId string (제거됨)
itemType string Type 문자열
name 문자열 이름 string
operation_Id string OperationId string
operation_Name string OperationName string
operation_ParentId string ParentId string
operation_SyntheticSource string SyntheticSource string
sdkVersion string SDKVersion string
session_Id string 세션 ID string
timestamp 날짜/시간 TimeGenerated 날짜/시간
user_AccountId string UserAccountId string
user_AuthenticatedId string UserAuthenticatedId string
user_Id string 사용자 ID string
value real real

AppRequests

레거시 테이블: 요청

ApplicationInsights Type LogAnalytics Type
appId string ResourceGUID string
application_Version string AppVersion string
appName string (제거됨)
client_Browser string ClientBrowser string
client_City string ClientCity string
client_CountryOrRegion string ClientCountryOrRegion string
client_IP string ClientIP string
client_Model string ClientModel string
client_OS string ClientOS string
client_StateOrProvince string ClientStateOrProvince string
client_Type string ClientType string
cloud_RoleInstance string AppRoleInstance string
cloud_RoleName string AppRoleName string
customDimensions dynamic 속성 동적
customMeasurements dynamic 측정값 동적
duration real DurationMs 실수
id string Id 문자열
iKey string IKey string
itemCount int ItemCount int
itemId string (제거됨)
itemType string Type 문자열
name 문자열 이름 문자열
operation_Id string OperationId string
operation_Name string OperationName string
operation_ParentId string ParentId string
operation_SyntheticSource string SyntheticSource string
performanceBucket string PerformanceBucket 문자열
resultCode string ResultCode 문자열
sdkVersion string SDKVersion string
session_Id string 세션 ID string
원본 string 원본 문자열
성공 string Success Bool
timestamp 날짜/시간 TimeGenerated 날짜/시간
url string Url 문자열
user_AccountId string UserAccountId string
user_AuthenticatedId string UserAuthenticatedId string
user_Id string 사용자 ID string

AppExceptions

레거시 테이블: 예외

ApplicationInsights Type LogAnalytics Type
appId string ResourceGUID string
application_Version string AppVersion string
appName string (제거됨)
assembly string 어셈블리 string
client_Browser string ClientBrowser string
client_City string ClientCity string
client_CountryOrRegion string ClientCountryOrRegion string
client_IP string ClientIP string
client_Model string ClientModel string
client_OS string ClientOS string
client_StateOrProvince string ClientStateOrProvince string
client_Type string ClientType string
cloud_RoleInstance string AppRoleInstance string
cloud_RoleName string AppRoleName string
customDimensions dynamic 속성 dynamic
customMeasurements dynamic 측정값 dynamic
details dynamic 세부 정보 dynamic
handledAt string HandledAt string
iKey string IKey string
innermostAssembly string InnermostAssembly string
innermostMessage string InnermostMessage string
innermostMethod string InnermostMethod string
innermostType string InnermostType string
itemCount int ItemCount int
itemId string (제거됨)
itemType string Type string
message string 메시지 string
메서드(method) string 메서드 string
operation_Id string OperationId string
operation_Name string OperationName string
operation_ParentId string ParentId string
operation_SyntheticSource string SyntheticSource string
outerAssembly string OuterAssembly string
outerMessage string OuterMessage string
outerMethod string OuterMethod string
outerType string OuterType string
problemId string ProblemId string
sdkVersion string SDKVersion string
session_Id string 세션 ID string
severityLevel int SeverityLevel int
timestamp 날짜/시간 TimeGenerated 날짜/시간
type string ExceptionType string
user_AccountId string UserAccountId string
user_AuthenticatedId string UserAuthenticatedId string
user_Id string 사용자 ID string

AppTraces

레거시 테이블: 추적

ApplicationInsights Type LogAnalytics Type
appId string ResourceGUID string
application_Version string AppVersion string
appName string (제거됨)
client_Browser string ClientBrowser string
client_City string ClientCity string
client_CountryOrRegion string ClientCountryOrRegion string
client_IP string ClientIP string
client_Model string ClientModel string
client_OS string ClientOS string
client_StateOrProvince string ClientStateOrProvince string
client_Type string ClientType string
cloud_RoleInstance string AppRoleInstance string
cloud_RoleName string AppRoleName string
customDimensions dynamic 속성 dynamic
customMeasurements dynamic 측정값 dynamic
iKey string IKey string
itemCount int ItemCount int
itemId string (제거됨)
itemType string Type string
message string 메시지 string
operation_Id string OperationId string
operation_Name string OperationName string
operation_ParentId string ParentId string
operation_SyntheticSource string SyntheticSource string
sdkVersion string SDKVersion string
session_Id string 세션 ID string
severityLevel int SeverityLevel int
timestamp 날짜/시간 TimeGenerated 날짜/시간
user_AccountId string UserAccountId string
user_AuthenticatedId string UserAuthenticatedId string
user_Id string 사용자 ID 문자열