Azure에서 진단 설정을 사용하여 Azure Cosmos DB 데이터 모니터링

적용 대상: NoSQL MongoDB Cassandra Gremlin 테이블

Azure의 진단 설정은 리소스 로그를 수집하는 데 사용됩니다. 리소스는 Azure 리소스 로그를 내보내고, 해당 리소스의 작업에 대한 풍부하고 빈도 높은 데이터를 제공합니다. 이러한 로그는 요청별로 캡처되며 “데이터 평면 로그”라고도 불립니다. 데이터 평면 작업의 몇 가지 예로는 delete, insert 및 readFeed가 있습니다. 이러한 로그의 내용은 리소스 종류에 따라 달라집니다.

플랫폼 메트릭과 활동 로그는 자동으로 수집되지만 리소스 로그를 수집하거나 Azure Monitor 외부로 전달 하려면 진단 설정을 만들어야 합니다. Azure Cosmos DB 계정에 대한 진단 설정을 활성화하고 다음 원본에 리소스 로그를 보낼 수 있습니다.

  • Log Analytics 작업 영역
    • Log Analytics로 전송된 데이터를 Azure 진단(레거시) 또는 리소스 관련(미리 보기) 표에 쓸 수 있습니다
  • 이벤트 허브
  • 스토리지 계정

참고 항목

REST API를 통한 진단 설정 생성에 대한 지침에 따라 리소스별 모드(Table용 API를 제외한 모든 API에 대해)에서 진단 설정을 생성하는 것이 좋습니다. 이 옵션은 데이터 처리를 위한 향상된 보기를 통해 추가 비용 최소화를 이끌어 냅니다.

필수 조건

진단 설정 만들기

