OpenSearch return 结果基于多个索引中的字段
OpenSearch return results based on field in multiple indices
我有一个包含易受攻击的依赖项及其在存储库中的状态的索引。
我不想在警报解决后删除它们,因为我还想记录漏洞已被修补。
然而,这意味着我最终得到了一些我不确定最好的处理方式的数据。
这是我的数据的简化示例
_id
alert_id
repository
alert_name
action
1
1
car_repository
jwt
created
2
2
car_repository
express
created
3
2
car_repository
express
resolved
4
5
boat_repository
express
created
5
3
car_repository
log4j
resolved
6
3
car_repository
log4j
created
7
4
boat_repository
log4j
created
总共创建了 5 个漏洞警告。其中2个已经解决。
现在 - 我想做的是显示当前状态。我们还有 3 个活跃的漏洞。我将如何只显示 3 个相关行? (1、4 和 7)
请记住,我对使用 ELK/OpenStack 还是很陌生,所以我不知道这是否最好使用查询或过滤器来解决,或者它是否有助于划分为多个索引。
我想说最简单的方法是维护 2 个索引:一个用于 actions
和上面 table 中的内容,一个用于 vulnerabilities
和 当前 状态。因此,每当您创建 "created"
操作时,您也会使用 status == "created"
创建一个漏洞文档,当您创建不是 "created"
的操作时,您将 update_by_query 该文档到设置 status = "resolved"
。那么你的查询就会变得超级简单。
替代方法是使用 collapse,但根据我的经验,当您尝试对结果进行分页或聚合时,它的行为非常混乱。
我有一个包含易受攻击的依赖项及其在存储库中的状态的索引。 我不想在警报解决后删除它们,因为我还想记录漏洞已被修补。
然而,这意味着我最终得到了一些我不确定最好的处理方式的数据。
这是我的数据的简化示例
_id | alert_id | repository | alert_name | action |
---|---|---|---|---|
1 | 1 | car_repository | jwt | created |
2 | 2 | car_repository | express | created |
3 | 2 | car_repository | express | resolved |
4 | 5 | boat_repository | express | created |
5 | 3 | car_repository | log4j | resolved |
6 | 3 | car_repository | log4j | created |
7 | 4 | boat_repository | log4j | created |
总共创建了 5 个漏洞警告。其中2个已经解决。 现在 - 我想做的是显示当前状态。我们还有 3 个活跃的漏洞。我将如何只显示 3 个相关行? (1、4 和 7)
请记住,我对使用 ELK/OpenStack 还是很陌生,所以我不知道这是否最好使用查询或过滤器来解决,或者它是否有助于划分为多个索引。
我想说最简单的方法是维护 2 个索引:一个用于 actions
和上面 table 中的内容,一个用于 vulnerabilities
和 当前 状态。因此,每当您创建 "created"
操作时,您也会使用 status == "created"
创建一个漏洞文档,当您创建不是 "created"
的操作时,您将 update_by_query 该文档到设置 status = "resolved"
。那么你的查询就会变得超级简单。
替代方法是使用 collapse,但根据我的经验,当您尝试对结果进行分页或聚合时,它的行为非常混乱。