규칙 런타임 오류 문제 해결하기
런타임 오류는 규칙 실행 중에 발생할 수 있으며 규칙이 성공적으로 실행되지 않도록 방지합니다. 이 문서는 몇 가지 일반적인 런타임 문제를 해결하는 데 도움이 됩니다.
배포 전에 규칙을 테스트하여 런타임 오류를 방지할 수 있습니다. 규칙 편집기에서 테스트 실행을 클릭합니다. 오류가 감지되면 오류 링크를 따라 세부정보를 확인합니다.
규칙 실행 중에 오류가 발생하면 감지 페이지의 오류 링크를 따라 세부정보를 확인하세요.
쿼리 구문 및 논리 오류
이러한 오류는 쿼리 구조가 잘못되었거나, 너무 복잡하거나, 호환되지 않는 데이터 유형을 사용하는 경우에 발생합니다.
| 오류 메시지 | 근본 원인 | 해결 방법 |
|---|---|---|
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
|
서로 다른 정수 유형 간에 산술 연산 (+, -, *, /, MOD)을 시도하여 발생합니다.
|
cast.as_int() 또는 cast.as_uint()를 사용하여 한 필드를 다른 필드와 일치하도록 변환합니다.
|
리소스 한도 및 성능 오류
이 오류는 시스템에서 처리하기에 쿼리가 너무 무거움을 나타냅니다.
| 오류 메시지 | 근본 원인 | 해결 방법 |
|---|---|---|
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 전문가에게 문의하여 답변을 받으세요.