다음 검사 목록을 사용하여 Microsoft Sentinel 데이터 레이크에서 KQL(Kusto 쿼리 언어) 쿼리 및 작업을 사용할 때 일반적인 문제를 resolve.
쿼리 또는 작업을 실행하기 전에 필수 구성 요소를 확인합니다. 자세한 내용은 Microsoft Sentinel 데이터 레이크에 대한 역할 및 권한을 참조하세요.
KQL 쿼리 또는 작업을 실행하기 전에 올바른 작업 영역을 선택했는지 확인합니다.
참조된 모든 테이블 및 작업 영역이 존재하고 액세스할 수 있는지 확인합니다.
실행 오류를 방지하려면 지원되는 KQL 연산자 및 명령만 사용합니다.
쿼리 시간 제한을 방지하려면 시간 범위와 같은 필터를 사용하여 쿼리를 조정합니다.
작업별 유효성 검사:
작업을 통해 새 사용자 지정 테이블을 만들 때 대상 작업 영역에 대한 올바른 역할이 있는지 확인합니다. 자세한 내용은 Microsoft Sentinel 데이터 레이크에 대한 역할 및 권한을 참조하세요.
KQL 편집기에서 쿼리를 테스트하여 구문 및 논리 오류를 catch한 후 작업으로 제출합니다.
Notebooks 작업을 포함하여 테넌트 내의 모든 작업에서 작업 이름이 고유해야 합니다.
쿼리 출력 스키마가 열 이름 및 데이터 형식의 대상 테이블과 일치하는지 확인합니다.
작업 상태 확인하고 진행률을 추적합니다.
특정 오류 메시지 및 해결 단계는 다음 오류 테이블을 참조하세요.
참고
분석 계층으로 승격된 데이터는 데이터 크기 및 쿼리 복잡성에 따라 고급 헌팅에 표시되는 데 15~30분이 걸릴 수 있습니다. 작업의 쿼리가 1시간 제한을 초과하는 경우 부분 결과가 승격될 수 있습니다.
KQL 쿼리 오류 메시지
| 오류 메시지 | 근본 원인 | 권장 조치 |
|---|---|---|
| 테이블을 찾을 수 없거나 비어 있습니다. | 참조된 테이블이 없거나, 비어 있거나, 사용자에게 필요한 권한이 없습니다. | 테이블 이름을 확인하고, 데이터 가용성을 확인하고, 사용자에게 적절한 액세스 권한이 있는지 확인합니다. 자세한 내용은 Microsoft Sentinel 데이터 레이크에 대한 역할 및 권한을 참조하세요. |
| 삭제된 개체에 액세스할 수 없습니다. | 백 엔드 서비스에서 내부 서비스 오류가 발생했습니다. | 다시 시도하세요. 문제가 지속되면 지원 티켓을 엽니다. |
| 게이트웨이에서 쿼리 시간 초과. | 시간 필터가 없는 장기 실행 쿼리 | 시간 필터를 적용하거나 추가 필터를 적용합니다. |
| 시간 범위가 설정되지 않았습니다. 시간 매개 변수를 추가하여 쿼리 비용을 제어하고 시간 제한을 방지합니다. | 제한 없는 조회가 있는 쿼리는 시간 제한을 일으킬 수 있습니다. | 시간 필터를 적용하거나 추가 필터를 적용합니다. |
| 지원되지 않는 함수입니다. 데이터 레이크에서 지원되지 않는 함수인 ingestion_time()를 제거하도록 쿼리를 수정합니다. | 데이터 레이크에 대한 쿼리는 함수를 ingestion_time() 지원하지 않습니다. |
쿼리에서 를 제거하고 ingestion_time() 다시 시도합니다. |
| 쿼리 실행이 할당된 시간 제한보다 오래 걸리고 중단되었습니다. | • 쿼리가 지나치게 복잡하거나 큰 데이터 세트를 검색하여 허용되는 실행 시간을 초과할 수 있습니다. • 불필요한 조인 또는 과도한 필터링과 같은 비효율적인 쿼리 구조는 성능 저하에 기여할 수 있습니다. |
쿼리를 최적화하고 다시 시도합니다. |
| 401-권한 없음: 이는 일반적으로 영구적인 오류를 나타내며 재시도는 도움이 될 가능성이 낮습니다. 오류 세부 정보: DataSource={clusterUri}, DatabaseName={databaseName}. | • 데이터 레이크에 액세스하는 데 사용되는 인증 토큰이 잘못되었거나 만료되었을 수 있습니다. • 지정된 데이터베이스를 쿼리하는 데 필요한 권한이 없습니다. |
액세스 권한을 다시 인증하고 확인합니다. |
| 외부 URL이라는 쿼리입니다. Lake의 쿼리에는 외부 URL 호출이 지원되지 않습니다. | 데이터 레이크 환경에서 실행되는 KQL 쿼리는 외부 엔드포인트 호출을 지원하지 않습니다. | 쿼리에서 외부 URL 호출을 제거합니다. |
| 쿼리 실행이 허용된 제한을 초과했습니다. | 데이터 레이크의 KQL 대화형 쿼리는 500,000개 행으로 제한됩니다. | KQL 작업에서 쿼리를 실행하거나 Notebook을 사용합니다. |
| 테이블을 찾을 수 없거나 데이터가 없을 수 있습니다. 테이블이 있거나, 데이터가 있거나, 사용자에게 권한이 있는지 검사. | • 지정된 테이블이 데이터베이스에 없을 수 있습니다. • 테이블에 액세스할 수 있는 권한이 없을 수 있습니다. • 테이블이 존재하지만 데이터가 없으므로 의미 있는 출력이 없습니다. |
테이블 존재, 데이터 가용성 및 사용자 권한을 확인합니다. |
쿼리 텍스트가 내부 확장 후 허용되는 최대 길이를 초과했습니다. 이 문제는 연산자가 in() 큰 항목 목록을 포함하는 변수와 함께 사용될 때 발생할 수 있습니다. |
• 연산자를 in() 큰 목록과 함께 사용하면 확장된 쿼리가 쿼리 제한을 초과할 수 있습니다.• 쿼리에 동적으로 생성된 콘텐츠가 포함되어 길이가 너무 길어질 수 있습니다. |
목록의 크기를 줄이거나 쿼리를 간소화합니다. |
| 쿼리 실행이 허용된 제한을 초과했습니다. | 쿼리를 최적화하고 다시 시도합니다. | |
의미 체계 및 구문 오류(예:
|
쿼리의 형식이 잘못되었으며 존재하지 않는 테이블 또는 열을 참조하거나 잘못된 스칼라 함수를 사용하고 있습니다. | 쿼리를 확인하고 다시 시도합니다. |
| 클라이언트는 scope 잘못된 작업 영역을 제공한 작업 영역 또는 클라이언트에 액세스할 수 없습니다. | 쿼리는 잘못된 작업 영역 ID를 사용합니다. | 올바른 작업 영역 ID를 입력하고 다시 시도합니다. |
| 예기치 않은 제어 명령 | 컨트롤 명령(예: show)을 사용할 수 없습니다. |
작업이 필요하지 않습니다. |
KQL 작업 오류 메시지
| 오류 메시지 | 근본 원인 | 권장 조치 |
|---|---|---|
| 지정된 대상 테이블이 대상 작업 영역에 없습니다. | 테이블 이름이 잘못되었거나, 삭제되었거나, 아직 만들어지지 않았습니다. | 작업을 제출하기 전에 테이블 이름을 확인하고 대상 작업 영역에 있는지 확인합니다. |
| 지정된 원본 테이블이 없습니다. | 하나 이상의 원본 테이블이 지정된 작업 영역에 없거나 최근에 작업 영역에서 삭제되었습니다. | 원본 테이블이 지정된 작업 영역에 있는지 확인합니다. |
| 쿼리에 제공된 작업 영역 또는 데이터베이스 이름이 잘못되었거나 액세스할 수 없습니다. | 참조된 데이터베이스가 없거나 작업에 액세스 권한이 없습니다. | 데이터베이스 이름이 올바르고 작업 컨텍스트에서 액세스할 수 있는지 확인합니다. |
| 지정된 대상 작업 영역이 Azure 구독에 없습니다. | 작업 영역 ID 또는 이름이 잘못되었거나 테넌트의 Azure 구독에 없습니다. | 작업 영역 ID의 유효성을 검사합니다. |
| 쿼리 출력 스키마가 대상 테이블의 스키마와 일치하지 않습니다. | 쿼리 출력의 열 수 또는 이름은 대상 테이블 스키마와 다릅니다. | 쿼리 또는 테이블 스키마를 업데이트하여 정렬되었는지 확인합니다. |
| 쿼리 출력에 있는 하나 이상의 열의 데이터 형식이 대상 테이블 스키마와 일치하지 않습니다. | 쿼리 출력과 테이블 스키마 간의 형식 불일치(예: 문자열 및 datetime)입니다. | 쿼리 출력의 각 열이 테이블 스키마의 예상 데이터 형식과 일치하는지 확인합니다. |
| 구문 또는 논리 오류로 인해 KQL 쿼리를 실행하지 못했습니다. | 쿼리에는 잘못된 구문, 지원되지 않는 함수, 지원되지 않는 데이터 형식 또는 잘못된 참조가 포함됩니다. | KQL 작업에서 쿼리를 사용하기 전에 KQL 쿼리 또는 Azure Data Explorer 쿼리를 테스트합니다. |
| KQL 작업 이름은 고유해야 합니다. | 테넌트에서 작업 이름이 이미 있습니다. | 작업에 대한 고유한 이름을 제공합니다. |
| 열 이름이 잘못되었습니다. 문자로 시작하고 문자, 숫자 및 밑줄(_)만 포함해야 _ResourceId. | 작업에는 지원되지 않는 형식이 포함된 출력 열이 있습니다. | 쿼리를 업데이트하고 열 이름을 바꿉니다. |