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 安全功能或保护集群的其他形式的用户身份验证的用户,进行用户身份验证。

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

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

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

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

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

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

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

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

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

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

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

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