Application Insights 커넥터 관리 솔루션(사용되지 않음)
참고
리소스 간 쿼리가 지원되므로 Application Insights 커넥터 관리 솔루션이 더 이상 필요하지 않습니다. 사용되지 않으며, Azure 상용 클라우드에 대해 2019년 1월 15일에 공식적으로 사용 중단된 OMS 포털과 함께 Azure Marketplace에서 제거되었습니다. Azure 미국 정부 클라우드의 경우 2019년 3월 30일에 사용 중지됩니다.
기존 연결은 2019년 6월 30일까지 계속 작동합니다. OMS 포털 사용 중단으로 포털에서 기존 연결을 구성하고 제거할 방법이 없습니다. PowerShell을 사용하여 기존 연결을 제거하는 스크립트는 아래의 PowerShell을 사용하여 커넥터 제거를 참조하세요.
여러 애플리케이션에 대한 Application Insights 로그 데이터를 쿼리하는 방법에 대한 지침은 Azure Monitor Application Insights 리소스 통합을 참조하세요. OMS 포털 지원 중단에 대한 자세한 내용은 Azure로 이동하는 OMS 포털을 참조하세요.
Application Insights 커넥터 솔루션은 성능 문제를 진단하고 Application Insights를 통해 모니터링하는 경우 사용자가 해당 앱으로 수행하는 작업을 파악하는 데 도움이 됩니다. 개발자가 Application Insights에서 참조하는 것과 동일한 애플리케이션 원격 분석 뷰를 Log Analytics에서 사용할 수 있습니다. 그러나 Log Analytics와 Application Insights 앱을 통합하는 경우 작업 및 애플리케이션 데이터가 한 곳에 있게 되므로 애플리케이션에 대한 가시성이 향상됩니다. 동일한 뷰가 있으면 앱 개발자와 공동 작업을 수행하는 데 도움이 됩니다. 공통 뷰는 애플리케이션 및 플랫폼 문제를 감지하고 해결하는 데 소요되는 시간을 줄일 수 있습니다.
이 솔루션을 사용하면 다음을 수행할 수 있습니다.
- Application Insights 앱이 서로 다른 Azure 구독에 있는 경우에도 모두 한 곳에서 보기
- 애플리케이션 데이터와 인프라 데이터 연결
- 로그 검색에서 큐브 뷰로 애플리케이션 데이터 시각화
- Azure Portal의 Log Analytics 데이터에서 Application Insights 앱으로 피벗
참고
Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.
연결된 소스
대부분의 다른 Log Analytics 솔루션과 달리 Application Insights 커넥터에 대해서는 데이터가 에이전트별로 수집되지 않습니다. 솔루션에서 사용하는 모든 데이터는 Azure에서 직접 옵니다.
연결된 소스 | 지원됨 | Description |
---|---|---|
Windows 에이전트 | 아니요 | 솔루션이 Windows 에이전트에서 정보를 수집하지 않습니다. |
Linux 에이전트 | 아니요 | 솔루션이 Linux 에이전트에서 정보를 수집하지 않습니다. |
SCOM 관리 그룹 | 아니요 | 솔루션이 연결된 SCOM 관리 그룹의 에이전트에서 정보를 수집하지 않습니다. |
Azure Storage 계정 | 아니요 | 솔루션이 Azure Storage에서 정보를 수집하지 않습니다. |
사전 요구 사항
- Application Insights 커넥터 정보에 액세스하려면 Azure 구독이 있어야 합니다.
- 구성된 Application Insights 리소스가 하나 이상 있어야 합니다.
- Application Insights 리소스 소유자 또는 참가자여야 합니다.
구성
- Azure marketplace에서 또는 솔루션 갤러리에서 Log Analytics 솔루션 추가에서 설명한 프로세스를 사용하여 Azure Web Apps 분석 솔루션을 사용하도록 설정합니다.
- Azure Portal로 이동합니다. 모든 서비스를 선택하여 Application Insights를 엽니다. 그런 다음, Application Insights를 검색합니다.
- 구독에서 Application Insights 리소스가 포함된 구독을 선택한 다음, 이름에서 하나 이상의 애플리케이션을 선택합니다.
- 저장을 클릭합니다.
약 30분 내에 데이터가 제공되며 다음 이미지와 같이 Application Insights 타일이 데이터로 업데이트됩니다.
기타 주의할 사항은 다음과 같습니다.
- 하나의 Log Analytics 작업 영역에만 Application Insights 앱을 연결할 수 있습니다.
- 기본 또는 엔터프라이즈 Application Insights 리소스만 Log Analytics에 연결할 수 있습니다. 그러나 Log Analytics의 무료 계층을 사용할 수 있습니다.
관리 팩
이 솔루션은 연결된 관리 그룹에서 관리 팩을 설치하지 않습니다.
솔루션 사용
다음 섹션에서는 Application Insights dashboard 표시된 섹션을 사용하여 앱의 데이터를 보고 상호 작용하는 방법을 설명합니다.
Application Insights 커넥터 정보 보기
Application Insights 타일을 클릭하여 Application Insights dashboard 열어 다음 섹션을 확인합니다.
dashboard 표에 표시된 섹션을 포함합니다. 각 섹션에는 지정된 scope 및 시간 범위에 대한 해당 섹션의 조건과 일치하는 최대 10개의 항목이 나열됩니다. 섹션 아래쪽에서 모두 보기를 클릭하거나 섹션 머리글을 클릭할 때 모든 레코드를 반환하는 로그 검색을 실행할 수 있습니다.
열 | 설명 |
---|---|
애플리케이션 - 애플리케이션 수 | 애플리케이션 리소스에 애플리케이션 수를 표시합니다. 애플리케이션 이름과 각 항목의 애플리케이션 레코드 수도 나열합니다. ApplicationInsights | summarize AggregatedValue = sum(SampledCount) by ApplicationName 에 대한 로그 검색을 실행할 번호를 클릭합니다. 호스트별 애플리케이션 레코드, 원격 분석 유형별 레코드 및 형식별 모든 데이터(마지막 날 기준)를 보여주는 애플리케이션에 대한 로그 검색을 실행할 애플리케이션 이름을 클릭합니다. |
데이터 볼륨 - 데이터를 전송하는 호스트 | 데이터를 전송하는 컴퓨터 호스트의 수를 보여 줍니다. 컴퓨터 호스트 및 각 호스트의 레코드 수도 나열합니다. ApplicationInsights | summarize AggregatedValue = sum(SampledCount) by Host 에 대한 로그 검색을 실행할 번호를 클릭합니다. 호스트별 애플리케이션 레코드, 원격 분석 유형별 레코드 및 형식별 모든 데이터(마지막 날 기준)를 보여주는 호스트에 대한 로그 검색을 실행할 컴퓨터 이름을 클릭합니다. |
가용성 - 웹 테스트 결과 | 웹 테스트 결과를 성공 또는 실패로 나타내는 도넛형 차트를 보여 줍니다. 차트를 클릭하면 ApplicationInsights | where TelemetryType == "Availability" | summarize AggregatedValue = sum(SampledCount) by AvailabilityResult 에 대한 로그 검색이 실행됩니다. 결과는 모든 테스트의 성공 및 실패 수를 보여 줍니다. 마지막 1분 동안 트래픽이 발생한 모든 Web Apps가 표시됩니다. 실패한 웹 테스트에 대한 세부 정보를 보여주는 로그 검색을 보려면 애플리케이션 이름을 클릭합니다. |
서버 요청 – 시간당 요청 | 다양한 애플리케이션의 시간당 서버 요청에 대한 꺾은선형 차트를 보여줍니다. 차트의 선을 마우스로 가리키면 특정 시점에 요청을 가장 많이 수신한 상위 3개 애플리케이션이 표시됩니다. 요청을 수신한 애플리케이션 목록과 선택한 기간의 요청 수도 보여줍니다. 다양한 애플리케이션의 시간당 서버 요청에 대한 더 자세한 꺾은선형 차트를 보여주는 ApplicationInsights | where TelemetryType == "Request" | summarize AggregatedValue = sum(SampledCount) by ApplicationName, bin(TimeGenerated, 1h) 에 대한 로그 검색을 실행하려면 그래프를 클릭합니다. 요청 목록, 시간 및 요청 기간에 따른 요청 차트, 요청 응답 코드 목록을 보여주는 ApplicationInsights | where ApplicationName == "yourapplicationname" and TelemetryType == "Request" and iff(isnotnull(toint(RequestSuccess)), RequestSuccess == false, RequestSuccess == "false") == true 에 대한 로그 검색을 실행하려면 목록에서 애플리케이션을 클릭합니다. |
실패 - 시간당 실패한 요청 수 | 시간당 실패한 애플리케이션 요청 수에 대한 꺾은선형 차트를 보여줍니다. 차트를 마우스로 가리키면 특정 시점에 실패한 요청이 가장 많은 상위 3개 애플리케이션이 표시됩니다. 각 애플리케이션의 실패한 요청 수가 표시된 애플리케이션 목록도 보여줍니다. 실패한 애플리케이션 요청을 자세한 꺾은선형 차트로 보여주는 ApplicationInsights | where TelemetryType == "Request" and iff(isnotnull(toint(RequestSuccess)), RequestSuccess == false, RequestSuccess == "false") == true | summarize AggregatedValue = sum(SampledCount) by ApplicationName, bin(TimeGenerated, 1h) 에 대한 로그 검색을 실행하려면 차트를 클릭합니다. 실패한 요청, 시간 및 요청 기간에 따른 실패한 요청 차트, 실패한 요청 응답 코드 목록을 보여 주는 ApplicationInsights | where ApplicationName == "yourapplicationname" and TelemetryType == "Request" and iff(isnotnull(toint(RequestSuccess)), RequestSuccess == false, RequestSuccess == "false") == true 에 대한 로그 검색을 실행하려면 목록에서 항목을 클릭합니다. |
예외 – 시간당 예외 | 시간당 예외에 대한 꺾은선형 차트를 보여 줍니다. 차트를 마우스로 가리키면 특정 시점에 예외가 가장 많은 상위 3개 애플리케이션이 표시됩니다. 각 애플리케이션의 예외 수가 표시된 애플리케이션 목록도 보여줍니다. 예외에 대한 더 자세한 연결 차트를 보여 주는 ApplicationInsights | where TelemetryType == "Exception" | summarize AggregatedValue = sum(SampledCount) by ApplicationName, bin(TimeGenerated, 1h) 에 대한 로그 검색을 실행하려면 차트를 클릭합니다. 예외 목록, 시간 및 실패한 요청에 따른 예외 차트, 예외 형식 목록을 보여 주는 ApplicationInsights | where ApplicationName == "yourapplicationname" and TelemetryType == "Exception" 에 대한 로그 검색을 실행하려면 목록에서 항목을 클릭합니다. |
로그 검색을 통해 Application Insights 큐브 뷰 보기
대시보드에서 임의의 항목을 클릭하면 검색에 Application Insights 큐브 뷰가 표시됩니다. 큐브 뷰는 선택한 원격 분석 유형에 따라 확장된 시각화를 제공합니다. 따라서 원격 분석 유형에 따라 시각화 콘텐츠가 변경됩니다.
애플리케이션 섹션의 아무 곳이나 클릭하면 기본 애플리케이션 관점이 표시됩니다.
큐브 뷰는 선택한 애플리케이션에 대한 개요를 보여줍니다.
가용성 섹션에는 웹 테스트 결과 및 관련 실패한 요청을 볼 수 있는 다른 관점 보기가 표시됩니다.
서버 요청 또는 실패 섹션의 아무 곳이나 클릭하면 큐브 뷰 구성 요소가 변경되어 요청과 관련된 시각화를 제공합니다.
예외 섹션의 아무 곳이나 클릭하면 예외에 맞게 조정된 시각화가 표시됩니다.
항목을 클릭한 위치가 Application Insights 커넥터 대시보드인지, 검색 페이지 내인지 상관없이 Application Insights 데이터를 반환하는 쿼리는 Application Insights 큐브 뷰를 보여줍니다. 예를 들어 Application Insights 데이터를 보고 있는 경우 * 쿼리도 다음 이미지와 같은 큐브 뷰 탭을 보여 줍니다.
큐브 뷰 구성 요소는 검색 쿼리에 따라 업데이트됩니다. 즉, 데이터를 볼 수 있는 기능을 제공하는 검색 필드를 사용하여 결과를 필터링할 수 있습니다.
- 모든 애플리케이션
- 선택된 단일 애플리케이션
- 애플리케이션 그룹
Azure Portal에서 앱에 피벗
Application Insights 커넥터 섹션은 Azure Portal 사용할 때 선택한 Application Insights 앱으로 피벗할 수 있도록 설계되었습니다. 솔루션을 앱 문제 해결에 도움이 되는 상위 수준 모니터링 플랫폼으로 사용할 수 있습니다. 연결된 애플리케이션에서 잠재적인 문제가 발견되면 Log Analytics 검색에서 자세히 알아보거나 Application Insights 앱에 직접 피벗할 수 있습니다.
피벗하려면 각 행의 끝에 표시되는 줄임표(…)를 클릭하고 Open in Application Insights(Application Insights에서 열기)를 선택합니다.
참고
Azure Portal에서는 Open in Application Insights(Application Insights에서 열기)를 사용할 수 없습니다.
샘플 수정 데이터
Application Insights는 샘플링 수정을 제공하므로 원격 분석 트래픽을 줄이는 데 도움이 됩니다. Application Insights 앱에서 샘플링을 사용하도록 설정하는 경우 Application Insights 및 Log Analytics 모두에서 저장되는 항목의 수가 감소됩니다. Application Insights 커넥터 페이지 및 큐브 뷰에서 데이터 일관성이 유지되지만 사용자 지정 쿼리를 위해 샘플링된 데이터는 수동으로 수정해야 합니다.
다음은 로그 검색 쿼리의 샘플링 수정 예입니다.
ApplicationInsights | summarize AggregatedValue = sum(SampledCount) by TelemetryType
Sampled Count(샘플링된 수) 필드는 모든 항목에 있으며 항목이 나타내는 데이터 요소 수를 보여 줍니다. Application Insights 앱에 대해 샘플링이 설정된 경우 Sampled Count(샘플링된 수)가 1보다 큽니다. 애플리케이션에서 생성하는 실제 항목 수를 계산하려면 Sampled Count(샘플링된 수) 필드를 합산합니다.
샘플링은 애플리케이션에서 생성하는 총 항목 수에만 영향을 줍니다. RequestDuration 또는 AvailabilityDuration 같은 메트릭 필드는 표시된 항목의 평균을 보여 주므로 해당 필드에 대한 샘플링은 수정할 필요가 없습니다.
입력 데이터
솔루션은 연결된 Application Insights 앱에서 다음과 같은 원격 분석 유형의 데이터를 수신합니다.
- 가용성
- 예외
- 요청
- 페이지 보기 - 작업 영역에서 페이지 보기를 받으려면 앱에서 해당 정보를 수집하도록 구성해야 합니다. 자세한 내용은 PageViews를 참조하세요.
- 사용자 지정 이벤트 - 작업 영역에서 사용자 지정 이벤트를 받으려면 앱에서 해당 정보를 수집하도록 구성해야 합니다. 자세한 내용은 TrackEvent를 참조하세요.
데이터를 사용할 수 있게 되면 Application Insights에서 Log Analytics로 수신됩니다.
출력 데이터
각 형식의 입력 데이터에 대해 종류가 ApplicationInsights인 레코드가 만들어집니다. ApplicationInsights 레코드에는 다음 섹션에 표시된 속성이 포함되어 있습니다.
일반 필드
속성 | Description |
---|---|
형식 | ApplicationInsights |
ClientIP | |
TimeGenerated | 레코드 시간 |
ApplicationId | Application Insights 앱의 계측 키 |
ApplicationName | Application Insights 앱의 이름 |
RoleInstance | 서버 호스트의 ID |
DeviceType | 클라이언트 디바이스 |
ScreenResolution | |
Continent | 요청이 시작된 대륙 |
국가 | 요청이 시작된 국가/지역 |
Province | 요청이 시작된 시/도 또는 로캘 |
구/군/시 | 요청이 시작된 구/군/시 또는 동/면 |
isSynthetic | 요청이 사용자에 의해 만들어졌는지 자동화된 방법을 통해 만들어졌는지 나타냅니다. True =자동화된 방법 또는 false = 사용자가 생성함 |
SamplingRate | 포털에 전송되는 SDK에 의해 생성된 원격 분석의 비율입니다. 범위는 0.0-100.0입니다. |
SampledCount | 100/(SamplingRate)입니다. 예를 들어 4 => 25%입니다. |
IsAuthenticated | True 또는 False |
OperationID | 작업 ID가 동일한 항목은 포털에서 관련 항목으로 표시됩니다. 일반적으로 요청 ID입니다. |
ParentOperationID | 부모 작업 ID |
OperationName | |
SessionId | 요청이 만들어진 세션을 고유하게 식별하는 GUID |
SourceSystem | ApplicationInsights |
가용성 관련 필드
속성 | Description |
---|---|
TelemetryType | 가용성 |
AvailabilityTestName | 웹 테스트의 이름 |
AvailabilityRunLocation | Http 요청의 지리적 소스 |
AvailabilityResult | 웹 테스트의 성공 결과 표시 |
AvailabilityMessage | 웹 테스트에 연결된 메시지 |
AvailabilityCount | 100/(샘플링 속도)입니다. 예를 들어 4 => 25%입니다. |
DataSizeMetricValue | 1.0 또는 0.0 |
DataSizeMetricCount | 100/(샘플링 속도)입니다. 예를 들어 4 => 25%입니다. |
AvailabilityDuration | 웹 테스트 기간 시간(밀리초) |
AvailabilityDurationCount | 100/(샘플링 속도)입니다. 예를 들어 4 => 25%입니다. |
AvailabilityValue | |
AvailabilityMetricCount | |
AvailabilityTestId | 웹 테스트의 고유 GUID |
AvailabilityTimestamp | 정확한 가용성 테스트 타임스탬프 |
AvailabilityDurationMin | 샘플링된 레코드의 경우 이 필드는 표시된 데이터 요소의 최소 웹 테스트 기간(밀리초)을 보여 줍니다. |
AvailabilityDurationMax | 샘플링된 레코드의 경우 이 필드는 표시된 데이터 요소의 최대 웹 테스트 기간(밀리초)을 보여 줍니다. |
AvailabilityDurationStdDev | 샘플링된 레코드의 경우 이 필드는 표시된 데이터 요소의 모든 웹 테스트 기간(밀리초) 사이의 표준 편차를 보여 줍니다. |
AvailabilityMin | |
AvailabilityMax | |
AvailabilityStdDev |
예외 관련 필드
형식 | ApplicationInsights |
---|---|
TelemetryType | 예외 |
ExceptionType | 예외 형식 |
ExceptionMethod | 예외를 만드는 메서드 |
ExceptionAssembly | 어셈블리에는 공개 키 토큰뿐만 아니라 프레임워크와 버전 이 포함됩니다. |
ExceptionGroup | 예외 형식 |
ExceptionHandledAt | 예외를 처리한 수준 표시 |
ExceptionCount | 100/(샘플링 속도)입니다. 예를 들어 4 => 25%입니다. |
ExceptionMessage | 예외 메시지 |
ExceptionStack | 예외의 전체 스택 |
ExceptionHasStack | 예외에 스택이 있는 경우 True |
요청 관련 필드
속성 | Description |
---|---|
형식 | ApplicationInsights |
TelemetryType | 요청 |
ResponseCode | 클라이언트에 보낸 HTTP 응답 |
RequestSuccess | 성공 또는 실패를 표시합니다. True 또는 False입니다. |
RequestID | 요청을 고유하게 식별하는 ID |
RequestName | GET/POST + URL 기본 |
RequestDuration | 요청 기간 시간(초) |
URL | 호스트를 포함하지 않는 요청의 URL |
호스트 | 웹 서버 호스트 |
URLBase | 요청의 전체 URL |
ApplicationProtocol | 애플리케이션에서 사용되는 프로토콜의 유형 |
RequestCount | 100/(샘플링 속도)입니다. 예를 들어 4 => 25%입니다. |
RequestDurationCount | 100/(샘플링 속도)입니다. 예를 들어 4 => 25%입니다. |
RequestDurationMin | 샘플링된 레코드의 경우 이 필드는 표시된 데이터 요소의 최소 요청 기간(밀리초)을 보여 줍니다. |
RequestDurationMax | 샘플링된 레코드의 경우 이 필드는 표시된 데이터 요소의 최대 요청 기간(밀리초)을 보여 줍니다. |
RequestDurationStdDev | 샘플링된 레코드의 경우 이 필드는 표시된 데이터 요소의 모든 요청 기간(밀리초) 사이의 표준 편차를 보여 줍니다. |
샘플 로그 검색
이 솔루션에는 대시보드에 표시되는 샘플 로그 검색 집합이 없습니다. 그러나 설명이 포함된 샘플 로그 검색 쿼리가 Application Insights 커넥터 정보 보기 섹션에 표시됩니다.
PowerShell을 사용하여 커넥터 제거
OMS 포털 사용 중단으로 포털에서 기존 연결을 구성하고 제거할 방법이 없습니다. 다음 PowerShell 스크립트를 사용하여 기존 연결을 제거할 수 있습니다. 이 작업을 수행하려면 작업 영역의 owner 또는 contributor이고 Application Insights 리소스의 reader여야 합니다.
$Subscription_app = "App Subscription Name"
$ResourceGroup_app = "App ResourceGroup"
$Application = "Application Name"
$Subscription_workspace = "Workspace Subscription Name"
$ResourceGroup_workspace = "Workspace ResourceGroup"
$Workspace = "Workspace Name"
Connect-AzAccount
Set-AzContext -SubscriptionId $Subscription_app
$AIApp = Get-AzApplicationInsights -ResourceGroupName $ResourceGroup_app -Name $Application
Set-AzContext -SubscriptionId $Subscription_workspace
Remove-AzOperationalInsightsDataSource -WorkspaceName $Workspace -ResourceGroupName $ResourceGroup_workspace -Name $AIApp.Id
REST API 호출을 호출하는 다음 PowerShell 스크립트를 사용하여 애플리케이션 목록을 검색할 수 있습니다.
Connect-AzAccount
$Tenant = "TenantId"
$Subscription_workspace = "Workspace Subscription Name"
$ResourceGroup_workspace = "Workspace ResourceGroup"
$Workspace = "Workspace Name"
$AccessToken = "AAD Authentication Token"
Set-AzContext -SubscriptionId $Subscription_workspace
$LAWorkspace = Get-AzOperationalInsightsWorkspace -ResourceGroupName $ResourceGroup_workspace -Name $Workspace
$Headers = @{
"Authorization" = "Bearer $($AccessToken)"
"x-ms-client-tenant-id" = $Tenant
}
$Connections = Invoke-RestMethod -Method "GET" -Uri "https://management.azure.com$($LAWorkspace.ResourceId)/dataSources/?%24filter=kind%20eq%20'ApplicationInsights'&api-version=2015-11-01-preview" -Headers $Headers
$ConnectionsJson = $Connections | ConvertTo-Json
이 스크립트가 Azure Active Directory에 인증하려면 전달자 인증 토큰이 필요합니다. 이 토큰을 검색하는 한 가지 방법은 REST API 문서 사이트의 문서를 사용하는 것입니다. 사용해 보기를 클릭하고 Azure 구독에 로그인합니다. 다음 이미지와 같이 요청 미리 보기에서 전달자 토큰을 복사할 수 있습니다.
로그 쿼리를 사용하여 애플리케이션 목록을 검색할 수도 있습니다.
ApplicationInsights | summarize by ApplicationName
다음 단계
- Application Insights 앱에 대한 자세한 정보를 보려면 로그 검색을 사용합니다.