HTTP 导出器

编辑

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

如果您之前配置了旧版收集方法,应迁移到使用 Elastic AgentMetricbeat 收集。请勿同时使用旧版收集方法和其他收集方法。

在 Elasticsearch 监控功能中,http 导出器是首选导出器,因为它允许使用单独的监控集群。次要好处是它避免将生产集群节点用作索引监控数据的协调节点,因为所有请求都是对监控集群的 HTTP 请求。

http 导出器使用低级 Elasticsearch REST 客户端,这使其能够将其数据发送到可以通过网络访问的任何 Elasticsearch 集群。它的请求利用 filter_path 参数尽可能减少带宽,这有助于确保生产集群和监控集群之间的通信尽可能轻量级。

http 导出器支持许多控制其如何通过 HTTP 与远程集群通信的设置。在大多数情况下,无需显式配置这些设置。有关详细说明,请参见 监控设置

xpack.monitoring.exporters:
  my_local: 
    type: local
  my_remote: 
    type: http
    host: [ "10.1.2.3:9200", ... ] 
    auth: 
      username: my_username
      # "xpack.monitoring.exporters.my_remote.auth.secure_password" must be set in the keystore
    connection:
      timeout: 6s
      read_timeout: 60s
    ssl: ... 
    proxy:
      base_path: /some/base/path 
    headers: 
      My-Proxy-Header: abc123
      My-Other-Thing: [ def456, ... ]
    index.name.time_format: YYYY-MM 

一个显式定义的 local 导出器,其任意名称为 my_local

一个定义的 http 导出器,其任意名称为 my_remote。此名称唯一地定义了导出器,但在其他方面未使用。

hosthttp 导出器的必需设置。它必须指定 HTTP 端口而不是传输端口。默认端口值为 9200

对于使用 Elastic Stack 安全功能或其他某种保护集群的用户身份验证形式的用户。

有关所有 TLS/SSL 设置,请参见 HTTP 导出器设置。如果未提供,则使用默认的节点级 TLS/SSL 设置。

可选的基本路径,用于为任何传出请求添加前缀,以便与代理一起使用。

任意键/值对,定义为要与每个请求一起发送的标头。基于数组的键/值格式为每个值发送一个标头。

一种更改默认使用的日期后缀的机制。

http 导出器接受 hosts 数组,它将循环遍历该列表。当监控集群包含多个节点时,利用此功能是一个好主意。

local 导出器不同,使用 http 导出器的每个节点都尝试检查并创建其所需的资源。http 导出器避免重新检查资源,除非某些事件触发它再次执行检查。这些触发器包括

  • 生产集群的节点重启。
  • 与监控集群的连接失败。
  • 生产集群上的许可证更改。
  • http 导出器被动态更新(因此被替换)。

触发检查的最简单方法是禁用然后重新启用导出器。

这种资源管理行为可能会为删除监控资源的用户创建一个漏洞。由于 http 导出器不会重新检查其资源,除非发生其中一个触发器,这可能导致索引映射格式错误。

local 导出器不同,http 导出器本质上是在集群外部路由请求。这意味着当监控集群需要用户名和密码(或其他适当的安全配置,例如 TLS/SSL 设置)时,导出器必须提供用户名和密码。

在讨论与 http 导出器相关的安全性时,务必记住所有用户都在监控集群上进行管理。当您从开发环境迁移到生产环境时,这一点尤其重要,因为在生产环境中您通常拥有专用的监控集群。

有关 http 导出器配置选项的更多信息,请参见 HTTP 导出器设置