Azure AI Search에 대한 진단 로깅 구성
리소스 수준 진단 로그는 Azure AI Search 리소스에서 발생하는 작업에 대한 인사이트를 제공합니다. 반면, 활동 로그는 컨트롤 플레인 또는 관리 평면이라고 하는 외부에서 구독의 각 Azure 리소스에서 수행되는 작업에 대한 인사이트를 제공합니다. 활동 로깅은 자동으로 사용하도록 설정되며 자주 사용됩니다.
이 문서에서는 리소스 수준 진단 로깅을 사용하도록 설정하는 방법과 Azure AI Search 리소스에서 시스템 및 사용자 작업에 대한 정보를 찾는 방법을 설명합니다.
필수 조건
진단 로깅 사용
진단 로깅은 Azure Monitor를 통해 사용할 수 있습니다. 활동 로그 및 기본 제공 메트릭과 같은 일부 로깅은 선행 구성 없이 자동으로 보고되지만 서비스 내 작업 및 데이터 액세스에 대한 리소스 수준 로그는 진단 설정을 만들고 스토리지 옵션을 지정해야 합니다.
Azure Portal에 로그인하고 검색 서비스로 이동합니다.
진단 설정 모니터링에서 진단 설정 추가를>선택합니다.
서비스 및 로깅 수준을 식별하는 이름(예: "my-search-service-all-logs" 또는 "my-search-service-audit-logs")을 제공합니다.
로그에서 범주를 선택합니다.
- 감사 로그는 데이터 또는 서비스의 설정과의 사용자 또는 앱 상호 작용을 캡처하지만 사용자 또는 그룹 ID는 포함하지 않습니다.
- 작업 로그는 검색 서비스의 작업에 대한 정보를 캡처합니다.
- allLogs는 모든 항목을 수집합니다 .
자세한 정보 로깅은 저장 비용이 많이 들고 관리 및 저장이 복잡할 수 있습니다. allLogs로 시작한 다음, 정보 요구 사항을 충족하는 경우 더 범위가 지정된 로깅으로 전환할 수 있습니다. 이러한 범주에 대한 자세한 내용은 Azure Monitor의 진단 설정을 참조하세요.
대상의 경우 데이터에 대해 Kusto 쿼리를 실행할 수 있도록 Log Analytics 작업 영역으로 보내는 것이 좋습니다. 사용 가능한 작업 영역이 있어야 합니다.
설정을 저장합니다.
보다 포괄적인 데이터 수집 전략이 필요한 경우 이 단계를 반복합니다.
만드는 각 진단 설정에는 자체 데이터 싱크가 필요합니다. Azure Portal을 사용하여 로그를 검토하는 경우 첫 번째 진단 설정이 기본적으로 사용됩니다. 시각화 지원을 위해 특정 작업 영역으로 이동할 수 있습니다.
참고 항목
키 기반 인증을 사용하는 경우 Azure AI Search는 검색 서비스의 콘텐츠에 대한 개별 사용자 액세스를 모니터링할 수 없습니다. 이 수준의 모니터링이 필요한 경우 클라이언트 애플리케이션에서 구현해야 합니다.
Log Analytics에서 로그 보기
지침에 따라 리소스에 대한 로그 분석 데이터를 탐색합니다.
모니터링에서 로그를 선택합니다. 쿼리 허브는 기본적으로 열립니다. 사용 가능한 쿼리를 시도하거나 허브를 닫고 KQL 모드에서 쿼리 창을 열어 Kusto 쿼리 언어(KQL)로 작성된 쿼리를 실행할 수 있습니다.
쿼리 창에서 로그에 대해 Kusto 쿼리를 실행할 수 있습니다.
샘플 쿼리
로그 데이터를 탐색하는 데 사용할 수 있는 몇 가지 기본 Kusto 쿼리가 있습니다.
지정된 기간 동안 Azure AI Search 서비스의 모든 진단 로그에 대해 다음 쿼리를 실행합니다.
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SEARCH"
이 쿼리를 실행하여 최근 10개 로그를 확인합니다.
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SEARCH"
| take 10
이 쿼리를 실행하여 리소스별로 작업을 그룹화합니다.
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SEARCH" |
summarize count() by Resource
이 쿼리를 실행하여 작업을 수행하는 데 걸리는 평균 시간을 확인합니다.
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SEARCH"
| summarize avg(DurationMs)
by OperationName
이 쿼리를 실행하여 10초마다 범주화된 개수를 사용하여 OperationName으로 분할된 시간에 따른 작업 볼륨을 확인합니다.
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SEARCH"
| summarize count()
by bin(TimeGenerated, 10s), OperationName
| render areachart kind=unstacked