加载中

Kibana 任务管理

Kibana 任务管理器被警报、操作和报告等功能用于运行作为持久后台任务的关键业务工作。这些后台任务将工作分发到多个 Kibana 实例中。这具有三大主要优势

  • 持久性:所有任务状态和调度都存储在 Elasticsearch 中,因此如果您重启 Kibana,任务将从上次中断的地方继续执行。
  • 可扩展性:多个 Kibana 实例可以读取和更新 Elasticsearch 中的同一个任务队列,从而允许在各个实例之间分发工作负载。如果某个 Kibana 实例不再具备运行任务的能力,您可以通过添加额外的 Kibana 实例来提升容量。有关可扩展性的更多信息,请参阅 Kibana 任务管理器扩展注意事项
  • 负载均衡:任务管理器配备了响应式自愈机制,允许其在对 Elasticsearch 中与负载相关的错误率增加做出反应时,减少其执行的工作量。此外,当任务管理器遇到重复任务增加的情况时,它会尝试错开工作时间以更好地平衡负载。
重要提示

警报和操作的任务定义存储在名为 .kibana_task_manager 的索引中。

对于生产环境部署,您必须为此索引至少配置一个副本。

如果您丢失了此索引,所有已计划的警报和操作都将丢失。

Kibana 后台任务的管理方式如下

  • 系统会以 500 毫秒的间隔轮询 Elasticsearch 任务索引以查找逾期任务。您可以使用 xpack.task_manager.poll_interval 设置来更改此间隔。
  • 通过在 Elasticsearch 索引中更新任务来认领任务,同时使用乐观并发控制来防止冲突。每个 Kibana 实例最多可以运行 10 个并发任务,因此每个间隔最多认领 10 个任务。
  • Elasticsearch 和 Kibana 实例使用系统时钟来确定当前时间。为确保按预期触发调度,请使用诸如 网络时间协议 (Network Time Protocol) 之类的时间服务来同步集群中所有节点的时钟。
  • 任务在 Kibana 服务器上运行。
    建议为后台任务使用一个隔离的节点。对于本地部署,您可以通过将 node.roles 设置为 background_tasks 来实现这一点,或者在 ECH 中将 Kibana 扩展到 8G+。
  • 任务管理器可确保任务
    • 仅执行一次
    • 失败时进行重试(如果已配置)
    • 重新排期以在未来的某个时间点再次运行(如果已配置)
      重要提示

      任务有时可能会延迟运行或以不一致的调度运行。

这通常是相关集群的特定使用情况或扩展策略所导致的现象。

要解决这些问题,请调整 Kibana 任务管理器设置或集群扩展策略,以更好地适应独特的用例。

有关可能影响任务管理器性能和吞吐量的设置的详细信息,请参阅 任务管理器设置

有关详细的故障排除指南,请参阅 故障排除

© . This website operates independently and is not affiliated with or endorsed by Elasticsearch B.V. All brand names, logos, and trademarks are the property of their respective owners.