收集器
编辑收集器
编辑Elastic Agent 和 Metricbeat 是将监控数据收集并发送到监控集群的推荐方法。
如果您之前已配置旧版收集方法,则应迁移到使用 Elastic Agent 或 Metricbeat 收集。请勿同时使用旧版收集方法和其他收集方法。
顾名思义,收集器负责收集数据。每个收集器都会根据每个收集间隔运行一次,以从 Elasticsearch 和 X-Pack 中它选择监控的公共 API 获取数据。数据收集完成后,数据将批量交给 导出器 发送到监控集群。无论导出器的数量多少,每个收集器每个收集间隔只运行一次。
每种收集的数据类型只有一个收集器。换句话说,对于创建的任何监控文档,它都来自单个收集器,而不是来自多个收集器的合并。Elasticsearch 监控功能目前只有几个收集器,因为目标是最小化它们之间的重叠以获得最佳性能。
每个收集器可以创建零个或多个监控文档。例如,index_stats
收集器同时收集所有索引统计信息,以避免许多不必要的调用。
收集器 | 数据类型 | 描述 |
---|---|---|
集群统计信息 |
|
收集有关集群状态的详细信息,包括实际集群状态的部分内容(例如 |
索引统计信息 |
|
收集有关集群中索引的详细信息,包括摘要和各个索引。这会创建许多代表索引统计信息输出部分的文档(例如, |
索引恢复 |
|
收集有关集群中索引恢复的详细信息。索引恢复表示在集群级别分配*分片*。如果索引未恢复,则无法使用。这也对应于通过快照进行分片恢复。此信息只需要收集一次,因此它是在*已选举*的主节点上收集的。此收集器的最常见故障与分片数量极多(因此收集时间过长)导致超时有关。默认情况下,这会创建一个包含所有恢复的单个文档,该文档可能非常大,但它提供了生产集群中恢复情况最准确的描述。 |
分片 |
|
收集有关所有已*分配*分片(针对所有索引)的详细信息,尤其包括分片分配到的节点。此信息只需要收集一次,因此它是在*已选举*的主节点上收集的。与大多数其他收集器不同,收集器使用本地集群状态来获取路由表,不会出现任何网络超时问题。每个分片都由一个单独的监控文档表示。 |
作业 |
|
收集有关所有机器学习作业统计信息(例如, |
节点统计信息 |
|
收集有关正在运行的节点的详细信息,例如内存使用率和 CPU 使用率(例如, |
Elasticsearch 监控功能使用单线程调度程序来运行所有相关收集器在每个节点上收集 Elasticsearch 监控数据。此调度程序由每个节点在本地管理,其间隔通过在节点或集群级别指定 xpack.monitoring.collection.interval
来控制,默认值为 10 秒 (10s
)。
从根本上讲,每个收集器的工作原理相同。在每个收集间隔,都会检查每个收集器是否应该运行,然后运行相应的收集器。单个收集器的故障不会影响任何其他收集器。
收集完成后,所有监控数据都将传递给导出器,以将监控数据路由到监控集群。
如果 Kibana 中的监控图表中存在间隙,通常是因为收集器失败或监控集群未接收数据(例如,它正在重新启动)。如果收集器失败,则应该在尝试执行收集的节点上存在已记录的错误。
当前收集是串行完成的,而不是并行完成的,以避免在已选举的主节点上增加额外开销。这种方法的缺点是收集器可能会在同一收集期间观察到不同版本的集群状态。实际上,这并没有什么区别,并且并行运行收集器并不能防止这种情况发生。
有关收集器的配置选项的更多信息,请参阅 监控收集设置。
收集来自整个 Elastic Stack 的数据
编辑Elasticsearch 监控功能还可以接收来自 Elastic Stack 其他部分的监控数据。通过这种方式,它充当堆栈的非计划监控数据收集器。
默认情况下,数据收集处于禁用状态。不会收集 Elasticsearch 监控数据,并且会忽略来自 Kibana、Beats 和 Logstash 等其他来源的所有监控数据。您必须将 xpack.monitoring.collection.enabled
设置为 true
才能启用监控数据的收集。请参阅 监控设置。
收到数据后,它将转发给导出器,以便像所有监控数据一样路由到监控集群。
由于此堆栈级“收集器”位于 Elasticsearch 监控功能的收集间隔之外,因此它不受 xpack.monitoring.collection.interval
设置的影响。因此,每当收到数据时,数据就会传递给导出器。此行为可能导致意外创建 Kibana、Logstash 或 Beats 的索引。
在收集和处理监控数据时,会将一些生产集群元数据添加到传入的文档中。此元数据使 Kibana 能够将监控数据链接到相应的集群。如果此链接对您正在监控的基础设施不重要,则直接配置 Logstash 和 Beats 将监控数据报告到监控集群可能会更简单。此方案还可以防止生产集群增加与监控数据相关的额外开销,当存在大量 Logstash 节点或 Beats 时,这非常有用。
有关典型监控架构的更多信息,请参阅 工作原理。