导出器编辑

Elastic Agent 和 Metricbeat 是收集和发送监控数据到监控集群的推荐方法。

如果您之前配置了传统收集方法,您应该迁移到使用 Elastic AgentMetricbeat 收集。不要将传统收集方法与其他收集方法一起使用。

导出器的目的是将从任何 Elastic Stack 源收集的数据路由到监控集群。可以配置多个导出器,但一般和默认设置是使用单个导出器。

Elasticsearch 中有两种类型的导出器

本地
Elasticsearch 监控功能使用的默认导出器。此导出器将数据路由回 *相同* 集群。请参阅 本地导出器
http
首选的导出器,您可以使用它将数据路由到任何通过 HTTP 可访问的受支持的 Elasticsearch 集群。生产环境应始终使用单独的监控集群。请参阅 HTTP 导出器

这两个导出器都具有相同的目的:设置监控集群并路由监控数据。但是,它们以截然不同的方式执行这些任务。即使事情发生的方式不同,这两个导出器都能够发送所有相同的数据。

导出器可以在节点和集群级别进行配置。集群范围的设置(使用 _cluster/settings API 更新)优先于每个节点上 elasticsearch.yml 文件中的设置。当您更新导出器时,它将被更新版本的导出器完全替换。

所有节点共享相同的设置至关重要。否则,监控数据可能会以不同的方式或到不同的位置进行路由。

当导出器将监控数据路由到监控集群时,它们使用 _bulk 索引以实现最佳性能。所有监控数据都以批量方式转发到同一节点上的所有已启用导出器。从那里,导出器会序列化监控数据并向监控集群发送批量请求。没有排队(在内存中或持久化到磁盘),因此导出期间的任何故障都会导致该批监控数据丢失。这种设计限制了对 Elasticsearch 的影响,并且假设下一轮将成功。

路由监控数据涉及将其索引到相应的监控索引中。数据索引后,它将存在于监控索引中,默认情况下,监控索引的名称使用每日索引模式。对于 Elasticsearch 监控数据,这是一个与 .monitoring-es-6-* 匹配的索引。从那里,数据存在于监控集群中,必须根据需要进行管理或清理。如果您不管理监控数据,它最终会填满节点,并且集群可能会因磁盘空间不足而失败。

强烈建议您管理索引的管理,尤其是监控索引。为此,您可以利用 清理服务Elastic Curator

还有一个磁盘水位线(称为洪水水位线),它可以保护集群免受磁盘空间不足的影响。当此功能被触发时,它会使所有索引(包括监控索引)变为只读,直到问题得到解决并且用户手动将索引再次设为可写。当活动监控索引为只读时,它自然无法写入(索引)新数据,并且会持续记录指示写入失败的错误。有关更多信息,请参阅 基于磁盘的碎片分配设置

默认导出器编辑

如果节点或集群没有明确定义导出器,则使用以下默认导出器

xpack.monitoring.exporters.default_local: 
  type: local

导出器名称唯一地定义了导出器,但除此之外没有其他用途。当您指定自己的导出器时,您不需要显式覆盖或引用 default_local

如果另一个导出器已定义,则不会创建默认导出器。当您定义一个新的导出器时,如果默认导出器存在,它将被自动删除。

导出器模板和摄取管道编辑

在导出器可以路由监控数据之前,它们必须设置某些 Elasticsearch 资源。这些资源包括模板和摄取管道。下表列出了导出器可以路由监控数据之前所需的模板

模板 目的

.monitoring-alerts

所有监控数据的集群警报。

.monitoring-beats

所有 Beats 监控数据。

.monitoring-es

所有 Elasticsearch 监控数据。

.monitoring-kibana

所有 Kibana 监控数据。

.monitoring-logstash

所有 Logstash 监控数据。

模板是普通的 Elasticsearch 模板,用于控制监控索引的默认设置和映射。

默认情况下,监控索引每天创建(例如,.monitoring-es-6-2017.08.26)。您可以使用 index.name.time_format 设置更改监控索引的默认日期后缀。您可以使用此设置来控制特定 http 导出器创建监控索引的频率。您不能将此设置与 local 导出器一起使用。有关更多信息,请参阅 HTTP 导出器设置

一些用户创建了自己的模板,这些模板与 *所有* 索引模式匹配,因此会影响创建的监控索引。至关重要的是,您不要为监控索引禁用 _source 存储。如果您这样做,Kibana 监控功能将无法正常工作,您也无法可视化集群的监控数据。

下表列出了导出器可以路由监控数据之前所需的摄取管道

管道 目的

xpack_monitoring_2

将来自 X-Pack 5.0 - 5.4 的 X-Pack 监控数据升级为与 5.5 监控功能中使用的格式兼容。

xpack_monitoring_6

一个空的占位符管道。

导出器在发送数据之前处理这些资源的设置。如果资源设置失败(例如,由于安全权限),则不会发送数据,并且会记录警告。

空管道在索引期间在协调节点上进行评估,并且它们在没有任何额外工作的情况下被忽略。这本质上使它们成为安全的无操作操作。

对于已在所有节点上禁用 node.ingest 的监控集群,可以禁用摄取管道功能的使用。但是,这样做会阻止其目的,即随着时间的推移,随着我们的映射改进,升级旧的监控数据。从 6.0 开始,摄取管道功能是监控集群的要求;您必须在至少一个节点上启用 node.ingest

一旦任何运行 5.5 或更高版本的节点在监控集群上设置了模板和摄取管道,您就必须使用 Kibana 5.5 或更高版本来查看监控集群上的所有后续数据。确定此更新是否已完成的最简单方法是检查是否存在与 .monitoring-es-6-* 匹配的索引(或更具体地说,新管道的存在)。5.5 之前的版本使用 .monitoring-es-2-*

导出器创建的每个资源都有一个 version 字段,用于确定是否应替换该资源。 version 字段值表示更改资源的最新监控功能版本。如果资源被监控功能外部的某个人或某物编辑,则下次自动更新时,这些更改将丢失。