Logstash 输出设置编辑

指定这些设置以通过安全连接将数据发送到 Logstash。您还必须配置一个 Logstash 管道,该管道从 Elastic Agent 读取加密数据并将数据发送到 Elasticsearch。按照产品内步骤配置 Logstash 管道。

在 Fleet 输出设置 中,确保选择了 Logstash 输出类型。

在使用 Logstash 输出之前,您需要确保已为 添加到 Elastic Agent 策略 的任何集成在目标集群上安装了集成资产。有关添加集成资产的步骤,请参阅 安装和卸载 Elastic Agent 集成资产

要了解如何生成证书,请参阅 为 Logstash 输出配置 SSL/TLS

Logstash 主机

您的 Elastic Agent 将用于连接到 Logstash 的地址。使用格式 host:port。单击 添加 行以指定其他 Logstash 地址。

示例

  • 192.0.2.0:5044
  • mylogstashhost:5044

有关默认端口和其他配置详细信息,请参阅 Fleet Server 文档。

服务器 SSL 证书颁发机构

用于连接到 Logstash 的 CA 证书。这是用于为 Logstash 生成证书和密钥的 CA。复制并粘贴 CA 证书的完整内容。

此设置是可选的。

客户端 SSL 证书

为客户端生成的证书。复制并粘贴证书的完整内容。这是所有代理将用于连接到 Logstash 的证书。

如果每个客户端都有唯一的证书,则可以将该证书的本地路径放在此处。代理在建立与 Logstash 的连接时,将选择该位置的证书。

客户端 SSL 证书密钥

为客户端生成的私钥。这必须是 PKCS 8 密钥。复制并粘贴证书密钥的完整内容。这是所有代理将用于连接到 Logstash 的证书密钥。

如果每个客户端都有唯一的证书密钥,则可以将该证书密钥的本地路径放在此处。代理在建立与 Logstash 的连接时,将选择该位置的证书密钥。

为了防止未经授权的访问,证书密钥存储为机密值。虽然建议使用机密存储,但您可以选择覆盖此设置,并将密钥作为纯文本存储在代理策略定义中。机密存储需要 Fleet Server 8.12 或更高版本。

请注意,此设置也可以存储为机密值或为预配置输出存储为纯文本。有关更多信息,请参阅 Kibana 指南中的 预配置设置

代理

为 Elastic Agent 选择一个代理 URL 以连接到 Logstash。要了解有关代理配置的信息,请参阅 将代理服务器与 Elastic Agent 和 Fleet 一起使用

高级 YAML 配置

将添加到使用此输出的每个策略的 Logstash 输出部分的 YAML 设置。确保您指定了有效的 YAML。UI 当前不提供验证。

有关可用设置的说明,请参阅 高级 YAML 配置

将此输出设为代理集成的默认输出

启用此设置后,如果在 代理策略 中未设置其他输出,则 Elastic Agent 将使用此输出发送数据。

Fleet Server 或 APM 使用的策略中的代理集成不支持输出到 Logstash。

将此输出设为代理监控的默认输出

启用此设置后,如果在 代理策略 中未设置其他输出,则 Elastic Agent 将使用此输出发送 代理监控数据

Fleet Server 或 APM 使用的策略中的代理监控不支持输出到 Logstash。

高级 YAML 配置编辑

设置 描述

backoff.init

(字符串)网络错误后尝试重新连接到 Logstash 之前的等待时间(以秒为单位)。等待 backoff.init 秒后,Elastic Agent 尝试重新连接。如果尝试失败,则退避计时器会呈指数级增加,直至达到 backoff.max。成功连接后,退避计时器将重置。

默认值: 1s

backoff.max

(字符串)网络错误后尝试连接到 Elasticsearch 之前的最长等待时间(以秒为单位)。

默认值: 60s

bulk_max_size

(整数)在单个 Logstash 请求中批量处理的最大事件数。

事件可以收集到批次中。Elastic Agent 会将大于 bulk_max_size 的批次拆分为多个批次。

指定较大的批次大小可以通过降低发送事件的开销来提高性能。但是,较大的批次大小也会增加处理时间,这可能会导致 API 错误、连接终止、发布请求超时,最终导致吞吐量降低。

将此值设置为 0 可关闭批次拆分。关闭拆分后,队列将确定批次中包含的事件数。

