감지 규칙 문제 해결

다음에서 지원:

런타임 오류는 규칙 실행 중에 발생할 수 있으며 규칙이 성공적으로 실행되지 못하게 합니다. 이 문서는 몇 가지 일반적인 런타임 문제를 해결하는 데 도움이 됩니다.

  • 배포 전에 규칙을 테스트하여 런타임 오류를 방지할 수 있습니다. 규칙 편집기에서 테스트 실행을 클릭합니다. 오류가 감지되면 오류 링크를 따라 세부정보를 확인합니다.

  • 규칙 실행 중에 오류가 발생하면 감지 페이지에서 오류 링크를 따라 세부정보를 확인합니다.

쿼리 문법 및 논리 오류

이러한 오류는 쿼리 구조가 잘못되었거나, 너무 복잡하거나, 호환되지 않는 데이터 유형을 사용할 때 발생합니다.

오류 메시지 근본 원인 해결 방법
Too many `OR` and `AND` operations 쿼리에 스택 공간 한도를 초과하는 깊게 중첩된 표현식 또는 로직이 포함되어 있습니다.

규칙 조건을 간소화합니다.

복잡한 로직을 더 작은 부분으로 나눕니다.

Query is too long 쿼리를 처리하는 데 너무 많은 스택 공간이 필요합니다. 로직을 여러 규칙으로 분할합니다.
Accessing a new field that did not exist for this time range 규칙이 스키마에 최근 추가된 필드를 참조하지만 해당 필드가 존재하지 않는 기간 동안 규칙이 실행됩니다.

필드가 표시된 후 시작되도록 기간을 조정하세요.

필드가 null이거나 누락된 경우를 처리하도록 규칙을 수정합니다.

Invalid subnet CIDR 일부 함수에서 파싱할 수 없는 클래스 없는 도메인 간 라우팅 (CIDR) 범위가 발생했습니다. 규칙에서 CIDR 범위의 형식을 확인하세요.
Invalid IP address 일부 함수에서 잘못된 형식의 IP 주소가 발생했습니다. 필드 값에 유효한 IP 주소 형식이 포함되어 있는지 확인하세요.
Map access for reading label does not support duplicate map keys 일부 함수가 중복 키가 있는 맵과 유사한 구조 (예: 추가 필드)의 요소에 액세스하려고 했습니다 (작업에서 허용되지 않음).

데이터 소스에서 중복 키를 조사합니다.

이 데이터 특성을 처리하도록 규칙 로직을 조정합니다.

Invalid regular expression re.regex()과 같은 함수에 사용된 정규 표현식이 잘못되었습니다.

정규 표현식 문법을 수정합니다.

Invalid re.replace() re.regex()의 잘못된 사용으로, 대체 문자열에서 괄호로 묶인 하위 표현식과 참조가 일치하지 않는 경우가 많습니다. re.regex()의 재작성 스키마가 정규 표현식의 괄호로 묶인 하위 표현식과 일치하는지 확인합니다.
Integer overflow in sum() aggregation 값의 합계가 표준 정수의 최댓값을 초과합니다. 합산하기 전에 필드를 부동 소수점 유형으로 변환합니다 (예: sum(0.0 + $e.field) 사용).
Cannot complete [arithmetic/mod] operation between unsigned and signed integer 규칙이 서로 다른 정수 유형 간에 산술 (+, -, *) 또는 모듈로 (%) 연산을 시도합니다.

cast.as_int() 또는 cast.as_uint()를 사용하여 한 피연산자를 다른 피연산자와 일치하도록 변환합니다. 정수만 허용하는 모듈로 (%) 연산자에는 명시적 변환이 필요합니다. +, - 또는 * 연산의 경우 동일한 줄에 다른 / 연산자가 없는 표현식에서 2.0 또는 100.0와 같은 부동 소수점 리터럴이나 (2/1)와 같은 나눗셈 강제 변환을 사용하여 정수 상수가 부동 소수점 수로 작동하도록 강제할 수도 있습니다.

이 유형 제약 조건은 표현식이 부호 있는 정수(INT64) 리터럴을 부호 없는 정수(UINT64) 통합 데이터 모델(UDM) 필드(예: network.received_bytes, network.sent_bytes, principal.file.size)와 결합할 때 발생합니다. 이 제약조건은 sum() 또는 max() 집계 내부를 포함하여 events 및 outcome 섹션 모두에 적용됩니다. 부호 있는 정수 연산과 부호 없는 정수 연산이 혼합된 규칙은 문법 오류 없이 저장될 수 있으며 런타임 시 또는 규칙을 테스트할 때만 실패할 수 있습니다. 자세한 내용은 부호 없는 이벤트 필드가 포함된 산술을 참조하세요.

리소스 한도 및 성능 오류

이러한 오류는 시스템에서 처리하기에 쿼리가 너무 무겁다는 것을 나타냅니다.

오류 메시지 근본 원인 해결 방법
Request was throttled, please try again later 규칙에 할당된 것보다 더 많은 메모리 또는 처리 능력이 필요합니다 (복잡한 조인, 대규모 집계 또는 불충분한 필터링으로 인해 발생하는 경우가 많음). 이벤트 섹션에 더 구체적인 필터를 추가합니다.
Not enough memory for aggregation aggregate_memory_limit을 초과했습니다. `match` 섹션의 키 수를 줄여 집계를 최적화합니다.
Spilled bytes exceed limit 쿼리가 너무 많은 이벤트를 처리하려고 합니다. metadata.log_type와 같은 필터를 추가하여 쿼리를 최적화합니다.
Your query resource usage is exceeding its allocation 쿼리가 너무 많은 리소스를 사용했기 때문에 리소스 관리자가 쿼리를 취소했습니다. metadata.log_type와 같은 필터를 추가하여 쿼리를 최적화합니다.

데이터 액세스 및 시스템 오류

이러한 오류는 일시적이거나 백엔드 데이터 스토리지와 관련된 경우가 많습니다.

오류 메시지 근본 원인 해결 방법
Error reading files 기본 데이터에 액세스하는 데 일시적인 문제가 있습니다. 잠시 후 다시 시도하세요. 오류가 계속되면 지원팀에 문의하세요.
Error reading database 기본 데이터에 액세스하는 데 일시적인 문제가 있습니다. 잠시 후 다시 시도하세요. 오류가 계속되면 지원팀에 문의하세요.
Internal error 시스템 내 일시적인 문제입니다. 잠시 후 다시 시도하세요. 오류가 계속되면 지원팀에 문의하세요.
Unknown error 특정 내부 오류 코드가 정의되지 않은 경우의 기본 오류 메시지입니다. 잠시 후 다시 시도하세요. 오류가 계속되면 지원팀에 문의하세요.
Request was throttled, please try again later 시스템에 과부하가 발생했습니다. 잠시 후 다시 시도하세요.

알 수 없는 런타임 오류

설명이 없는 알 수 없는 런타임 오류가 발생할 수 있습니다. 이 경우 Google SecOps 지원팀에 문의하세요.

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.