Logstash 到 Logstash:Lumberjack 输出到 Beats 输入

编辑

Logstash 到 Logstash:Lumberjack 输出到 Beats 输入

编辑

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

使用 Lumberjack 和 Beats 的 Logstash 到 Logstash 一直是我们标准的 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"
}

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