Azure Monitor 로그의 쿼리 팩

쿼리 팩은 Azure Monitor에서 로그 쿼리에 대한 컨테이너 역할을 합니다. 이를 통해 로그 쿼리를 저장하고 Log Analytics의 작업 영역 및 기타 컨텍스트에서 공유할 수 있습니다.

사용 권한

Azure Portal에서 볼 때 쿼리 팩의 사용 권한을 설정할 수 있습니다. 쿼리 팩을 사용하려면 다음 사용 권한이 필요합니다.

  • Reader: 사용자는 쿼리 팩의 모든 쿼리를 보고 실행할 수 있습니다.

  • Contributor - 사용자는 기존 쿼리를 수정하고 쿼리 팩에 새 쿼리를 추가할 수 있습니다.

    Important

    사용자가 쿼리를 수정하거나 추가해야 하는 경우 항상 사용자에게 DefaultQueryPack에 대한 기여자 권한을 부여합니다. 그렇지 않으면 사용자가 다른 쿼리 팩을 포함하여 구독에 쿼리를 저장할 수 없습니다.

쿼리 팩 보기

Azure Portal 쿼리 팩을 보고 관리하려면 Log Analytics 쿼리 팩 메뉴를 선택하세요. 보고자 하는 쿼리 팩을 선택하여 해당 사용 권한을 편집합니다. 이 문서에서는 API를 사용하여 쿼리 팩을 만드는 방법을 설명합니다.

Screenshot that shows query packs.

기본 쿼리 팩

Azure Monitor는 첫 번째 쿼리를 저장할 때 LogAnalyticsDefaultResources라는 리소스 그룹의 각 구독에 DefaultQueryPack이라는 쿼리 팩을 자동으로 만듭니다. 요구 사항에 따라 이 쿼리 팩에 쿼리를 저장하거나 다른 쿼리 팩을 만들 수 있습니다.

여러 쿼리 팩 사용

대부분 사용자의 경우 쿼리를 저장하고 다시 사용하기 위해 기본 쿼리 팩만 있으면 충분합니다. 예를 들어 다른 Log Analytics 세션에서 서로 다른 쿼리 집합을 로드하고 다양한 쿼리 컬렉션에 대해 서로 다른 권한을 제공하려는 경우 조직의 사용자를 위해 여러 쿼리 팩을 만들 수 있습니다.

새 쿼리 팩을 만드는 경우 비즈니스 요구 사항에 따라 쿼리를 분류하는 태그를 추가할 수 있습니다. 예를 들어 쿼리 팩에 태그를 표시하여 조직의 특정 부서나 포함된 쿼리가 해결해야 하는 문제의 심각도에 연관시킬 수 있습니다. 태그를 사용하면 다양한 사용자 세트 및 다양한 상황에 적합한 서로 다른 쿼리 세트를 만들 수 있습니다.

Log Analytics 작업 영역에 쿼리 팩을 추가하려면 다음을 수행합니다.

  1. Log Analytics를 열고 오른쪽 위 모서리에서 쿼리를 선택합니다.
  2. 쿼리 대화 상자의 왼쪽 위 모서리의 쿼리 팩 옆에서 쿼리 팩 선택 또는 0개 선택됨을 클릭합니다.
  3. 작업 영역에 추가하려는 쿼리 팩을 선택합니다.

Screenshot that shows the Select query packs page in Log Analytics, where you can add query packs to a Log Analytics workspace.

Important

Log Analytics 작업 영역에 최대 5개의 쿼리 팩을 추가할 수 있습니다.

쿼리 팩 만들기

REST API를 사용하거나 Azure Portal의 Log Analytics 쿼리 팩 창에서 쿼리 팩을 만들 수 있습니다. 포털에서 Log Analytics 쿼리 팩 창을 열려면 모든 서비스>기타를 선택합니다.

참고 항목

쿼리 팩에 저장된 쿼리는 고객 관리형 키로 암호화되지 않습니다. 대신 쿼리를 저장할 때 레거시 쿼리로 저장을 선택하여 고객 관리형 키로 보호합니다.

토큰 만들기

API 요청의 인증을 위해 토큰이 있어야 합니다. 토큰을 가져오는 방법에는 여러 가지가 있습니다. 한 가지 방법은 armclient를 사용하는 것입니다.

먼저 다음 명령을 사용하여 Azure에 로그인합니다.

armclient login

그런 후, 다음 명령을 사용하여 토큰을 만듭니다. 토큰은 클립보드에 자동으로 복사되므로 다른 도구에 붙여넣을 수 있습니다.

armclient token

페이로드 만들기

요청의 페이로드는 하나 이상의 쿼리와 쿼리 팩을 저장해야 하는 위치를 정의하는 JSON입니다. 쿼리 팩의 이름은 다음 섹션에서 설명하는 API 요청에 지정됩니다.

{
    "location": "eastus",
    "properties":
    {
        "displayName": "Query name that will be displayed in the UI",
        "description": "Query description that will be displayed in the UI",
        "body": "<<query text, standard KQL code>>",
        "related": {
            "categories": [
                "workloads"
            ],
            "resourceTypes": [
                "microsoft.insights/components"
            ],
            "solutions": [
                "logmanagement"
            ]
        },
        "tags": {
            "Tag1": [
                "Value1",
                "Value2"
            ]
        }
    }
}

쿼리 팩의 각 쿼리에는 다음과 같은 속성이 있습니다.

속성 설명
displayName 각 쿼리에 대한 Log Analytics에 나열된 표시 이름입니다.
description 각 쿼리에 대해 Log Analytics에 표시되는 쿼리에 대한 설명입니다.
body Kusto 쿼리 언어로 작성된 쿼리입니다.
related 쿼리에 대한 관련 범주, 리소스 종류 및 솔루션입니다. 사용자가 쿼리를 찾을 수 있도록 Log Analytics에서 그룹화 및 필터링하는 데 사용됩니다. 각 쿼리는 각 형식을 최대 10개까지 가질 수 있습니다. https://api.loganalytics.io/v1/metadata?select=resourceTypes, 솔루션, 범주에서 허용되는 값을 검색합니다.
tags 사용자가 Log Analytics에서 정렬 및 필터링하는 데 사용하는 다른 태그입니다. 각 태그는 쿼리를 그룹화하고 필터링할 때 범주, 리소스 종류 및 솔루션에 추가됩니다.

요청 만들기

REST API를 사용하여 새로운 쿼리 팩을 만들려면 다음 요청을 사용합니다. 요청은 전달자 토큰 권한 부여를 사용해야 합니다. 콘텐츠 형식은 application/json이어야 합니다.

POST https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.Insights/querypacks/my-query-pack?api-version=2019-09-01

Fiddler 또는 Postman과 같은 REST API 요청을 제출할 수 있는 도구를 통해 이전 섹션에서 설명한 페이로드를 사용하여 요청을 제출합니다. 쿼리 ID가 생성되고 페이로드에 반환됩니다.

쿼리 팩 업데이트

쿼리 팩을 업데이트하려면 업데이트된 페이로드로 다음 요청을 제출합니다. 이 명령에는 쿼리 팩 ID가 필요합니다.

POST https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.Insights/querypacks/my-query-pack/queries/query-id/?api-version=2019-09-01

다음 단계

사용자가 Log Analytics에서 쿼리 팩과 상호 작용하는 방법을 보려면 Azure Monitor Log Analytics에서 쿼리 사용을 참조하세요.