默认值: 2048

compression_level

(整数)gzip 压缩级别。将此值设置为 0 可禁用压缩。压缩级别必须在 1(速度最快)到 9(压缩率最高)的范围内。

提高压缩级别会减少网络使用量,但会增加 CPU 使用量。

escape_html

(布尔值)配置字符串中 HTML 的转义。设置为 true 可启用转义。

默认值: false

index

(字符串)要将事件写入的索引根名称。

loadbalance

如果为 true 并且配置了多个 Logstash 主机,则输出插件会将已发布的事件负载均衡到所有 Logstash 主机上。如果为 false,则输出插件会将所有事件发送到一个主机(随机确定),并在所选主机无响应时切换到另一个主机。

启用 loadbalance

  • Elastic Agent 会读取事件批次,并根据输出之间共享的工作队列,将每个批次动态发送到一个 Logstash 工作器。
  • 如果连接断开,Elastic Agent 会从其池中删除断开的 Logstash 工作器。
  • Elastic Agent 尝试重新连接。如果成功,它会将 Logstash 工作器重新添加到池中。
  • 如果其中一个 Logstash 节点速度较慢但“健康”,它会发送保持活动信号,直到处理完整个数据批次。这可以防止 Elastic Agent 发送更多数据,直到它收到来自 Logstash 的确认信号。Elastic Agent 会将所有事件保留在内存中,直到收到确认信号。

未启用 loadbalance

  • Elastic Agent 会随机选择一个 Logstash 主机,并将事件批次发送到该主机。由于采用随机算法,因此 Logstash 节点上的负载应该大致相等。
  • 如果出现任何错误,Elastic Agent 会随机选择另一个 Logstash 节点。如果与主机的连接失败,则仅当新连接上出现错误时才会重试该主机。

默认值: false

示例

outputs:
  default:
    type: logstash
    hosts: ["localhost:5044", "localhost:5045"]
    loadbalance: true

max_retries

(整数)发布失败后重试发布事件的次数。在指定的重试次数后,通常会丢弃事件。

max_retries 设置为小于 0 的值以继续重试,直到发布所有事件。

默认值: 3

pipelining

(整数)在等待 Logstash 的 ACK 时异步发送到 Logstash 的批次数。在写入指定数量的批次后,输出将变为阻塞。指定 0 可关闭流水线。

默认值: 2

proxy_use_ local_resolver

(布尔值)确定在使用代理时是否在本地解析 Logstash 主机名。如果为 false 且使用了代理,则名称解析将在代理服务器上进行。

默认值: false

queue.mem.events

队列可以存储的事件数。此值应可以被 queue.mem.flush.min_eventsbulk_max_size 中较小的值整除,以避免将部分批次发送到输出。

默认值: 3200 个事件

queue.mem.flush.min_events

flush.min_events 是一个遗留参数,新配置应优先使用 bulk_max_size 控制批大小。从 8.13 版本开始,使用 flush.min_events 而不是 bulk_max_size 限制批大小永远不会带来性能优势。

默认值: 1600 个事件

queue.mem.flush.timeout

(整数)满足 queue.mem.flush.min_events 的最大等待时间。如果设置为 0 秒,则事件可立即用于输出。

默认值: 10 秒

slow_start

(布尔值)如果为 true,则每次事务仅传输一批事件中的部分事件。如果没有遇到错误,则要发送的事件数量会增加到 bulk_max_size。如果出现错误,则每次事务的事件数量会再次减少。

默认值: false

timeout

(字符串)等待 Logstash 服务器响应的秒数,超过此时间后将超时。

默认值: 30 秒

ttl

(字符串)与 Logstash 的连接的生存时间,在此时间之后将重新建立连接。当 Logstash 主机代表负载均衡器时,此设置很有用。因为与 Logstash 主机的连接是粘性的,所以在负载均衡器后面操作可能会导致实例之间的负载分配不均匀。在连接上指定 TTL 以实现跨实例的平等连接分配。

默认值: 0(关闭该功能)

异步 Logstash 客户端(pipelining 选项设置为 true 的客户端)尚不支持 ttl 选项。

worker

(整数)每个配置的主机发布事件的工作线程数。示例:如果您有两个主机和三个工作线程,则总共会启动六个工作线程(每个主机三个)。

默认值: 1