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个事件。

原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/14949317.html