Logstash 到 Logstash:输出到输入
编辑Logstash 到 Logstash:输出到输入编辑
Logstash 输出到 Logstash 输入是 Logstash 到 Logstash 通信的默认方法。
在实现 Logstash 到 Logstash 之前,请查看这些 注意事项。
配置概述编辑
要连接两个 Logstash 实例
- 配置下游(服务器)Logstash 以使用 Logstash 输入
- 配置上游(客户端)Logstash 以使用 Logstash 输出
- 保护 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 实例,反之亦然。
-
创建证书颁发机构 (CA) 以签署您计划在 Logstash 实例之间使用的证书。创建正确的 SSL/TLS 基础设施超出了本文档的范围。
我们建议您使用 elasticsearch-certutil 工具生成您的证书。
-
配置下游(接收)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 } }
-
-
配置上游(发送)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" } }
-
-
如果您希望进行额外的身份验证步骤,您也可以在两个 Logstash 实例中都使用基本用户/密码身份验证
-
username
: 设置用于身份验证的用户名。 -
password
: 设置用于身份验证的密码。
例如,您需要将以下内容添加到两个 Logstash 实例中
... logstash { ... username => "your-user" password => "your-secret" } ...
-