导出器

编辑

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字段值表示更改资源的最新版本的监控功能。如果资源被监控功能外部的人员或事物编辑,则下次发生自动更新时,这些更改将丢失。