다음을 통해 공유


Azure Data Explorer를 사용하여 Azure Monitor에서 데이터 쿼리

Azure Data Explorer는 Azure Data Explorer, AI(Application Insights 리소스) 및 LA(Log Analytics 작업 영역) 간의 서비스 간 쿼리를 지원합니다. Azure Data Explorer 쿼리 도구 및 서비스 간 쿼리를 사용하여 Log Analytics 작업 영역 또는 Application Insights 리소스를 쿼리할 수 있습니다. 이 문서에서는 서비스 간 쿼리를 만들고 Log Analytics 작업 영역 또는 Application Insights 리소스를 Azure Data Explorer 웹 UI에 추가하는 방법을 보여 줍니다.

Azure Data Explorer 서비스 간 쿼리 흐름:

Azure Data Explorer 서비스 간 쿼리 흐름을 보여 주는 다이어그램

Azure Data Explorer 클라이언트 도구에 Log Analytics 작업 영역/Application Insights 리소스 추가

Azure Data Explorer 클라이언트 도구에 Log Analytics 작업 영역 또는 Application Insights 리소스를 추가하여 클러스터에 대해 서비스 간 쿼리를 사용하도록 설정합니다.

  1. Log Analytics 작업 영역 또는 Application Insights 리소스에 연결하기 전에 왼쪽 메뉴에 Azure Data Explorer 네이티브 클러스터(예: 도움말 클러스터)가 표시되는지 확인합니다.

    Azure Data Explorer 네이티브 클러스터로 선택된 도움말 클러스터가 있는 왼쪽 메뉴를 보여주는 스크린샷.

  2. Azure Data Explorer UI에서 + 추가연결을 선택합니다.

  3. 연결 추가 창에서 LA(Log Analytics) 작업 영역 또는 AI(Application Insights) 리소스의 URL 및 표시 이름을 추가합니다.

    • LA(Log Analytics) 작업 영역의 경우: https://ade.loganalytics.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>
    • AI(Application Insights) 리소스의 경우: https://ade.applicationinsights.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<ai-app-name>

    참고 항목

    구독의 모든 데이터베이스를 보려면 https://ade.applicationinsights.io/subscriptions/<subscription-id>를 지정합니다. 이 구문은 Log Analytics 작업 영역 클러스터에서도 작동합니다.

  4. 추가를 선택합니다.

    연결 추가 창을 보여주는 스크린샷.

    참고 항목

    • 다음에 대한 다양한 엔드포인트가 있습니다.
    • Azure Government- adx.monitor.azure.us/
    • Azure 중국- adx.monitor.azure.cn/
    • 둘 이상의 Log Analytics 작업 영역/Application Insights 리소스에 연결을 추가하는 경우 각각 다른 이름을 지정합니다. 그렇지 않은 경우 왼쪽 창에서 모두 동일한 이름을 갖게 됩니다.
  5. 연결이 설정되면 Log Analytics 작업 영역 또는 Application Insights 리소스가 왼쪽 창에 네이티브 Azure Data Explorer 클러스터와 함께 표시됩니다.

    Log Analytics 작업 영역 및 Azure Data Explorer 클러스터를 보여 주는 스크린샷

참고 항목

Azure Monitor의 데이터에 대한 Azure Data Explorer에서 실행하는 쿼리에는 리소스 간 쿼리 제한이 적용 됩니다.

쿼리 실행

Kusto Explorer, Azure Data Explorer web UI, Jupyter Kqlmagic, Flow, PowerQuery, PowerShell, Lens, REST API와 같이 Kusto 쿼리를 지원하는 클라이언트 도구를 사용하여 쿼리를 실행할 수 있습니다.

참고 항목

서비스 간 쿼리는 데이터 검색에만 사용됩니다. 자세한 내용은 함수 지원 가능성을 참조하세요.

  • 데이터베이스는 서비스 간 쿼리에서 지정된 리소스 이름과 같아야 합니다. 이름은 대/소문자를 구분합니다.
  • 서비스 간 쿼리에서 Application Insights 리소스 및 Log Analytics 작업 영역 이름이 올바른지 확인합니다.
  • 이름에 특수 문자가 포함된 경우 서비스 간 쿼리에서 URL 인코딩으로 바꿉니다.
  • 이름에 KQL 식별자 이름 규칙을 충족하지 않는 문자가 포함된 경우 대시(-) 문자로 바꿉니다.

Azure Data Explorer 클라이언트 도구에서 Log Analytics 작업 영역 또는 Application Insights 리소스에 대한 직접 쿼리

Azure Data Explorer 클라이언트 도구에서 Log Analytics 작업 영역 또는 Application Insights 리소스에서 쿼리를 실행할 수 있습니다.

  1. 왼쪽 창에서 작업 영역이 선택되어 있는지 확인합니다.

  2. 다음 쿼리를 실행합니다.

Perf | take 10 // Demonstrate cross-service query on the Log Analytics workspace

