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"
      }
    ...