导出器
编辑导出器编辑
Elastic Agent 和 Metricbeat 是收集和发送监控数据到监控集群的推荐方法。
如果您之前配置了传统收集方法,您应该迁移到使用 Elastic Agent 或 Metricbeat 收集。不要将传统收集方法与其他收集方法一起使用。
导出器的目的是将从任何 Elastic Stack 源收集的数据路由到监控集群。可以配置多个导出器,但一般和默认设置是使用单个导出器。
Elasticsearch 中有两种类型的导出器
这两个导出器都具有相同的目的:设置监控集群并路由监控数据。但是,它们以截然不同的方式执行这些任务。即使事情发生的方式不同,这两个导出器都能够发送所有相同的数据。
导出器可以在节点和集群级别进行配置。集群范围的设置(使用 _cluster/settings
API 更新)优先于每个节点上 elasticsearch.yml
文件中的设置。当您更新导出器时,它将被更新版本的导出器完全替换。
所有节点共享相同的设置至关重要。否则,监控数据可能会以不同的方式或到不同的位置进行路由。
当导出器将监控数据路由到监控集群时,它们使用 _bulk
索引以实现最佳性能。所有监控数据都以批量方式转发到同一节点上的所有已启用导出器。从那里,导出器会序列化监控数据并向监控集群发送批量请求。没有排队(在内存中或持久化到磁盘),因此导出期间的任何故障都会导致该批监控数据丢失。这种设计限制了对 Elasticsearch 的影响,并且假设下一轮将成功。
路由监控数据涉及将其索引到相应的监控索引中。数据索引后,它将存在于监控索引中,默认情况下,监控索引的名称使用每日索引模式。对于 Elasticsearch 监控数据,这是一个与 .monitoring-es-6-*
匹配的索引。从那里,数据存在于监控集群中,必须根据需要进行管理或清理。如果您不管理监控数据,它最终会填满节点,并且集群可能会因磁盘空间不足而失败。
强烈建议您管理索引的管理,尤其是监控索引。为此,您可以利用 清理服务 或 Elastic Curator。
还有一个磁盘水位线(称为洪水水位线),它可以保护集群免受磁盘空间不足的影响。当此功能被触发时,它会使所有索引(包括监控索引)变为只读,直到问题得到解决并且用户手动将索引再次设为可写。当活动监控索引为只读时,它自然无法写入(索引)新数据,并且会持续记录指示写入失败的错误。有关更多信息,请参阅 基于磁盘的碎片分配设置。
默认导出器编辑
如果节点或集群没有明确定义导出器,则使用以下默认导出器
如果另一个导出器已定义,则不会创建默认导出器。当您定义一个新的导出器时,如果默认导出器存在,它将被自动删除。
导出器模板和摄取管道编辑
在导出器可以路由监控数据之前,它们必须设置某些 Elasticsearch 资源。这些资源包括模板和摄取管道。下表列出了导出器可以路由监控数据之前所需的模板
模板 | 目的 |
---|---|
|
所有监控数据的集群警报。 |
|
所有 Beats 监控数据。 |
|
所有 Elasticsearch 监控数据。 |
|
所有 Kibana 监控数据。 |
|
所有 Logstash 监控数据。 |
模板是普通的 Elasticsearch 模板,用于控制监控索引的默认设置和映射。
默认情况下,监控索引每天创建(例如,.monitoring-es-6-2017.08.26
)。您可以使用 index.name.time_format
设置更改监控索引的默认日期后缀。您可以使用此设置来控制特定 http
导出器创建监控索引的频率。您不能将此设置与 local
导出器一起使用。有关更多信息,请参阅 HTTP 导出器设置。
一些用户创建了自己的模板,这些模板与 *所有* 索引模式匹配,因此会影响创建的监控索引。至关重要的是,您不要为监控索引禁用 _source
存储。如果您这样做,Kibana 监控功能将无法正常工作,您也无法可视化集群的监控数据。
下表列出了导出器可以路由监控数据之前所需的摄取管道
管道 | 目的 |
---|---|
|
将来自 X-Pack 5.0 - 5.4 的 X-Pack 监控数据升级为与 5.5 监控功能中使用的格式兼容。 |
|
一个空的占位符管道。 |
导出器在发送数据之前处理这些资源的设置。如果资源设置失败(例如,由于安全权限),则不会发送数据,并且会记录警告。
空管道在索引期间在协调节点上进行评估,并且它们在没有任何额外工作的情况下被忽略。这本质上使它们成为安全的无操作操作。
对于已在所有节点上禁用 node.ingest
的监控集群,可以禁用摄取管道功能的使用。但是,这样做会阻止其目的,即随着时间的推移,随着我们的映射改进,升级旧的监控数据。从 6.0 开始,摄取管道功能是监控集群的要求;您必须在至少一个节点上启用 node.ingest
。
一旦任何运行 5.5 或更高版本的节点在监控集群上设置了模板和摄取管道,您就必须使用 Kibana 5.5 或更高版本来查看监控集群上的所有后续数据。确定此更新是否已完成的最简单方法是检查是否存在与 .monitoring-es-6-*
匹配的索引(或更具体地说,新管道的存在)。5.5 之前的版本使用 .monitoring-es-2-*
。
导出器创建的每个资源都有一个 version
字段,用于确定是否应替换该资源。 version
字段值表示更改资源的最新监控功能版本。如果资源被监控功能外部的某个人或某物编辑,则下次自动更新时,这些更改将丢失。