Elastic SIEM 8.15.0:过滤后从默认索引重索引至新索引咨询
解决Elastic 8.15.0中过滤并重新索引案例数据的方法
方法一:直接用Reindex API配合查询过滤
这是最直接的方案,无需依赖特定处理器,适合仅需过滤文档的场景:
- 构造Reindex请求
通过_reindexAPI指定源索引、目标索引,同时添加query参数过滤目标数据。示例:过滤status为open的案例
POST _reindex { "source": { "index": ".kibana_alerting_cases_8.15.0_001", "query": { "term": { "status": "open" } } }, "dest": { "index": "new_cases_index" } }
- 替换
query部分为你的实际过滤规则,比如范围查询、布尔组合等。 - 若目标索引不存在,Elasticsearch会自动创建(需确保集群开启自动创建索引配置)。
- 验证结果
请求完成后,通过以下命令确认数据是否符合预期:
# 查看目标索引文档数量 GET new_cases_index/_count # 抽样检查数据 GET new_cases_index/_search
方法二:结合Ingest Pipeline做字段处理(若需字段转换)
如果除了过滤还需要修改字段结构,无需使用dest处理器,直接在pipeline中定义逻辑后调用:
- 创建Ingest Pipeline
示例:移除冗余字段tags,新增处理时间字段
PUT _ingest/pipeline/cases_transform_pipeline { "processors": [ { "remove": { "field": "tags" } }, { "set": { "field": "processed_date", "value": "{{_ingest.timestamp}}" } } ] }
- 调用Pipeline执行Reindex
POST _reindex { "source": { "index": ".kibana_alerting_cases_8.15.0_001", "query": { "range": { "created_at": { "gte": "2024-01-01T00:00:00Z" } } } }, "dest": { "index": "processed_new_cases_index", "pipeline": "cases_transform_pipeline" } }
关键注意事项
- 操作前先通过
_search测试过滤条件,确保匹配预期数据:
GET .kibana_alerting_cases_8.15.0_001/_search { "query": { // 你的过滤条件 } }
- 若源索引数据量较大,添加
scroll参数分批处理避免超时:
POST _reindex?scroll=1h { "source": { "index": ".kibana_alerting_cases_8.15.0_001", "size": 1000, "query": { /* 过滤条件 */ } }, "dest": { "index": "new_cases_index" } }
- 确保执行用户拥有源索引的
read权限和目标索引的index权限。
内容的提问来源于stack exchange,提问作者kulisiber
相关产品推荐
相关产品推荐

