검색 작업은 추가 분석을 위해 작업 영역 내의 새 검색 테이블로 레코드를 가져오는 비동기 쿼리입니다. 검색 작업은 병렬 처리를 사용하며 대규모 데이터 세트에서 몇 시간 동안 실행할 수 있습니다. 이 문서에서는 쿼리 작업을 만드는 방법과 결과 데이터를 쿼리하는 방법에 대해 설명합니다.
검색 작업을 실행하려면 예를 들어 Log Analytics 기여자 기본 제공 역할에서 제공하는 Log Analytics 작업 영역에 대한 Microsoft.OperationalInsights/workspaces/tables/write 및 Microsoft.OperationalInsights/workspaces/searchJobs/write 권한이 필요합니다.
검색 작업을 사용하는 경우
10분의 로그 쿼리 제한 시간이 대용량 데이터를 쿼리하기에 충분하지 않거나 느린 쿼리를 실행 중인 경우 쿼리 작업을 사용합니다.
또한 검색 작업을 통해 보관된 로그 및 기본 로그 테이블에서 쿼리에 사용할 수 있는 새 로그 테이블로 레코드를 검색할 수 있습니다. 이러한 방식으로 검색 작업을 실행하는 것은 다음과 같은 대안이 될 수 있습니다.
특정 시간 범위의 보관된 로그에서 데이터 복원.
대용량 데이터에 대해 많은 쿼리를 일시적으로 실행해야 하는 경우 복원을 사용합니다.
기본 로그를 직접 쿼리하고 각 쿼리에 대해 비용을 지불합니다.
어떤 대안이 더 비용 효율적인지 확인하려면 네이티브 로그를 쿼리하는 비용을 쿼리 작업을 실행하고 쿼리 작업 결과를 저장하는 비용과 비교합니다.
검색 작업은 무엇을 하나요?
검색 작업은 결과를 원본 데이터와 동일한 작업 영역의 새 테이블로 보냅니다. 결과 테이블은 검색 작업이 시작되는 즉시 사용할 수 있지만 결과가 나타나기 시작하는 데 시간이 걸릴 수 있습니다.
검색 작업 결과 테이블은 작업 영역의 테이블을 사용하는 로그 쿼리 및 기타 Azure Monitor 기능에 사용할 수 있는 Analytics 테이블입니다. 테이블은 작업 영역에 대해 설정된 보존 값을 사용하지만 테이블이 만들어진 후 이 값을 수정할 수 있습니다.
검색 결과 테이블 스키마는 원본 테이블 스키마와 지정된 쿼리를 기반으로 합니다. 다음과 같은 다른 열은 원본 레코드를 추적하는 데 도움이 됩니다.
Azure Monitor 로그 intellisense는 쿼리 작업 쿼리를 작성하는 데 도움이 되도록 쿼리 작업 모드에서 KQL 쿼리 제한을 지원합니다.
시간 선택기를 사용하여 검색 작업 날짜 범위를 지정합니다.
쿼리 작업 쿼리를 입력하고 작업 쿼리 단추를 선택합니다.
Azure Monitor 로그는 결과 집합 테이블의 이름을 제공하라는 메시지를 표시하고 검색 작업이 청구 대상임을 알려 줍니다.
검색 작업 결과 테이블의 이름을 입력하고 검색 작업 실행을 선택합니다.
Azure Monitor 로그는 검색 작업을 실행하고 검색 작업 결과에 대한 작업 영역에 새 테이블을 만듭니다.
새 테이블이 준비되면 tablename_SRCH 보기를 선택하여 Log Analytics에서 테이블을 봅니다.
새로 만들어진 검색 작업 결과 테이블로 흐르기 시작하면 검색 작업 결과를 볼 수 있습니다.
Azure Monitor 로그는 검색 작업이 끝날 때 검색 작업이 완료됨 메시지를 표시합니다. 이제 검색 쿼리와 일치하는 모든 레코드가 포함된 결과 테이블이 준비되었습니다.
검색 작업을 실행하려면 테이블 - 만들기 또는 업데이트 API를 호출합니다. 호출에는 만들 결과 테이블의 이름이 포함됩니다. 결과 테이블의 이름은 _SRCH로 끝나야 합니다.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/<TableName>_SRCH?api-version=2021-12-01-preview
요청 본문
요청 본문에 다음 값을 포함합니다.
이름
형식
설명
properties.searchResults.query
string
데이터를 쿼리하기 위해 KQL로 작성된 로그 쿼리입니다.
properties.searchResults.limit
정수
결과 집합의 최대 레코드 수입니다(최대 100만 레코드). (선택 사항)
properties.searchResults.startSearchTime
string
검색 시간 범위의 시작입니다.
properties.searchResults.endSearchTime
string
검색 시간 범위의 끝입니다.
샘플 요청
이 예에서는 Syslog 테이블에서 특정 레코드를 검색하는 쿼리 결과로 Syslog_suspected_SRCH라는 테이블을 만듭니다.
요청
PUT https://management.azure.com/subscriptions/00000000-0000-0000-0000-00000000000/resourcegroups/testRG/providers/Microsoft.OperationalInsights/workspaces/testWS/tables/Syslog_suspected_SRCH?api-version=2021-12-01-preview
GET https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/<TableName>_SRCH?api-version=2021-12-01-preview
테이블 상태
각 검색 작업 테이블에는 다음 값 중 하나를 가질 수 있는 provisioningState라는 속성이 있습니다.
상태
설명
업데이트
테이블 및 해당 스키마 채우기.
InProgress
검색 작업이 실행 중이며 데이터를 가져오는 중입니다.
성공
검색 작업이 완료되었습니다.
삭제 중
검색 작업 테이블을 삭제합니다.
샘플 요청
이 예에서는 이전 예의 검색 작업에 대한 테이블 상태를 검색합니다.
Request
GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-00000000000/resourcegroups/testRG/providers/Microsoft.OperationalInsights/workspaces/testWS/tables/Syslog_SRCH?api-version=2021-12-01-preview
Response
{
"properties": {
"retentionInDays": 30,
"totalRetentionInDays": 30,
"archiveRetentionInDays": 0,
"plan": "Analytics",
"lastPlanModifiedDate": "Mon, 01 Nov 2021 16:38:01 GMT",
"schema": {
"name": "Syslog_SRCH",
"tableType": "SearchResults",
"description": "This table was created using a Search Job with the following query: 'Syslog | where * has 'suspected.exe'.'",
"columns": [...],
"standardColumns": [...],
"solutions": [
"LogManagement"
],
"searchResults": {
"query": "Syslog | where * has 'suspected.exe'",
"limit": 1000,
"startSearchTime": "Wed, 01 Jan 2020 00:00:00 GMT",
"endSearchTime": "Fri, 31 Jan 2020 00:00:00 GMT",
"sourceTable": "Syslog"
}
},
"provisioningState": "Succeeded"
},
"id": "subscriptions/00000000-0000-0000-0000-00000000000/resourcegroups/testRG/providers/Microsoft.OperationalInsights/workspaces/testWS/tables/Syslog_SRCH",
"name": "Syslog_SRCH"
}
검색 작업 결과 - 검색 작업에서 찾아서 일반 로그 데이터 수집 가격을 기준으로 결과 테이블에 수집된 데이터의 양입니다.
예를 들어 테이블이 하루에 500GB를 보유하는 경우 30일 동안 검색하면 15,000GB의 검사된 데이터에 대한 요금이 청구됩니다.
검색 작업에서 검색 쿼리와 일치하는 1,000개의 레코드를 찾으면 이러한 1,000개의 레코드를 결과 테이블에 수집한 요금이 청구됩니다.