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"
}

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