设置 Kibana 警报
Kibana 警报是 Kibana 中的内置警报系统。警报功能是自动启用的,但可能需要进行一些额外的配置。
如果您使用的是本地 Elastic Stack 部署
- 在
kibana.yml配置文件中,添加xpack.encryptedSavedObjects.encryptionKey设置。 - 若要使电子邮件页脚包含返回 Kibana 的链接,请设置
server.publicBaseUrl配置项。
如果您使用的是启用了安全性的本地 Elastic Stack 部署
- 如果您无法访问 Kibana 警报功能,请确保您没有显式禁用 API 密钥。
警报框架使用的查询要求 search.allow_expensive_queries 设置为 true。请参阅脚本文档。
当将警报和操作作为关键任务服务时,请确保遵循警报生产注意事项。
有关警报功能可扩展性的更多信息,请前往扩展指南。
要在 Kibana 应用程序中使用警报功能,您必须拥有相应的功能权限
Kibana 权限
- 针对 Management > Stack Rules 功能设置
All。 - 针对 Management > Rules Settings 功能设置
All。 - 针对 Management > Actions and Connectors 功能设置
All。
管理连接器需要 Actions and Connectors 功能权限。要添加规则操作和测试连接器,您只需要 Read 权限。默认情况下,All 权限包括运行端点安全 (Endpoint Security) 连接器(如 SentinelOne 和 CrowdStrike)的权限,除非您自定义子功能权限。
同样,您可以自定义与抖动检测设置相关的 Rules Settings 子功能权限。
要创建使用 Cases 连接器的规则,您还必须拥有 Cases 功能的 All 权限。
规则类型也会影响创建和编辑规则所需的权限。例如:
- 对于机器学习规则,您必须拥有 Analytics > Machine Learning 功能的
all权限。 - 对于堆栈监控规则,您必须拥有
monitoring_user角色。 - 对于大多数可观测性 (Observability) 规则,您必须拥有相应可观测性功能的
all权限。但是,对于自定义阈值规则,您只需要stack alerts权限。 - 对于安全规则,请参阅启用检测 (Turn on detections)。
Kibana 权限
- 针对 Management > Stack Rules 功能设置
Read。 - 针对 Management > Rules Settings 功能设置
Read。 - 针对 Management > Actions and Connectors 功能设置
Read。
规则类型也会影响所需的权限。例如,要查看机器学习规则,您必须拥有 Analytics > Machine Learning 功能的 read 权限。对于堆栈监控规则,您必须拥有 monitoring_user 角色。对于可观测性规则,您必须拥有相应可观测性功能的 read 权限。对于安全规则,请参阅启用检测。
Kibana 权限
- 为
.alerts-*系统索引授予Read索引权限。
Kibana 权限
- 针对 Management > Stack Rules 功能设置
None。 - 针对 Management > Rules Settings 功能设置
None。 - 针对 Management > Actions and Connectors 功能设置
None。 - 不授予
.alerts-*系统索引的索引权限。
有关配置提供功能访问权限的角色的更多信息,请前往功能权限。
规则使用 API 密钥进行授权。其凭据用于运行与规则关联的所有后台任务,包括条件检查(如 Elasticsearch 查询)和触发的操作。
当您在 Kibana 中创建规则时,系统会创建一个 API 密钥,其中捕获了您当时权限的快照。同样,当您更新规则时,API 密钥也会更新为您编辑时权限的快照。
当您禁用规则时,它会保留关联的 API 密钥,该密钥在启用规则时会被重用。如果启用规则时 API 密钥丢失,则会生成一个包含您当前安全权限的新密钥。导入规则时,必须先启用它才能使用,此时会生成一个新的 API 密钥。
您可以随时在堆栈管理 > 规则中,或通过在规则详细信息页面的操作菜单中选择更新 API 密钥,来生成新的 API 密钥。
如果您使用 Kibana API 管理规则,它们支持基于密钥和基于令牌的身份验证,如身份验证中所述。要使用基于密钥的身份验证,请创建 API 密钥并在 API 调用的标头中使用它们,如API 密钥中所述。要使用基于令牌的身份验证,请提供用户名和密码;系统会自动创建一个与用户当前权限匹配的 API 密钥。在这两种情况下,API 密钥随后都会与规则关联并在规则运行时使用。
如果规则运行需要某些权限(例如索引权限),而没有这些权限的用户更新了该规则,则该规则将不再起作用。反之,如果具有更高权限或管理员权限的用户修改了该规则,它将以更高的权限开始运行。当您更改 API 调用标头中的 API 密钥时,也会发生同样的行为。
出于安全考虑,您可能希望限制 Kibana 连接到外部服务的范围。您可以使用操作设置来禁用某些连接器,并允许 Kibana 连接到特定的主机名(白名单)。
规则和连接器被隔离在创建它们的 Kibana 空间中。在一个空间中创建的规则或连接器在另一个空间中将不可见。
如果您想将警报规则与跨集群搜索结合使用,则必须为 CCS 和 Kibana 配置权限。请参阅远程集群。
当启用了跨项目搜索并且您拥有关联项目时,警报规则会根据空间级跨项目搜索范围跨关联项目查询数据。您无法在单个规则上设置跨项目搜索范围。
当您打开规则进行创建或编辑时,标题中的 CPS 范围选择器会显示当前的跨项目搜索范围,但它是只读的。要更改规则查询的项目,请更新为该空间配置的跨项目搜索范围。
对于 ES|QL 规则,您可以在规则查询中使用 SET project_routing 来定位特定的关联项目,从而覆盖空间级范围。对于使用索引模式的非 ES|QL 规则,您可以使用限定的索引表达式将规则范围限定为特定项目。
机器学习规则不支持跨项目搜索。机器学习规则仅搜索源项目中的数据。