排查规则运行时错误
支持的平台:
Google SecOps
SIEM
规则执行期间可能会发生运行时错误,导致规则无法成功执行。本文档可帮助您排查一些常见的运行时问题。
您可以在部署之前测试规则,以防止出现运行时错误。 在规则编辑器中点击运行测试 - 如果检测到错误,请点击错误链接查看详情。
如果在规则执行期间发生错误,请点击检测页面上的错误链接查看详情。
查询语法和逻辑错误
当查询结构无效、过于复杂或使用不兼容的数据类型时,会发生这些错误。
| 错误消息 | 根本原因 | 解决方法 |
|---|---|---|
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 专业人士的解答。