Logstash 输出插件

编辑

有关其他版本,请参阅 版本化插件文档

获取帮助

编辑

有关插件的问题,请在 Discuss 论坛中发起主题。对于错误或功能请求,请在 Github 中提交问题。有关 Elastic 支持的插件列表,请参阅 Elastic 支持矩阵

描述

编辑

将事件发送到管道中的 Logstash 输入插件,该管道可能位于另一个进程或另一台主机上。您必须拥有到端口(默认为 9800)的 TCP 路由,该端口位于下游输入绑定的接口上。

发送事件到**任何**除 logstash-input 插件以外的目标都不建议也不支持。我们将维护任何两个支持的输出/输入对版本的跨兼容性,并保留更改协议和编码等细节的权利。

最小配置

编辑
SSL 已启用 SSL 已禁用
output {
  logstash {
    hosts => "10.0.0.123:9801"
  }
}
output {
  logstash {
    hosts => "10.0.0.123:9801"
    ssl_enabled
         => false
  }
}

配置概念

编辑

通过指定其 hosts 配置此输出插件以连接到 Logstash 输入插件。根据下游插件的配置,您可能还需要配置目标端口、SSL 和/或凭据。

安全:SSL 信任

编辑

在通过 SSL 通信时,此插件会在传输凭据或事件之前建立对其连接到的服务器的信任。

它是通过确保响应服务器提供具有与之连接的主机匹配的身份声明的当前有效证书,该证书由受信任的签名机构签名,以及关联私钥材料的所有权证明来实现的。

默认情况下使用系统信任存储。您可以使用**其中一个**来提供信任的**备用**来源

安全:SSL 身份

编辑

如果下游输入插件配置为请求或要求客户端身份验证,则可以使用**其中一个**配置此插件以提供其身份证明

安全:凭据

编辑

如果下游 logstash-input 插件配置为需要 usernamepassword,则需要使用匹配的 usernamepassword 配置此输出。

当 SSL 被禁用时,数据和凭据将以明文形式传输。

Logstash 输出配置选项

编辑

此插件支持以下配置选项以及稍后描述的 常用选项

另请参阅 常用选项,以获取所有输出插件支持的选项列表。

 

hosts

编辑
  • 值类型为 字符串 列表
  • 此设置没有默认值。
  • 约束

    • 使用 IPv6 时,IP 地址必须用括号括起来。
    • 如果未提供端口,则使用默认端口 9800

要连接到的一个或多个下游 `input` 的地址。

主机可以是 IPv4、IPv6(用括号括起来)或主机名,例如

  • "127.0.0.1"
  • "127.0.0.1:9801"
  • "ds.example.com"
  • "ds.example.com:9802"
  • "[::1]"
  • "[::1]:9803"
  • "[2001:0db8:85a3:0000:0000:8a2e:0370:7334]"
  • "[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:9804"

插件在 hosts 之间平衡传入负载。有关更多信息,请访问 Logstash 集成插件 的“负载均衡”部分。

连接时,除非另有配置,否则与下游输入 Logstash 的通信将使用 SSL 保护。

禁用 SSL 是危险的

此插件的安全依赖于 SSL 以避免泄露凭据并避免运行非法的摄取管道定义。

使用 SSL 时,响应的服务器必须提供一个证书,其身份声明与该主机名或 IP 地址匹配。

password

编辑
  • 值类型为 密码
  • 此设置没有默认值。
  • 当配置了 username 时,此项为必需。

基于密码的身份验证的密码。

当下游输入插件配置了 usernamepassword 时,还必须使用匹配的 username/password 对配置上游输出。

ssl_enabled

编辑

Logstash 到 Logstash 的通信默认情况下是安全的。当下游输入插件禁用 SSL 时,也必须在此处禁用它。

您可以使用 +ssl_enabled => false+ 禁用 SSL。禁用后,设置任何 ssl_* 配置会导致配置失败。

ssl_certificate

编辑
  • 值类型为 路径
  • 此设置没有默认值。
  • 如果存在,则 ssl_key 也是必需的。
  • 不能与禁用 SSL 的配置组合使用。

PEM 编码证书或证书链的路径,用于将此插件标识给连接的下游输入。

ssl_certificate_authorities

编辑

一个或多个 PEM 编码文件,定义用于下游输入身份验证的证书颁发机构。此设置可用于**覆盖**系统信任存储以验证下游输入提供的 SSL 证书。

ssl_key

编辑
  • 值类型为 路径
  • 此设置没有默认值。
  • 当使用 ssl_certificate 配置连接身份时,此项为必需。
  • 不能与禁用 SSL 的配置组合使用。

PEM 编码的**未加密**PKCS8 SSL 证书密钥的路径。

ssl_keystore_path

编辑
  • 值类型为 路径
  • 此设置没有默认值。
  • 如果存在,则 ssl_keystore_password 也是必需的。
  • 不能与禁用 SSL 的配置组合使用。

JKS 或 PKCS12 格式的密钥库的路径,用于将此插件标识给下游输入。如果下游输入启用了 SSL 客户端身份验证,则将使用提供身份。

ssl_keystore_password

编辑
  • 值类型为 密码
  • 此设置没有默认值。
  • 当使用 ssl_keystore_path 配置连接身份时,此项为必需。
  • 不能与禁用 SSL 的配置组合使用。

ssl_keystore_path 的密码

ssl_truststore_path

编辑

JKS 或 PKCS12 格式的信任库的路径,用于验证下游输入的身份声明。如果下游输入启用了 SSL 客户端身份验证,则将使用提供身份。

ssl_truststore_password

编辑
  • 值类型为 密码
  • 此设置没有默认值。
  • 当连接身份使用 ssl_truststore_path 配置时,此选项为必填。
  • 不能与禁用 SSL 的配置组合使用。

ssl_truststore_path 的密码。

ssl_verification_mode

编辑
  • 值类型为 字符串
  • 支持的模式:

    • full:验证客户端提供的证书的身份声明是否与 hosts 匹配,是否由受信任的证书颁发机构 (CA) 签署,是否在有效日期范围内,以及客户端是否拥有关联的密钥。
    • none:不执行任何证书验证。
  • 默认值为 full
  • 不能与禁用 SSL 的配置组合使用。

在通过 SSL 通信时,此设置控制如何验证下游输入的证书。

username

编辑
  • 值类型为 字符串
  • 此设置没有默认值。
  • 如果存在,则 password 也是必需的。

基于密码的身份验证的用户名。

当下游输入插件配置了 usernamepassword 时,还必须使用匹配的 username/password 对配置上游输出。

当 SSL 被禁用时,凭据将以明文形式传输。

通用选项

编辑

这些配置选项受所有输出插件支持。

设置 输入类型 必需

enable_metric

布尔值

id

字符串

enable_metric

编辑

禁用或启用此特定插件实例的指标日志记录。默认情况下,我们会记录所有可以记录的指标,但您可以禁用特定插件的指标收集。

  • 值类型为 字符串
  • 此设置没有默认值。

向插件配置添加唯一的 ID。如果未指定 ID,Logstash 将生成一个。强烈建议在配置中设置此 ID。当您有两个或多个相同类型的插件时,这尤其有用。例如,如果您有两个 logstash 输出。在这种情况下,添加一个命名的 ID 将有助于在使用监控 API 时监控 Logstash。

output {
  logstash {
    id => "my_plugin_id"
  }
}

id 字段中的变量替换仅支持环境变量,不支持使用密钥存储中的值。