Logstash 到 Logstash:输出到输入

编辑

Logstash 到 Logstash:输出到输入

编辑

Logstash 输出到 Logstash 输入是 Logstash 到 Logstash 通信的默认方法。

在您实施 Logstash 到 Logstash 之前,请查看这些注意事项

配置概述

编辑

要连接两个 Logstash 实例

  1. 配置下游(服务器)Logstash 以使用 Logstash 输入
  2. 配置上游(客户端)Logstash 以使用 Logstash 输出
  3. 保护 Logstash 输入和 Logstash 输出之间的通信

配置下游 Logstash 以使用 Logstash 输入

编辑

在下游(接收)Logstash 上配置 Logstash 输入以接收连接。最小配置需要此选项

  • port - 设置自定义端口。如果未提供,则默认值为 9800。
input {
    logstash {
        port => 9800
    }
}

配置上游 Logstash 以使用 Logstash 输出

编辑

为了在从一个 Logstash 向另一个 Logstash 发送数据时获得最佳性能,数据会进行批量处理和压缩。因此,上游 Logstash(发送 Logstash)只需要关注使用以下选项配置接收端点

  • hosts - 接收的一个或多个 Logstash 主机和端口对。如果未指定端口,将使用 9800。

Logstash 将批量事件负载均衡到所有配置的下游主机。由网络问题、反压或其他条件引起的任何故障将导致下游主机从负载均衡中隔离至少 60 秒。

output {
    logstash {
        hosts => ["10.0.0.123", "10.0.1.123:9800"]
    }
}

保护 Logstash 到 Logstash

编辑

务必保护 Logstash 实例之间的通信。使用 SSL/TLS 双向身份验证,以确保上游 Logstash 实例将加密数据发送到受信任的下游 Logstash 实例,反之亦然。

  1. 创建一个证书颁发机构 (CA) 以签署您计划在 Logstash 实例之间使用的证书。创建正确的 SSL/TLS 基础设施不在本文档的范围之内。

    我们建议您使用 elasticsearch-certutil 工具来生成您的证书。

  2. 配置下游(接收)Logstash 以使用 SSL。将这些设置添加到 Logstash 输入配置中

    • ssl_enabled:设置为 true 时,它会启用 Logstash 使用 SSL/TLS
    • ssl_key:指定 Logstash 用于与客户端进行身份验证的密钥。
    • ssl_certificate:指定 Logstash 用于与客户端进行身份验证的证书。
    • ssl_certificate_authorities:配置 Logstash 以信任由指定的 CA 签名的任何证书。
    • ssl_client_authentication:指定 Logstash 服务器是否根据 CA 验证客户端证书。

    例如

    input {
      logstash {
        ...
    
        ssl_enabled => true
        ssl_key => "server.pkcs8.key"
        ssl_certificate => "server.crt"
        ssl_certificate_authorities => "ca.crt"
        ssl_client_authentication => required
      }
    }
  3. 配置上游(发送)Logstash 以使用 SSL。将这些设置添加到 Logstash 输出配置中

    • ssl_key:指定 Logstash 客户端用于与 Logstash 服务器进行身份验证的密钥。
    • ssl_certificate:指定 Logstash 客户端用于向 Logstash 服务器进行身份验证的证书。
    • ssl_certificate_authorities:配置 Logstash 客户端以信任由指定的 CA 签名的任何证书。

    例如

    output {
      logstash {
        ...
    
        ssl_enabled => true
        ssl_key => "client.pkcs8.key"
        ssl_certificate => "client.crt"
        ssl_certificate_authorities => "ca.crt"
      }
    }
  4. 如果您需要额外的身份验证步骤,您还可以在两个 Logstash 实例中使用基本的用户/密码身份验证

    • username:设置用于身份验证的用户名。
    • password:设置用于身份验证的密码。

    例如,您需要在两个 Logstash 实例中添加以下内容

    ...
      logstash {
        ...
    
        username => "your-user"
        password => "your-secret"
      }
    ...