检测告警迁移 API
编辑检测告警迁移 API
编辑升级 Kibana 后,任何新生成的检测告警都将可以使用最新的 Elastic 安全功能。但是,为了为现有检测告警启用新功能,可能需要进行迁移。有关特定于您升级的说明,请参阅 升级 Elastic Security。
检测告警迁移是在索引级别执行的,需要以下步骤
确定要迁移的索引
编辑您可以使用迁移状态 API 来确定哪些索引包含特定时期的检测告警,以及每个索引的迁移信息。
请求
编辑GET <kibana 主机>:<端口>/api/detection_engine/signals/migration_status?from=now-30d
请求查询参数
编辑名称 | 类型 | 描述 |
---|---|---|
|
datemath |
合格检测告警的最大年龄 |
响应示例
编辑{ "indices": [ { "index": ".siem-signals-default-000002", "version": 15, "signal_versions": [ { "version": 15, "count": 100 }, { "version": 16, "count": 87 } ], "migrations": [ { "id": "924f7c50-505f-11eb-ae0a-3fa2e626a51d", "status": "pending", "version": 16, "updated": "2021-01-06T20:41:37.173Z" } ], "is_outdated": true }, { "index": ".siem-signals-default-000003", "version": 16, "signal_versions": [ { "version": 16, "count": 54 } ], "migrations": [], "is_outdated": false } ] }
以上响应显示了两个索引:.siem-signals-default-000002
已过时,包含多个版本的检测告警和一个待处理的迁移,以及 .siem-signals-default-000003
,它是最新的写入索引。
响应中将过滤掉在指定范围内不包含检测告警的索引。
有了以上信息,我们可以编译一个我们希望迁移的索引列表。
查找包含威胁情报数据的过时检测告警
从 7.12.0 到 7.14.2 的版本升级到 Elastic Stack 7.15.x 版本后,您需要迁移使用威胁情报数据增强的检测告警,以确保威胁情报在 Elastic Security 中正确显示。运行此查询以查找包含威胁情报数据的过时检测告警
GET .siem-signals-{KIBANA SPACE ID}/_search { "query": { "nested": { "path": "threat.indicator", "query": { "exists": { "field": "threat.indicator.matched.*" } } } } }
启动迁移
编辑迁移是按索引启动的。虽然此过程既不会破坏数据也不会干扰现有数据,但它可能会占用大量资源。因此,建议您相应地计划您的迁移。
请求
编辑POST <kibana 主机>:<端口>/api/detection_engine/signals/migration
请求体
编辑名称 | 类型 | 描述 | 必需 |
---|---|---|---|
|
String[] |
要迁移的索引名称数组 |
是 |
|
Integer |
每个批次要迁移的告警数量。对应于 重新索引 API 上的 |
否 |
|
Integer |
迁移任务的节流,以每秒子请求数表示。对应于 重新索引 API 上的 |
否 |
|
Integer |
迁移任务的子任务数量。对应于 重新索引 API 上的 |
否 |
响应示例
编辑{ "indices": [ { "index": ".siem-signals-default-000001", "migration_id": "923f7c50-505f-11eb-ae0a-3fa2e626a51d", "migration_index": ".siem-signals-default-000001-r000016" } ] }
响应将为每个指定的索引包含迁移的 ID 和目标索引,以及错误(如果失败)。
完成迁移
编辑完成端点将原始索引的别名替换为成功迁移的索引的别名。该端点是幂等的;因此,它可以安全地用于轮询给定的迁移,并在完成时将其完成。
原始索引不会在此步骤中删除。验证迁移索引的完整性后,您可以使用 迁移清理 端点对原始的、过时的索引应用 30 天的删除策略。
如果完成了一个不成功的迁移,则会对其索引应用删除策略,导致它在 30 天后被删除。
请求
编辑POST <kibana 主机>:<端口>/api/detection_engine/signals/finalize_migration
请求体
编辑名称 | 类型 | 描述 | 必需 |
---|---|---|---|
|
String[] |
要完成的 `migration_id` 数组 |
是 |
响应示例
编辑{ "migrations": [ { "id": "924f7c50-505f-11eb-ae0a-3fa2e626a51d", "completed": true, "destinationIndex": ".siem-signals-default-000002-r000016", "status": "success", "sourceIndex": ".siem-signals-default-000002", "version": 16, "updated": "2021-01-06T22:05:56.859Z" } ] }
已完成的迁移将显示 completed: true
的响应,以及相应的 status
。如果在尝试完成迁移时它仍在运行,则其响应将显示为 completed: false
。
迁移清理
编辑迁移优先考虑数据完整性而不是分片大小。因此,未使用的或孤立的索引是迁移过程的工件。成功的迁移将导致旧索引和新索引都存在。因此,可以(并且可能应该)删除旧的、孤立的索引。
虽然您可以手动删除这些索引,但该端点通过对相关索引应用删除策略来完成此任务,导致它在 30 天后被删除。它还删除迁移实现特有的其他工件。
请求
编辑DELETE <kibana 主机>:<端口>/api/detection_engine/signals/migration
请求体
编辑名称 | 类型 | 描述 | 必需 |
---|---|---|---|
|
String[] |
要完成的 `migration_id` 数组 |
是 |
响应示例
编辑{ "migrations": [ { "id": "924f7c50-505f-11eb-ae0a-3fa2e626a51d", "destinationIndex": ".siem-signals-default-000002-r000016", "status": "success", "sourceIndex": ".siem-signals-default-000002", "version": 16, "updated": "2021-01-06T22:05:56.859Z" } ] }
响应将包含所有成功删除的迁移。