任务管理器健康监控
编辑任务管理器健康监控
编辑此功能为技术预览版,未来版本可能会更改或删除。Elastic 将努力修复任何问题,但技术预览版中的功能不受正式 GA 功能的支持 SLA 约束。
任务管理器具有内部监控机制,用于跟踪各种指标,这些指标可以通过健康监控 API 或 Kibana 服务器日志使用。
健康监控 API 提供了一个可以监控的可靠端点。使用此端点不会导致额外的负载,而是返回系统进行的最新健康检查。此设计允许外部监控服务以常规节奏使用,而不会给系统带来额外负载。
每个 Kibana 实例在其自己的端点上公开:
$ curl -X GET api/task_manager/_health
监控集群中每个 Kibana 实例的 _health
端点是确保诸如告警、操作和报告等关键任务服务可靠性的推荐方法。
配置监控的健康统计信息
编辑健康监控 API 开箱即用地监控任务管理器的性能。但是,某些性能考虑因素是特定于部署的,您可以对其进行配置。
健康阈值是任务执行失败的阈值。一旦任务超过此阈值,任务类型执行将设置为 warn
或 error
的状态。要配置健康阈值,请使用 xpack.task_manager.monitored_task_execution_thresholds
设置。您可以将此设置应用于系统中的所有任务类型,或应用于自定义任务类型。
默认情况下,此设置会在失败的执行次数超过 80% 时将每个任务类型的健康状况标记为 warning
,并在 90% 时标记为 error
。将此值设置为 0 到 100 之间的数字。当值超过此数字时,将达到阈值。要避免 error
状态,请将阈值设置为 100。要在任何任务失败时立即触发 error
,请将阈值设置为 0。
创建自定义配置,为您认为至关重要的任务类型设置较低的阈值,例如您希望在外部监控服务中更快检测到的告警任务。
xpack.task_manager.monitored_task_execution_thresholds: default: error_threshold: 70 warn_threshold: 50 custom: "alerting:.index-threshold": error_threshold: 50 warn_threshold: 0
默认配置将系统范围的 |
|
为 |
使用健康统计信息
编辑健康 API 最好的使用方式是通过 /api/task_manager/_health
端点。
此外,还有两种方法可以使用这些指标:
调试日志
这些指标会以常规节奏记录在 Kibana 的 DEBUG
记录器中。要在您的 Kibana 实例中启用任务管理器调试日志记录,请将以下内容添加到您的 kibana.yml
中:
logging: loggers: - context: plugins.taskManager appenders: [console] level: debug
这些统计信息的记录基于您的 xpack.task_manager.poll_interval
设置中设置的毫秒数,这可能会给您的日志添加大量噪音。仅临时启用此级别的日志记录。
自动日志记录
默认情况下,健康 API 以常规节奏运行,每次运行时都会尝试自我评估其性能。如果此自我评估产生潜在问题,则会将消息记录到 Kibana 服务器日志中。此外,健康 API 将查看任务等待开始的时间(从它们计划开始的时间开始)。如果此数字超过可配置的阈值(xpack.task_manager.monitored_stats_health_verbose_log.warn_delayed_task_start_in_seconds
),则会将与上述相同的消息记录到 Kibana 服务器日志中。
此消息如下所示:
Detected potential performance issue with Task Manager. Set 'xpack.task_manager.monitored_stats_health_verbose_log.enabled: true' in your Kibana.yml to enable debug logging`
如果出现此消息,请在您的 kibana.yml
中将 xpack.task_manager.monitored_stats_health_verbose_log.enabled
设置为 true
。这将开始以 warn
或 error
日志级别记录健康指标,具体取决于检测到的潜在问题的严重程度。
理解任务管理器健康统计信息
编辑健康监控 API 公开三个部分:configuration
、workload
和 runtime
配置 |
本部分总结了任务管理器的当前配置。这包括随时间变化的动态配置,例如 |
工作负载 |
本部分总结了整个集群的工作负载,包括系统中的任务、它们的类型和当前状态。 |
运行时 |
本部分跟踪任务管理器的执行性能,跟踪任务漂移、worker 负载以及按类型划分的执行统计信息,包括持续时间和执行结果。 |
容量估计 |
本部分提供了关于其容量是否足够的粗略估计。顾名思义,这些是基于历史数据的估计,不应将其用作预测。在遵循任务管理器扩展指南时,请使用这些估计值。 |
每个部分都有一个 timestamp
和一个 status
,指示该部分的上次更新时间以及该部分的健康状况是否被评估为 OK
、Warning
或 Error
。
根 status
指示整个系统的 status
。
运行时 status
指示任务执行是否已超过任何配置的健康阈值。OK
状态表示未超过任何阈值。Warning
状态表示至少已超过一个警告阈值。Error
状态表示至少已超过一个错误阈值。
容量估计 status
指示观察到的容量是否足够。OK
状态表示容量足够。Warning
状态表示容量足以满足计划的重复性任务,但非重复性任务通常会导致集群超出容量。Error
状态表示所有类型的任务的容量都不足。
通过监控整个系统的 status
以及感兴趣的特定任务类型的 status
,您可以评估 Kibana 任务管理系统的健康状况。