Logstash:Logstash-to-Logstash 通信
文章转载自:https://elasticstack.blog.csdn.net/article/details/117253545
在有些时候,我们甚至可以建立 Logstash-to-Logstash 之间的通信。这样可以使得我们让不同的 Logstash 处理不同的 pipeline,从而进行分工合作。你可以通过将 Lumberjack 输出连接到 Beats 输入来设置两台 Logstash 计算机之间的通信。 例如,如果数据路径跨越网络或防火墙边界,则可能需要此配置。 如果你对 Logstash 到 Logstash 的通信没有迫切的需求,请不要实施它。
概述编辑配置
使用 Lumberjack 协议连接两台 Logstash 计算机。
- 生成受信任的 SSL 证书(Lumberjack 协议要求)。
- 将 SSL 证书复制到上游 Logstash 计算机。
- 将 SSL 证书和密钥复制到下游 Logstash 计算机。
- 将上游 Logstash 机器设置为使用 Lumberjack 输出发送数据。
- 将下游 Logstash 机器设置为通过 Beats 输入侦听传入的 Lumberjack 连接。
生成自签名 SS L证书并进行密钥编辑
使用 openssl req 命令生成自签名证书和密钥。 openssl req 命令在某些操作系统中可用。你可能需要为其他操作系统安装 openssl 命令行程序。
在 Ubuntu OS 上运行以下命令:
openssl req -x509 -batch -nodes -newkey rsa:2048 -keyout lumberjack.key -out lumberjack.cert -subj /CN=192.168.0.4 # 192.168.0.4是下游logstash主机的ip
如果上面的命令没有任何错误的话,我们会看到如下的结果:
$ openssl req -x509 -batch -nodes -newkey rsa:2048 -keyout lumberjack.key -out lumberjack.cert -subj /CN=192.168.0.4
Generating a RSA private key
...................+++++
............+++++
writing new private key to 'lumberjack.key'
可以在当前的目录下看到两个生成的文件:lumberjack.cert 及 lumberjack.key。其中 lumberjack.cert 将被用于 Upstream 的 Logstash 的运行中,以确保安全的数据传输。
拷贝 SSL 证书及 key 文件
将 SSL 证书(lumberjack.cert)复制到上游 Logstash 计算机中。我们将文件置于 Logstash 的安装目录中。将 SSL 证书和密钥(lumberjack.cert 及 lumberjack.key)复制到下游 Logstash 计算机中。同样地,我们将文件置于 Logstash 的安装目录
中。
启动 downstream Logstash 实例
bin/logstash -e 'input { beats { codec => json port => 5000 ssl => true ssl_certificate => "lumberjack.cert" ssl_key => "lumberjack.key"} }'
input {
beats {
codec => json
port => 5000
ssl => true
ssl_certificate => "lumberjack.cert"
ssl_key => "lumberjack.key"
}
}
启动 upstream Logstash 实例
bin/logstash -e 'input { generator { count => 5 } } output { lumberjack { codec => json hosts => "192.168.0.4" ssl_certificate => "lumberjack.cert" port => 5000 } }'
input {
generator {
count => 5
}
}
output {
lumberjack {
codec => json
hosts => "192.168.0.4" # 下游logstash主机的ip
ssl_certificate => "lumberjack.cert"
port => 5000
}
}
使用了 generator,并使用了 count = 5,也就是说生成5个事件。