You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ELK技术问题:如何添加自定义规则动作变量?

ELK安全规则更新索引时自定义变量为空的解决方案

问题描述

尝试通过ELK安全规则触发更新threat-ip索引的动作,但现有内置规则变量实用性不足。希望使用规则匹配时捕获的source.ip或threatintel.indicator.ip这类字段作为变量,添加到JSON请求体后始终返回空值,且在官方提供的可用规则变量列表中找不到对应字段。

解决方法

1. 调整规则的变量上下文范围

ELK安全规则的变量可用性取决于事件上下文配置:

  • 若为异常检测类规则,默认仅提供聚合统计字段,需在规则编辑页的「Actions」->「Variable context」中,选择All events或Matching events选项,才能访问source.ip这类原始事件字段。
  • 若为威胁情报匹配类规则,先确认规则已正确关联威胁情报索引,再通过Discover页面验证目标事件中确实存在threatintel.indicator.ip字段。

2. 使用Kibana表达式语法提取字段

直接引用字段名无效时,用表达式语法遍历上下文获取值:

  • 单事件匹配规则:用{{#context}}{{source.ip}}{{/context}}提取单事件中的IP字段;
  • 多事件聚合规则:用{{#each context}}{{this.source.ip}}{{/each}}循环获取所有匹配事件的IP字段。

3. 自定义规则变量

如果上述方法无效,可手动添加自定义变量:

  1. 进入规则编辑页,找到「Alert details」->「Custom variables」;
  2. 添加自定义变量(比如命名为match_ip),值填写{{source.ip}}或{{threatintel.indicator.ip}};
  3. 在更新索引的动作中,直接引用自定义变量{{match_ip}}即可。

4. 验证字段存在性

在规则触发前,通过Discover页面搜索匹配规则的事件,确认source.ip或threatintel.indicator.ip字段存在且有值,避免因事件本身无该字段导致变量为空。


内容的提问来源于stack exchange,提问作者FF E4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 01:14:51