Kibana 任务管理
Elastic Stack
Kibana 任务管理器被警报、操作和报告等功能用于作为持久后台任务运行关键任务工作。这些后台任务将工作分配到多个 Kibana 实例。这有三个主要好处
- 持久性:所有任务状态和调度都存储在 Elasticsearch 中,因此如果重新启动 Kibana,任务将从中断处继续。
- 扩展:多个 Kibana 实例可以从 Elasticsearch 中读取和更新相同的任务队列,从而允许将工作负载分配到各个实例。如果 Kibana 实例不再有运行任务的容量,则可以通过添加其他 Kibana 实例来增加容量。有关扩展的更多信息,请参阅Kibana 任务管理器扩展注意事项。
- 负载平衡:任务管理器配备了反应式自愈机制,该机制使其能够减少其执行的工作量,以应对 Elasticsearch 中增加的与负载相关的错误率。此外,当任务管理器遇到重复性任务的增加时,它会尝试间隔开工作以更好地平衡负载。
重要提示
警报和操作的任务定义存储在名为 .kibana_task_manager
的索引中。
对于生产部署,您必须至少拥有此索引的一个副本。
如果丢失此索引,则所有计划的警报和操作都将丢失。
Kibana 后台任务的管理方式如下
- 以 3 秒的间隔轮询 Elasticsearch 任务索引以查找过期的任务。您可以使用
xpack.task_manager.poll_interval
设置来更改此间隔。 - 通过在 Elasticsearch 索引中更新任务来声明任务,使用乐观并发控制来防止冲突。每个 Kibana 实例最多可以运行 10 个并发任务,因此每个间隔最多声明 10 个任务。
- Elasticsearch 和 Kibana 实例使用系统时钟来确定当前时间。为确保计划按预期触发,请使用诸如网络时间协议之类的时间服务同步群集中所有节点的时钟。
- 任务在 Kibana 服务器上运行。
- 任务管理器确保任务
- 只执行一次
- 在失败时重试(如果配置为这样做)
- 重新安排在未来的某个时间再次运行(如果配置为这样做)