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