排查检测规则问题
运行时错误可能会在规则执行期间发生,并导致规则无法成功执行。本文档可帮助您排查一些常见的运行时问题。
您可以在部署前测试规则,以防止出现运行时错误。 在规则编辑器中点击运行测试 - 如果检测到错误,请点击错误链接查看详细信息。
如果规则执行期间发生错误,请点击检测页面上的错误链接,了解详情。
查询语法和逻辑错误
当查询结构无效、过于复杂或使用不兼容的数据类型时,会发生这些错误。
| 出错提示 | 根本原因 | 解决方法 |
|---|---|---|
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
|
该规则尝试在不同整数类型之间执行算术(+、-、*)或模 (%) 运算。
|
使用 当表达式将有符号整数 ( |
资源限制和性能错误
这些错误表示查询过于繁重,系统无法处理。
| 出错提示 | 根本原因 | 解决方法 |
|---|---|---|
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 专业人士的解答。