跳转到内容

ELK Index Action

ELK Index Action 用于从 Kibana action 写入的 Elasticsearch 索引中轮询告警。它适合无法让 Kibana 直接 POST 到 ASP Webhook,或希望先把告警 action 落到 Elasticsearch 再由 ASP 拉取的场景。

工作方式

text
Kibana Rule
  -> Index Action 写入 Elasticsearch 索引
  -> ASP ELK action worker 轮询 Action Index
  -> 转换为 Kibana webhook payload
  -> 写入 Redis Stream
  -> Module 处理告警并生成 Case / Alert / Artifact

配置位置

ELK 连接、Action Index、轮询间隔和读取数量在 SIEM 设置 中配置。

本页只说明接入流程、Kibana action 内容和 worker 运行方式。

创建 Index Connector

在 Kibana 中创建 Index Connector,将 action 写入指定 Elasticsearch 索引。

创建 Index Connector

配置 Index Connector

索引名可以自定义,但需要与 SIEM 设置中的 Action Index 保持一致。

设置 Action Index

Kibana Action 内容

创建 Kibana Alert Rule,配置查询条件、执行周期和触发条件。

Kibana Rule

Kibana Rule 条件

为 Rule 添加 Index Action,并使用前面创建的 connector。

Kibana Index Action

Kibana Action 参数

Action 写入的文档需要包含规则名和命中的原始事件。ASP 会读取:

字段说明
rule.name作为 Stream 名称和告警规则名。
context.hits告警命中的事件列表,可以是数组,也可以是 JSON 字符串。

示例结构:

json
{
  "@timestamp": "{{context.date}}",
  "rule": {
    "name": "{{rule.name}}"
  },
  "context": {
    "hits": "[{{context.hits}}]"
  }
}

等待 Rule 触发后,Action Index 中会出现新的告警文档。

Action Index 文档

Worker 运行与验证

Docker Compose 生产部署中,asp-worker-elk-action 会随发布包默认启动。启用、Action Index、轮询间隔和读取数量都在 SIEM 设置 中配置,不需要在生产环境手动传入启动参数。

源码开发环境中,如果需要单独调试 ELK Index Action,可以在 backend 目录手动启动 worker:

bash
python manage.py run_elk_action_worker

可以在 Redis 或 Custom Console 中查看 worker 写入的消息,确认后续 Module 能够消费。

ELK Action Stream 消息

与 Webhook 的区别

方式说明
WebhookSIEM 直接 POST 到 ASP 的 /api/webhook/kibana//api/webhook/splunk/
ELK Index ActionKibana 先把 action 写入 Elasticsearch 索引,ASP 再由 worker 轮询读取。

两种方式进入 ASP 后都会写入 Redis Stream,并交给 Module 继续处理。

使用建议

  • 如果网络允许 SIEM 直接访问 ASP,优先使用 Webhook。
  • 如果只方便让 Kibana 写入 Elasticsearch 索引,可以使用 ELK Index Action。
  • 保证 action 文档中的 rule.namecontext.hits 字段完整。
  • 确认 asp-worker-elk-action 正常运行,否则索引中的 action 不会被拉取处理。
  • 需要完整示例时,参考 Custom Module 示例

下一步

  • SIEM — 配置 ELK 连接、Action Index 和轮询参数。
  • Module 开发 — 编写消费 ELK Action Stream 的 Module。
  • Custom Console — 检查 Stream 消息和 Module 加载状态。