Log Analytics 작업 영역 쿼리를 보여 주는 스크린샷.

Log Analytics 작업 영역 또는 Application Insights 리소스 및 Azure Data Explorer 네이티브 클러스터의 교차 쿼리

클러스터 간 서비스 쿼리를 실행할 때 왼쪽 창에서 Azure Data Explorer 네이티브 클러스터가 선택되어 있는지 확인합니다. 다음 예제에서는 Azure Data Explorer 클러스터 테이블(union 사용)과 Log Analytics 작업 영역을 결합하는 방법을 보여줍니다.

다음 쿼리를 실행합니다.

union StormEvents, cluster('https://ade.loganalytics.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>').database('<workspace-name>').Perf
| take 10
let CL1 = 'https://ade.loganalytics.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>';
union <ADX table>, cluster(CL1).database(<workspace-name>).<table name>

Azure Data Explorer 웹 UI에서 서비스 간 쿼리를 보여주는 스크린샷.

union 대신 join 연산자를 사용하는 경우 Azure Data Explorer 네이티브 클러스터에서 이를 실행하려면 hint가 필요할 수 있습니다.

다른 테넌트에서 Azure Monitor 리소스를 사용하여 한 테넌트의 Azure Data Explorer 클러스터에서 데이터 조인

서비스 사이에서 테넌트 간 쿼리는 지원되지 않습니다. 두 리소스 모두로 확장하여 쿼리를 실행하기 위해 단일 테넌트에 로그인했습니다.

Azure Data Explorer 리소스가 tenant-name-a있고 Log Analytics 작업 영역이 tenant-name-b에 있는 경우 다음 두 가지 방법 중 하나를 사용합니다.

  1. Azure Data Explorer를 사용하면 다른 테넌트의 보안 주체에 대한 역할을 추가할 수 있습니다. tenant-name-b사용자 ID를 Azure Data Explorer 클러스터의 권한 있는 사용자로 추가합니다. tenant-name-b에 포함된 Azure Data Explorer 클러스터에서 'TrustedExternalTenant' 속성의 유효성을 검사합니다. tenant-name-b에서 교차 쿼리를 완전히 실행합니다.

  2. Lighthouse를 사용하여 Azure Monitor 리소스를 tenant-name-a프로젝트합니다.

다른 테넌트에서 Azure Data Explorer 클러스터에 연결

Kusto 탐색기는 사용자 계정이 원래 속한 테넌트에 자동으로 로그인합니다. 동일한 사용자 계정 tenantId 으로 다른 테넌트에서 리소스에 액세스하려면 연결 문자열 명시적으로 지정해야 합니다.Data Source=https://ade.applicationinsights.io/subscriptions/SubscriptionId/resourcegroups/ResourceGroupName;Initial Catalog=NetDefaultDB;AAD Federated Security=True;Authority ID=<TenantId>

함수 지원 가능성

Azure Data Explorer 서비스 간 쿼리는 Application Insights 리소스와 Log Analytics 작업 영역 모두에 대한 함수를 지원합니다. 이 기능을 사용하면 클러스터 간 쿼리를 통해 Azure Monitor 테이블 형식 함수를 직접 참조할 수 있습니다. 다음 명령은 서비스 간 쿼리에서 지원합니다.

  • .show functions
  • .show function [FunctionName]
  • .show database [DatabaseName] schema as json

제한 사항

  • 서비스 간 쿼리는 .show functions. 이 기능을 사용하면 클러스터 간 쿼리가 Azure Monitor, Azure Data Explorer 또는 Azure Resource Graph 표 형식 함수를 직접 참조할 수 있습니다. 다음 명령은 서비스 간 쿼리에서 지원합니다.

    • .show functions
    • .show function [FunctionName]
    • .show database [DatabaseName] schema as json
  • Private Link(프라이빗 엔드포인트) 및 IP 제한은 서비스 간 쿼리를 지원하지 않습니다.

추가 구문 예제

Application Insights 리소스 또는 Log Analytics 작업 영역을 호출할 때 사용할 수 있는 구문 옵션은 다음과 같습니다.

구문 설명 Application Insights 리소스 Log Analytics 작업 영역
이 구독에 정의된 리소스만 포함된 클러스터 내의 데이터베이스(클러스터 간 쿼리에 추천됨) cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<ai-app-name>').database('<ai-app-name>') cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>').database('<workspace-name>')
이 구독의 모든 앱/작업 영역이 포함된 클러스터 cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>') cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>')
구독의 모든 앱/작업 영역이 포함되고 이 리소스 그룹의 멤버인 클러스터 cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>') cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>')
이 구독에 정의된 리소스만 포함된 클러스터 cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<ai-app-name>') cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>')
UsGov의 엔드포인트용 cluster('https://adx.monitor.azure.us/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>')
중국 21Vianet의 엔드포인트용 cluster('https://adx.monitor.azure.cn/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>')