Logstash 到 Logstash:Lumberjack 输出到 Beats 输入

编辑

Logstash 到 Logstash:Lumberjack 输出到 Beats 输入

编辑

您可以通过将 Lumberjack 输出连接到 Beats 输入来设置两台 Logstash 机器之间的通信。

使用 Lumberjack 和 Beats 的 Logstash 到 Logstash 一直是我们的标准方法,对于更强大的用例,它仍然可能是最佳选择。

在您使用 Lumberjack 和 Beats 实现 Logstash 到 Logstash 之前,请查看这些注意事项

配置概述

编辑

使用 Lumberjack 协议连接两台 Logstash 机器。

  1. 生成受信任的 SSL 证书(Lumberjack 协议需要)。
  2. 将 SSL 证书复制到上游 Logstash 机器。
  3. 将 SSL 证书和密钥复制到下游 Logstash 机器。
  4. 设置上游 Logstash 机器以使用 Lumberjack 输出发送数据。
  5. 设置下游 Logstash 机器通过 Beats 输入监听传入的 Lumberjack 连接。
  6. 测试它。

生成自签名 SSL 证书和密钥

编辑

使用openssl req命令生成自签名证书和密钥。openssl req命令可在某些操作系统上使用。对于其他操作系统,您可能需要安装 openssl 命令行程序。

运行以下命令

openssl req -x509 -batch -nodes -newkey rsa:2048 -keyout lumberjack.key -out lumberjack.cert -subj /CN=localhost

其中

  • lumberjack.key是要创建的 SSL 密钥的名称
  • lumberjack.cert是要创建的 SSL 证书的名称
  • localhost是上游 Logstash 计算机的名称

此命令生成的输出类似于以下内容

Generating a 2048 bit RSA private key
.................................+++
....................+++
writing new private key to 'lumberjack.key'

复制 SSL 证书和密钥

编辑

将 SSL 证书复制到上游 Logstash 机器。

将 SSL 证书和密钥复制到下游 Logstash 机器。

启动上游 Logstash 实例

编辑

启动 Logstash 并生成测试事件

bin/logstash -e 'input { generator { count => 5 } } output { lumberjack { codec => json hosts => "mydownstreamhost" ssl_certificate => "lumberjack.cert" port => 5000 } }'

此示例命令使用提供的 SSL 证书将五个事件发送到 mydownstreamhost:5000。

启动下游 Logstash 实例

编辑

启动下游 Logstash 实例

bin/logstash -e 'input { beats { codec => json port => 5000 ssl => true ssl_certificate => "lumberjack.cert" ssl_key => "lumberjack.key"} }'

此示例命令将端口 5000 设置为侦听传入的 Beats 输入。

验证通信

编辑

监视下游 Logstash 机器上的传入事件。您应该会看到五个类似于以下内容的递增事件

{
  "@timestamp" => 2018-02-07T12:16:39.415Z,
  "sequence"   => 0
  "tags"       => [
    [0] "beats_input_codec_json_applied"
  ],
  "message"    => "Hello world",
  "@version"   => "1",
  "host"       => "ls1.semicomplete.com"
}

如果您看到所有五个事件,字段和格式一致,并且递增一个,则您的配置正确。