작업 영역 기반 Application Insights 리소스
Azure MonitorApplication Insights 작업 영역 기반 리소스는 Application Insights와 Log Analytics를 통합합니다.
작업 영역 기반 리소스를 사용하면 Application Insights는 원격 분석을 공통 Log Analytics 작업 영역으로 보내 애플리케이션을 유지하면서 Log Analytics의 모든 기능에 대한 모든 권한을 제공합니다. 인프라 및 플랫폼 로그가 단일 통합 위치에 있습니다. 이 통합을 통해 리소스 전반에 걸쳐 공통의 Azure 역할 기반 액세스 제어가 가능하고 앱 간/작업 영역 간 쿼리가 필요하지 않습니다.
참고 항목
작업 영역 기반 Application Insights 리소스에 대한 데이터 수집 및 보존 비용은 데이터가 있는 Log Analytics 작업 영역을 통해 청구됩니다. 작업 영역 기반 Application Insights 리소스에 대한 청구에 대한 자세한 내용은 Azure Monitor 로그 가격 책정 세부 정보를 참조하세요.
새로운 기능
작업 영역 기반 Application Insights는 Azure Monitor 및 Log Analytics와 통합되어 기능을 향상합니다.
- 고객 관리형 키는 나만 액세스할 수 있는 키를 사용하여 미사용 데이터를 암호화합니다.
- Azure Private Link는 프라이빗 엔드포인트를 사용하여 Azure PaaS 서비스를 가상 네트워크에 안전하게 연결합니다.
- .NET Profiler 및 스냅샷 디버거용 BYOS(Bring Your Own Storage)를 사용하면 암호화, 수명 및 네트워크 액세스에 대한 정책을 사용하여 .NET Profiler 및 스냅샷 디버거의 데이터를 관리할 수 있습니다.
- 약정 계층은 종량제 가격 책정에 비해 최대 30% 할인을 제공합니다.
- Log Analytics 스트리밍은 데이터를 더 빠르게 처리합니다.
작업 영역 기반 리소스 만들기
Azure Portal에 로그인하고 Application Insights 리소스를 만듭니다.
기존 Log Analytics 작업 영역이 없는 경우 Log Analytics 작업 영역 만들기 설명서를 참조하세요.
작업 영역 기반 리소스는 현재 모든 상업용 지역 및 Azure Government에서 사용할 수 있습니다. 서로 다른 두 지역에 Application Insights와 Log Analytics가 있으면 대기 시간에 영향을 미치고 모니터링 솔루션의 전반적인 안정성이 저하될 수 있습니다.
리소스를 만든 후에는 개요 창에 해당 작업 영역 정보가 표시됩니다.
새 통합 작업 영역 쿼리 환경을 활용할 수 있는 연결된 Log Analytics 작업 영역으로 이동하려면 파란색 링크 텍스트를 선택합니다.
참고 항목
Application Insights 클래식 리소스 쿼리, 통합 문서 및 로그 기반 경고에 대한 완전한 이전 버전과의 호환성을 계속 제공합니다. 새 작업 영역 기반 테이블 구조 또는 스키마를 쿼리하거나 확인하려면 먼저 Log Analytics 작업 영역으로 이동해야 합니다. 클래식 Application Insights 쿼리 환경에 액세스하려면 Application Insights 창에서 로그(분석)를 선택합니다.
연결 문자열 복사
연결 문자열은 원격 분석 데이터를 연결하려는 리소스를 식별합니다. 또한 이를 사용하여 리소스가 원격 분석의 대상으로 사용하는 엔드포인트를 수정할 수도 있습니다. 연결 문자열을 복사하여 애플리케이션 코드나 환경 변수에 추가해야 합니다.
모니터링 구성
작업 영역 기반 Application Insights 리소스를 만든 후 모니터링을 구성합니다.
코드 기반 애플리케이션 모니터링
코드 기반 애플리케이션 모니터링의 경우 적절한 Application Insights SDK를 설치하고 새로 만들어진 리소스에 대한 연결 문자열을 가리킵니다.
코드 기반 모니터링을 위해 Application Insights SDK를 설정하는 방법에 대한 자세한 내용은 해당 언어 또는 프레임워크와 관련된 다음 설명서를 참조하세요.
- ASP.NET
- ASP.NET Core
- 백그라운드 작업 및 최신 콘솔 애플리케이션(.NET/.NET Core)
- 클래식 콘솔 애플리케이션(.NET)
- Java
- JavaScript
- Node.JS
- Python
코드 없는 모니터링
Azure Functions 및 Azure App Services와 같은 서비스의 코드 없는 모니터링을 위해 먼저 작업 영역 기반 Application Insights 리소스를 만들 수 있습니다. 그런 다음 모니터링을 구성할 때 해당 리소스를 가리킵니다. 또는 Application Insights 사용의 일부로 새 Application Insights 리소스를 만들 수 있습니다.
자동으로 리소스 만들기
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 create --app
--location
--resource-group
[--application-type]
[--ingestion-access {Disabled, Enabled}]
[--kind]
[--only-show-errors]
[--query-access {Disabled, Enabled}]
[--tags]
[--workspace]
예시
az monitor app-insights component create --app demoApp --location eastus --kind web -g my_resource_group --workspace "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/test1234/providers/microsoft.operationalinsights/workspaces/test1234555"
이 명령에 대한 전체 Azure CLI 설명서는 Azure CLI 설명서를 참조하세요.
Azure PowerShell
새 작업 영역 기반 Application Insights 리소스 만들기
New-AzApplicationInsights -Name <String> -ResourceGroupName <String> -Location <String> -WorkspaceResourceId <String>
[-SubscriptionId <String>]
[-ApplicationType <ApplicationType>]
[-DisableIPMasking]
[-DisableLocalAuth]
[-Etag <String>]
[-FlowType <FlowType>]
[-ForceCustomerStorageForProfiler]
[-HockeyAppId <String>]
[-ImmediatePurgeDataOn30Day]
[-IngestionMode <IngestionMode>]
[-Kind <String>]
[-PublicNetworkAccessForIngestion <PublicNetworkAccessType>]
[-PublicNetworkAccessForQuery <PublicNetworkAccessType>]
[-RequestSource <RequestSource>]
[-RetentionInDays <Int32>]
[-SamplingPercentage <Double>]
[-Tag <Hashtable>]
[-DefaultProfile <PSObject>]
[-Confirm]
[-WhatIf]
[<CommonParameters>]
예시
New-AzApplicationInsights -Kind java -ResourceGroupName testgroup -Name test1027 -location eastus -WorkspaceResourceId "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/test1234/providers/microsoft.operationalinsights/workspaces/test1234555"
이 cmdlet에 대한 전체 PowerShell 설명서와 연결 문자열을 검색하는 방법을 알아보려면 Azure PowerShell 설명서를 참조하세요.
Azure 리소스 관리자 템플릿
@description('Name of Application Insights resource.')
param name string
@description('Type of app you are deploying. This field is for legacy reasons and will not impact the type of App Insights resource you deploy.')
param type string
@description('Which Azure Region to deploy the resource to. This must be a valid Azure regionId.')
param regionId string
@description('See documentation on tags: https://learn.microsoft.com/azure/azure-resource-manager/management/tag-resources.')
param tagsArray object
@description('Source of Azure Resource Manager deployment')
param requestSource string
@description('Log Analytics workspace ID to associate with your Application Insights resource.')
param workspaceResourceId string
resource component 'Microsoft.Insights/components@2020-02-02' = {
name: name
location: regionId
tags: tagsArray
kind: 'other'
properties: {
Application_Type: type
Flow_Type: 'Bluefield'
Request_Source: requestSource
WorkspaceResourceId: workspaceResourceId
}
}
매개 변수 파일
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"name": {
"value": "my_workspace_based_resource"
},
"type": {
"value": "web"
},
"regionId": {
"value": "westus2"
},
"tagsArray": {
"value": {}
},
"requestSource": {
"value": "CustomDeployment"
},
"workspaceResourceId": {
"value": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testxxxx/providers/microsoft.operationalinsights/workspaces/testworkspace"
}
}
}
연결된 작업 영역 수정
작업 영역 기반 Application Insights 리소스를 만든 후 연결된 Log Analytics 작업 영역을 수정할 수 있습니다.
Application Insights 리소스 창에서 속성>작업 영역 변경>Log Analytics 작업 영역을 선택합니다.
원격 분석 내보내기
작업 영역 기반 리소스에는 레거시 연속 내보내기 기능이 지원되지 않습니다. 대신 Application Insights 리소스에서 진단 설정>진단 설정 추가를 선택합니다. 모든 테이블 또는 테이블의 하위 집합을 선택하여 스토리지 계정에 보관할 수 있습니다. Azure Event Hubs로 스트리밍할 수도 있습니다.
참고 항목
진단 설정 내보내기는 비용을 증가시킬 수 있습니다. 자세한 내용은 Application Insights에서 원격 분석 내보내기를 참조하세요. 이 기능의 가격 책정 정보는 Azure Monitor 가격 책정 페이지를 참조하세요. 청구가 시작되기 전에 알림이 전송됩니다. 공지 기간 이후에도 원격 분석 내보내기를 계속 사용하면 해당 요금이 청구됩니다.
얼마나 많은 Application Insights 리소스를 배포해야 하나요?
웹 애플리케이션의 다음 버전을 개발할 때 새 버전과 이미 릴리스된 버전의 Application Insights 원격 분석이 혼동되지 않도록 하려고 합니다.
혼동을 방지하기 위해 서로 다른 개발 단계의 원격 분석을 별도의 연결 문자열과 함께 별도의 Application Insights 리소스에 보냅니다.
시스템이 Azure Cloud Services의 인스턴스인 경우 별도의 연결 문자열을 설정하는 다른 방법이 있습니다.
리소스 및 연결 문자열 정보
웹앱에 대한 Application Insights 모니터링을 설정할 때 Azure에서 Application Insights 리소스를 만듭니다. 앱에서 수집된 원격 분석을 보고 분석하려면 Azure Portal에서 이 리소스를 엽니다. 연결 문자열은 리소스를 식별합니다. 앱을 모니터링하기 위해 Application Insights 패키지를 설치하는 경우 원격 분석을 보낼 위치를 파악할 수 있도록 연결 문자열로 구성합니다.
각 Application Insights 리소스에는 기본 제공되는 메트릭이 제공됩니다. 별도의 구성 요소가 동일한 Application Insights 리소스에 대해 보고하는 경우 이러한 메트릭에 대해 경고하는 것이 적합하지 않을 수 있습니다.
단일 Application Insights 리소스를 사용하는 경우
단일 Application Insights 리소스를 사용합니다.
- 함께 배포되고 일반적으로 동일한 팀에서 개발하고 관리하는 애플리케이션에 대한 DevOps/ITOps 관리를 간소화합니다.
- 기본적으로 응답 시간, 실패율 등 핵심 성과 지표를 대시보드에 중앙 집중화합니다. 필요한 경우 메트릭 탐색기에서 역할 이름별로 분류합니다.
- 애플리케이션 구성 요소 간에 서로 다른 Azure 역할 기반 액세스 제어 관리가 필요하지 않은 경우.
- 동일한 메트릭 경고 조건, 연속 내보내기 및 구성 요소 전체의 청구/할당량 관리로 충분할 경우.
- API 키가 모든 구성 요소의 데이터에 동일하게 액세스하는 것이 허용되고 10개의 API 키가 모든 구성 요소의 요구 사항을 충족하는 경우.
- 동일한 스마트 검색 및 작업 항목 통합 설정이 모든 역할에 적합한 경우.
참고 항목
여러 Application Insights 리소스를 통합하려는 경우 기존 애플리케이션 구성 요소를 통합된 새 Application Insights 리소스로 가리킬 수 있습니다. 전송 리소스에 저장된 원격 분석은 새 리소스로 전송되지 않습니다. 비즈니스 연속성을 위해 새 리소스에 충분한 원격 분석이 있는 경우에만 이전 리소스를 삭제합니다.
기타 고려 사항
포털 환경을 활성화하려면 사용자 지정 코드를 추가하여 Cloud_RoleName 특성에 의미 있는 값을 할당합니다. 이러한 값이 없으면 포털 함수가 작동하지 않습니다.
Azure Service Fabric 애플리케이션 및 클래식 클라우드 서비스의 경우 SDK는 Azure 역할 환경에서 읽어 서비스를 자동으로 구성합니다. 다른 앱 형식의 경우 일반적으로 명시적으로 설정해야 합니다.
라이브 메트릭은 역할 이름별로 데이터를 분할할 수 없습니다.
더 많은 Application Insights 리소스 만들기
Applications Insights 리소스를 만들려면 Application Insights 리소스 만들기를 참조하세요.
Warning
Application Insights 리소스가 다른 지역의 Azure 리소스(예: 원격 분석 생산자)를 모니터링하는 경우 추가 네트워크 비용이 발생할 수 있습니다. 비용은 원격 분석이 제공되는 지역과 진행 중인 위치에 따라 달라집니다. 자세한 내용은 Azure 대역폭 가격 책정을 참조하세요.
연결 문자열 가져오기
연결 문자열은 사용자가 만든 리소스를 식별합니다.
앱이 데이터를 보내는 모든 리소스의 연결 문자열이 필요합니다.
빌드 번호로 필터링
앱의 새 버전을 게시하면서 다른 빌드의 원격 분석을 구분하고자 할 수 있습니다.
애플리케이션 버전 속성을 설정하여 검색 및 메트릭 탐색기 결과를 필터링할 수 있습니다.
애플리케이션 버전 속성은 몇 가지 다른 방법으로 설정할 수 있습니다.
직접 설정:
telemetryClient.Context.Component.Version = typeof(MyProject.MyClass).Assembly.GetName().Version;
모든
TelemetryClient
인스턴스가 일관되게 설정되도록 원격 분석 이니셜라이저에서 해당 줄을 래핑합니다.ASP.NET:
BuildInfo.config
에서 버전을 설정합니다. 웹 모듈은BuildLabel
노드에서 버전을 선택합니다. 프로젝트에 이 파일을 포함하고 솔루션 탐색기에서 항상 복사 속성을 설정합니다.<?xml version="1.0" encoding="utf-8"?> <DeploymentEvent xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/VisualStudio/DeploymentEvent/2013/06"> <ProjectName>AppVersionExpt</ProjectName> <Build type="MSBuild"> <MSBuild> <BuildLabel kind="label">1.0.0.2</BuildLabel> </MSBuild> </Build> </DeploymentEvent>
ASP.NET: Microsoft Build Engine에서 자동으로
BuildInfo.config
를 생성합니다..csproj
파일에 몇 줄을 추가합니다.<PropertyGroup> <GenerateBuildInfoConfigFile>true</GenerateBuildInfoConfigFile> <IncludeServerNameInBuildInfo>true</IncludeServerNameInBuildInfo> </PropertyGroup>
이 단계에서는 yourProjectName
.BuildInfo.config
이라는 파일을 생성합니다. 게시 프로세스는 이름을BuildInfo.config
로 바꿉니다.Visual Studio로 빌드할 때 빌드 레이블에는 자리 표시자
(*AutoGen_...*)
이 포함되어 있습니다. 그러나 Microsoft Build Engine으로 빌드하면 올바른 버전 번호로 채워집니다.Microsoft Build Engine이 버전 번호를 생성하도록 허용하려면
AssemblyReference.cs
에서1.0.*
과 같이 버전을 설정합니다.
버전 및 릴리스 추적
애플리케이션 버전을 추적하려면 Microsoft Build Engine 프로세스가 buildinfo.config
를 생성해야 합니다. .csproj
파일에서 다음을 추가합니다.
<PropertyGroup>
<GenerateBuildInfoConfigFile>true</GenerateBuildInfoConfigFile>
<IncludeServerNameInBuildInfo>true</IncludeServerNameInBuildInfo>
</PropertyGroup>
Application Insights 웹 모듈에 빌드 정보가 있으면 자동으로 애플리케이션 버전을 모든 원격 분석 항목에 속성으로 추가합니다. 따라서 진단 검색을 수행하거나 메트릭을 탐색할 때 버전별로 필터링할 수 있습니다.
Microsoft Build Engine은 Visual Studio의 개발자 빌드가 아닌 빌드 버전 번호를 제외적으로 생성합니다.
릴리스 주석
Azure DevOps를 사용하는 경우 새 버전을 릴리스할 때마다 주석 표식이 차트에 추가됩니다.
자주 묻는 질문
이 섹션에서는 일반적인 질문에 대한 답변을 제공합니다.
Application Insights 리소스를 새 지역으로 어떻게 이동할까요?
지역 간 기존 Application Insights 리소스 전송은 지원되지 않으며 기록 데이터를 새 지역으로 마이그레이션할 수 없습니다. 해결 방법은 다음과 같습니다.
- 원하는 지역에 새 작업 영역 기반 Application Insights 리소스를 만듭니다.
- 새 리소스의 원본 리소스에서 고유한 사용자 지정을 다시 만듭니다.
- 새 지역 리소스의 연결 문자열로 애플리케이션을 업데이트합니다.
- 새로운 Application Insights 리소스를 사용하여 모든 것이 예상대로 작동하는지 테스트합니다.
- 원래 Application Insights 리소스를 유지하거나 삭제하도록 결정합니다. 클래식 리소스를 삭제하면 모든 기록 데이터가 손실됩니다. 리소스가 작업 영역 기반인 경우 데이터는 Log Analytics에 보존되므로 보존 기간이 만료될 때까지 기록 데이터에 액세스할 수 있습니다.
일반적으로 새 지역의 리소스에 대해 수동으로 다시 만들거나 업데이트해야 하는 고유한 사용자 지정 항목은 다음과 같습니다(단, 이에 한정되지 않음).
- 사용자 지정 대시보드 및 통합 문서를 다시 만듭니다.
- 사용자 지정 로그/메트릭 경고의 범위를 다시 만들거나 업데이트합니다.
- 가용성 경고를 다시 만듭니다.
- 사용자가 새 리소스에 액세스하는 데 필요한 모든 사용자 지정 Azure 역할 기반 액세스 제어 설정을 다시 만듭니다.
- 수집 샘플링, 데이터 보존, 일일 상한 및 사용자 지정 메트릭과 관련된 설정을 복제합니다. 이러한 설정은 사용량 및 예상 비용 창을 통해 제어됩니다.
- 릴리스 주석, 라이브 메트릭 보안 제어 채널 등과 같은 API 키에 의존하는 모든 통합. 새 API 키를 생성하고 연결된 통합을 업데이트해야 합니다.
- 클래식 리소스에서 연속 내보내기를 다시 구성해야 합니다.
- 작업 영역 기반 리소스의 진단 설정을 다시 구성해야 합니다.
Azure Resource Manager 배포에서 providers('Microsoft.Insights', 'components').apiVersions[0]를 사용할 수 있나요?
API 버전을 채우는 이 방법을 사용하지 않는 것이 좋습니다. 최신 버전은 호환성이 손상되는 변경이 포함될 수 있는 미리 보기 릴리스를 나타낼 수 있습니다. 미리 보기가 아닌 최신 릴리스가 있더라도 API 버전이 항상 이전 템플릿과 호환되는 것은 아닙니다. 경우에 따라 API 버전을 일부 구독에서 사용할 수 없는 경우도 있습니다.