HTTP 导出器编辑

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

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

http 导出器是 Elasticsearch 监控功能中首选的导出器,因为它支持使用单独的监控集群。作为次要好处,它避免将生产集群节点用作索引监控数据的协调节点,因为所有请求都是对监控集群的 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 安全功能或其他形式的用户身份验证保护集群的用户身份验证。

请参阅 HTTP 导出器设置 以了解所有 TLS/SSL 设置。如果未提供,将使用默认的节点级 TLS/SSL 设置。

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

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

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

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

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

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

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

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

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

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

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