排查检测规则问题

支持的产品:

规则执行期间可能会发生运行时错误,并阻止规则成功执行。本文档可帮助您排查一些常见的运行时问题。

  • 您可以在部署规则之前对其进行测试,以防止发生运行时错误。 在规则编辑器中点击运行测试 ;如果检测到错误,请点击错误链接以了解详情。

  • 如果在规则执行期间发生错误,请点击检测 页面上的错误链接以了解详情。

查询语法和逻辑错误

当查询结构无效、过于复杂或使用不兼容的数据类型时,会发生这些错误。

错误消息 根本原因 解决方案
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 专业人士的解答。