여기서는 계정에 대한 진단 설정을 만드는 프로세스를 안내합니다.

  1. Azure Portal에 로그인합니다.

  2. Azure Cosmos DB 계정으로 이동합니다. 모니터링 섹션 아래에서 진단 설정 창을 열고 진단 설정 추가 옵션을 선택합니다.

    Sreenshot of the diagnostics selection page.

    Important

    전체 텍스트 쿼리 기능이 계정에서 사용하도록 설정되지 않은 경우 “전체 텍스트 쿼리를 사용하도록 설정[...]”이라는 메시지가 표시될 수 있습니다. 이 기능을 사용하지 않으려면 이 경고를 무시해도 됩니다. 자세한 내용은 전체 텍스트 쿼리 사용을 참조하세요.

  3. 진단 설정 창에서 원하는 범주로 양식을 채웁니다. 여기에 로그 범주 목록이 포함됩니다.

    범주 API 정의 키 속성
    DataPlaneRequests API for NoSQL에 권장됨 백 엔드 요청을 데이터 평면 작업으로 로그합니다. 이 요청은 계정 내에서 데이터를 작성, 업데이트, 삭제 및 검색하기 위해 실행됩니다. Requestcharge, statusCode, clientIPaddress, partitionID, resourceTokenPermissionIdresourceTokenPermissionMode
    MongoRequests MongoDB용 API 프런트 엔드에서 사용자 개시 요청을 로그하여 Azure Cosmos DB for MongoDB에 대한 요청을 처리합니다. 이 범주를 사용하도록 설정하는 경우 DataPlaneRequests를 비활성화해야 합니다. Requestcharge, opCode, retryCount, piiCommandText
    CassandraRequests Apache Cassandra용 API 프런트 엔드에서 사용자 개시 요청을 로그하여 Azure Cosmos DB for Cassandra에 대한 요청을 처리합니다. operationName, requestCharge, piiCommandText
    GremlinRequests Apache Gremlin용 API 프런트 엔드에서 사용자 개시 요청을 로그하여 Azure Cosmos DB for Gremlin에 대한 요청을 처리합니다. operationName, requestCharge, piiCommandText, retriedDueToRateLimiting
    QueryRuntimeStatistics NoSQL용 API 이 표에서는 NoSQL용 API 계정에 대해 실행되는 쿼리 작업을 자세히 설명합니다. 기본값으로, 쿼리 텍스트와 해당 매개 변수는 요청에 의해 사용할 수 있는 전체 텍스트 쿼리 로깅으로 개인 데이터를 로깅하지 않도록 난독 처리됩니다. databasename, partitionkeyrangeid, querytext
    PartitionKeyStatistics 모든 API 파티션 키의 예상 스토리지 크기(KB)를 표시하여 논리 파티션 키의 통계를 기록합니다. 이 표는 스토리지 기울이기 문제 해결에 유용합니다. 이 PartitionKeyStatistics 로그는 다음 조건이 충족되는 경우에만 내보내집니다. 1. 물리적 파티션의 문서의 1% 이상에 동일한 논리적 파티션 키가 있습니다. 2. PartitionKeyStatistics 로그는 물리적 파티션의 모든 키 중에서 가장 큰 스토리지 크기를 가진 상위 3개의 키를 캡처합니다. 이전 조건이 충족되지 않으면, 파티션 키 통계 데이터를 사용할 수 없습니다. 위의 조건이 계정에 대해 충족되지 않아도 괜찮습니다. 이는 일반적으로 논리 파티션 스토리지 기울이기가 없음을 의미합니다. 참고: 파티션 키의 예상 크기는 물리적 파티션의 문서가 거의 같은 크기라고 가정하는 샘플링 접근 방식을 사용하여 계산됩니다. 문서 크기가 물리적 파티션에서 균일하지 않으면 예상 파티션 키 크기가 정확하지 않을 수 있습니다. subscriptionId, regionName, partitionKey, sizeKB
    PartitionKeyRUConsumption API for NoSQL 또는 API for Apache Gremlin 파티션 키의 집계된 초당 RU/s 소비를 로그합니다. 이 표는 핫 파티션 문제 해결에 유용합니다. 현재 Azure Cosmos DB는 NoSQL용 API 계정 및 포인트 읽기/쓰기, 쿼리 및 저장 프로시저 작업에 대해서만 파티션 키를 보고합니다. subscriptionId, regionName, partitionKey, requestCharge, partitionKeyRangeId
    ControlPlaneRequests 모든 API 계정 만들기, 지역 추가 또는 제거, 계정 복제 설정 업데이트 등을 포함하는 컨트롤 플레인 작업에 대한 세부 정보를 로그합니다. operationName, httpstatusCode, httpMethod, region
    TableApiRequests Table용 API 프런트 엔드에서 사용자 개시 요청을 로그하여 Azure Cosmos DB for Table에 대한 요청을 처리합니다. operationName, requestCharge, piiCommandText
  4. 범주 세부 정보를 선택한 후, 원하는 대상으로 로그를 보냅니다. Log Analytics 작업 영역에 로그를 보내는 경우, 대상 테이블로 특정 리소스를 선택해야 합니다.

    Screenshot of the option to enable resource-specific diagnostics.

쿼리 텍스트 로깅에 전체 텍스트 쿼리 사용

참고 항목

이 기능을 사용하도록 설정하면 추가 로깅 비용이 발생할 수 있습니다. 가격 세부 정보는 Azure Monitor 가격을 참조하세요. 문제 해결 후 이 기능을 사용하지 않도록 설정하는 것이 좋습니다.

Azure Cosmos DB는 자세한 문제 해결을 위한 고급 로깅을 제공합니다. 전체 텍스트 쿼리를 사용하도록 설정하면, Azure Cosmos DB 계정 내의 모든 요청에 대해 난독 분석된 쿼리를 볼 수 있습니다. 또한 Azure Cosmos DB가 로그에 이 데이터에 액세스하고 이 데이터를 표면화할 수 있는 권한을 부여합니다.

  1. 이 기능을 사용하도록 설정하려면 Azure Cosmos DB 계정의 Features 페이지로 이동합니다.

    Screenshot of the navigation process to the Features page.

  2. Enable를 선택합니다. 이 설정은 몇 분 내에 적용됩니다. 새로 검색된 모든 로그에는 각 요청에 대한 전체 텍스트 또는 PIICommand 텍스트가 있습니다.

    Screenshot of the full-text feature being enabled.

쿼리 데이터

새로 사용하도록 설정된 이 기능을 사용하여 쿼리하는 방법을 알아보려면 다음을 참조하세요.

다음 단계