logstash-input-beats 3.1.0-java → 3.1.1-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3f99fa6cabf279fddd07fb11aa025fbd6d57b303
4
- data.tar.gz: ecf36cdb6ac73a282e6b2f3f7410e1c798efde10
3
+ metadata.gz: 768ccce03701a2fe20bcdefafe058fb754cfa00a
4
+ data.tar.gz: e28accad116b6b3e4feed499963e335cb7ce156c
5
5
  SHA512:
6
- metadata.gz: 7c0bfd154e6db74356c9473cb6996744724539758fbd61baa326effd5435a364479c137c413daeceee5595d3f358290660293d5d34b2862c729e1905bbf071cb
7
- data.tar.gz: 91436a6a28b8de8594aca1d263c879bc8e06682609fe3f0096a9be33bd598a891b147b5c10bbc18edc95249b13d4c17030387807873deb7eec2cf18a942b3c6f
6
+ metadata.gz: b3323df3ca381add52492e2162950cad4179f40b06d96d8eaceac395e0dfacb2011b50784e1d705241ad047f2d89086030065093623728fb4a365d364ea8da51
7
+ data.tar.gz: 79b695fa6f4f9c4316df81b7cbbdea25435358917e6eb32a53ed097a138dcd19bed249ae44b40738e226c4fdcb9a95b7886dc4463caabe87fa53833bbaaed2fa
@@ -1,3 +1,13 @@
1
+ ## 3.1.1
2
+ - Remove the SSL Converter, Private Key must be in the PKCS8 format, which is the default of any newer OpenSSL library
3
+ - Replace FileInputStream with File reference to let netty handle correctly the certificates
4
+ - Tests now uses OpenSSL binary to convert PKCS7 Private generated from ruby to PKCS8
5
+ - Remove dependency on bouncycastle
6
+ - Fix an issue when the input could hang forever when stopping Logstash
7
+ - [Doc changes] Add Logstash config example and clarify use of the `type` config option
8
+
9
+
10
+
1
11
  ## 3.1.0
2
12
  - Fix a NullPointer Exception https://github.com/elastic/logstash/issues/5756
3
13
  - Log4j ERROR will now be propagated upstream, IE: InvalidCertificate OR InvalidFrameType.
@@ -62,7 +72,7 @@
62
72
 
63
73
  ## 2.2.4
64
74
 
65
- - Fix bug where using `ssl_key_passphrase` wouldn't work
75
+ - Fix bug where using `ssl_key_passphrase` wouldn't work
66
76
 
67
77
  ## 2.2.2
68
78
 
@@ -93,7 +103,7 @@
93
103
 
94
104
  ## 2.1.1
95
105
 
96
- - Release a new version of the gem that doesn't included any other gems, 2.1.0 is yanked from rubygems
106
+ - Release a new version of the gem that doesn't included any other gems, 2.1.0 is yanked from rubygems
97
107
 
98
108
  ## 2.1.0
99
109
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.1.0
1
+ 3.1.1
@@ -3,8 +3,6 @@
3
3
  require 'jar_dependencies'
4
4
  require_jar('org.apache.logging.log4j', 'log4j-1.2-api', '2.6.1')
5
5
  require_jar('org.apache.logging.log4j', 'log4j-slf4j-impl', '2.6.1')
6
- require_jar('org.bouncycastle', 'bcprov-jdk15on', '1.54')
7
- require_jar('org.bouncycastle', 'bcpkix-jdk15on', '1.54')
8
6
  require_jar('io.netty', 'netty-all', '4.1.3.Final')
9
7
  require_jar('io.netty', 'netty-tcnative-boringssl-static', '1.1.33.Fork17')
10
8
  require_jar('org.apache.logging.log4j', 'log4j-api', '2.6.1')
@@ -14,4 +12,4 @@ require_jar('com.fasterxml.jackson.core', 'jackson-core', '2.7.5')
14
12
  require_jar('com.fasterxml.jackson.core', 'jackson-annotations', '2.7.5')
15
13
  require_jar('com.fasterxml.jackson.core', 'jackson-databind', '2.7.5')
16
14
  require_jar('com.fasterxml.jackson.module', 'jackson-module-afterburner', '2.7.5')
17
- require_jar('org.logstash.beats', 'logstash-input-beats', '3.1.0')
15
+ require_jar('org.logstash.beats', 'logstash-input-beats', '3.1.1')
@@ -10,12 +10,37 @@ require "logstash/logging" rescue nil # removed in logstash 5
10
10
 
11
11
  import "org.logstash.beats.Server"
12
12
  import "org.logstash.netty.SslSimpleBuilder"
13
- import "org.logstash.netty.PrivateKeyConverter"
14
13
  import "java.io.FileInputStream"
15
14
 
16
15
  # This input plugin enables Logstash to receive events from the
17
16
  # https://www.elastic.co/products/beats[Elastic Beats] framework.
18
17
  #
18
+ # The following example shows how to configure Logstash to listen on port
19
+ # 5044 for incoming Beats connections and to index into Elasticsearch:
20
+ #
21
+ # [source,ruby]
22
+ # ------------------------------------------------------------------------------
23
+ # input {
24
+ # beats {
25
+ # port => 5044
26
+ # }
27
+ # }
28
+ #
29
+ # output {
30
+ # elasticsearch {
31
+ # hosts => "localhost:9200"
32
+ # manage_template => false
33
+ # index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
34
+ # document_type => "%{[@metadata][type]}"
35
+ # }
36
+ # }
37
+ # ------------------------------------------------------------------------------
38
+ #
39
+ # NOTE: The Beats shipper automatically sets the `type` field on the event.
40
+ # You cannot override this setting in the Logstash config. If you specify
41
+ # a setting for the <<plugins-inputs-beats-type,`type`>> config option in
42
+ # Logstash, it is ignored.
43
+ #
19
44
  class LogStash::Codecs::Base
20
45
  # This monkey patch add callback based
21
46
  # flow to the codec until its shipped with core.
@@ -143,8 +168,7 @@ class LogStash::Inputs::Beats < LogStash::Inputs::Base
143
168
  def create_server
144
169
  server = org.logstash.beats.Server.new(@port)
145
170
  if @ssl
146
- private_key_converter = org.logstash.netty.PrivateKeyConverter.new(ssl_key, ssl_key_passphrase)
147
- ssl_builder = org.logstash.netty.SslSimpleBuilder.new(FileInputStream.new(ssl_certificate), private_key_converter.convert(), ssl_key_passphrase)
171
+ ssl_builder = org.logstash.netty.SslSimpleBuilder.new(ssl_certificate, ssl_key, ssl_key_passphrase)
148
172
  .setProtocols(convert_protocols)
149
173
  .setCipherSuites(normalized_ciphers)
150
174
 
@@ -15,6 +15,7 @@ require_relative "../support/client_process_helpers"
15
15
 
16
16
  FILEBEAT_BINARY = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "vendor", "filebeat", "filebeat"))
17
17
 
18
+
18
19
  describe "Filebeat", :integration => true do
19
20
  include ClientProcessHelpers
20
21
  include FileHelpers
@@ -34,13 +35,13 @@ describe "Filebeat", :integration => true do
34
35
 
35
36
  let_empty_tmp_file(:registry_file)
36
37
  let(:filebeat_config) do
37
- {
38
- "filebeat" => {
38
+ {
39
+ "filebeat" => {
39
40
  "prospectors" => [{ "paths" => [log_file], "input_type" => "log" }],
40
41
  "registry_file" => registry_file,
41
42
  "scan_frequency" => "1s"
42
43
  },
43
- "output" => {
44
+ "output" => {
44
45
  "logstash" => { "hosts" => ["#{host}:#{port}"] },
45
46
  "logging" => { "level" => "debug" }
46
47
  }
@@ -99,7 +100,8 @@ describe "Filebeat", :integration => true do
99
100
 
100
101
  let(:certificate_authorities) { [certificate_file] }
101
102
  let(:certificate_data) { Flores::PKI.generate }
102
- let_tmp_file(:certificate_key_file) { certificate_data.last }
103
+
104
+ let_tmp_file(:certificate_key_file) { convert_to_pkcs8(certificate_data.last) }
103
105
  let_tmp_file(:certificate_file) { certificate_data.first }
104
106
 
105
107
  context "self signed certificate" do
@@ -155,10 +157,10 @@ describe "Filebeat", :integration => true do
155
157
  context "with a self signed certificate" do
156
158
  let(:certificate_authorities) { [certificate_file] }
157
159
  let(:certificate_data) { Flores::PKI.generate }
158
- let_tmp_file(:certificate_key_file) { certificate_data.last }
160
+ let_tmp_file(:certificate_key_file) { convert_to_pkcs8(certificate_data.last) }
159
161
  let_tmp_file(:certificate_file) { certificate_data.first }
160
162
  let_tmp_file(:server_certificate_file) { certificate_data.first }
161
- let_tmp_file(:server_certificate_key_file) { certificate_data.last }
163
+ let_tmp_file(:server_certificate_key_file) { convert_to_pkcs8(certificate_data.last) }
162
164
 
163
165
  include_examples "send events"
164
166
  end
@@ -167,7 +169,7 @@ describe "Filebeat", :integration => true do
167
169
  include_context "Root CA"
168
170
 
169
171
  let_tmp_file(:server_certificate_file) { server_certificate_data.first }
170
- let_tmp_file(:server_certificate_key_file) { server_certificate_data.last }
172
+ let_tmp_file(:server_certificate_key_file) { convert_to_pkcs8(server_certificate_data.last) }
171
173
 
172
174
  context "directly signed client certificate" do
173
175
  let(:certificate_authorities) { [root_ca_certificate_file] }
@@ -197,7 +199,7 @@ describe "Filebeat", :integration => true do
197
199
 
198
200
  let(:secondary_client_certificate_data) { Flores::PKI.create_client_certicate("CN=localhost", secondary_ca_certificate, secondary_ca_key) }
199
201
  let_tmp_file(:secondary_client_certificate_file) { secondary_client_certificate_data.first }
200
- let_tmp_file(:secondary_client_certificate_key_file) { secondary_client_certificate_data.last }
202
+ let_tmp_file(:secondary_client_certificate_key_file) { convert_to_pkcs8(secondary_client_certificate_data.last) }
201
203
  let(:certificate_authorities) { [root_ca_certificate_file, secondary_ca_certificate_file] }
202
204
  let(:certificate_data) { Flores::PKI.create_client_certicate("CN=localhost", root_ca_certificate, root_ca_key) }
203
205
 
@@ -84,7 +84,7 @@ describe "Logstash-Forwarder", :integration => true do
84
84
 
85
85
  let(:certificate_data) { Flores::PKI.generate }
86
86
  let_tmp_file(:certificate_file) { certificate_data.first }
87
- let_tmp_file(:certificate_key_file) { certificate_data.last }
87
+ let_tmp_file(:certificate_key_file) { convert_to_pkcs8(certificate_data.last) }
88
88
  let(:certificate_authorities) { certificate_file }
89
89
 
90
90
  context "self signed certificate" do
@@ -1,10 +1,11 @@
1
1
  # encoding: utf-8
2
- require 'rspec'
3
- require 'rspec/mocks'
4
- require 'rspec/wait'
2
+ require "rspec"
3
+ require "rspec/mocks"
4
+ require "rspec/wait"
5
5
  require "logstash/devutils/rspec/spec_helper"
6
6
  require "logstash/codecs/plain"
7
7
  require_relative "support/logstash_test"
8
+ require_relative "support/helpers"
8
9
 
9
10
  $: << File.realpath(File.join(File.dirname(__FILE__), "..", "lib"))
10
11
 
@@ -0,0 +1,16 @@
1
+ # encoding: utf-8
2
+ require "open3"
3
+ OPEN_SSL_TOPK8 = "openssl pkcs8 -nocrypt -topk8 -inform PEM -outform PEM"
4
+
5
+ # Netty only accepts PKC8 format for the private key, which in the real world is fine
6
+ # because any newer version of OpenSSL with use that format by default.
7
+ #
8
+ # But in Ruby or Jruby-OpenSSL, the private key will be generates in PKCS7, which netty doesn't support.
9
+ # Converting the format is a bit of hassle to do in code so In this case its just easier to use the `openssl` binary to do the work.
10
+ #
11
+ #
12
+ def convert_to_pkcs8(key)
13
+ out, e, s = Open3.capture3(OPEN_SSL_TOPK8, :stdin_data => key.to_s)
14
+ raise e if e != ""
15
+ out
16
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-beats
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.1.1
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-24 00:00:00.000000000 Z
11
+ date: 2016-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -256,6 +256,7 @@ files:
256
256
  - spec/support/client_process_helpers.rb
257
257
  - spec/support/file_helpers.rb
258
258
  - spec/support/flores_extensions.rb
259
+ - spec/support/helpers.rb
259
260
  - spec/support/integration_shared_context.rb
260
261
  - spec/support/logstash_test.rb
261
262
  - spec/support/shared_examples.rb
@@ -269,10 +270,8 @@ files:
269
270
  - vendor/jar-dependencies/org/apache/logging/log4j/log4j-api/2.6.1/log4j-api-2.6.1.jar
270
271
  - vendor/jar-dependencies/org/apache/logging/log4j/log4j-core/2.6.1/log4j-core-2.6.1.jar
271
272
  - vendor/jar-dependencies/org/apache/logging/log4j/log4j-slf4j-impl/2.6.1/log4j-slf4j-impl-2.6.1.jar
272
- - vendor/jar-dependencies/org/bouncycastle/bcpkix-jdk15on/1.54/bcpkix-jdk15on-1.54.jar
273
- - vendor/jar-dependencies/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54.jar
274
273
  - vendor/jar-dependencies/org/javassist/javassist/3.20.0-GA/javassist-3.20.0-GA.jar
275
- - vendor/jar-dependencies/org/logstash/beats/logstash-input-beats/3.1.0/logstash-input-beats-3.1.0.jar
274
+ - vendor/jar-dependencies/org/logstash/beats/logstash-input-beats/3.1.1/logstash-input-beats-3.1.1.jar
276
275
  homepage: http://www.elastic.co/guide/en/logstash/current/index.html
277
276
  licenses:
278
277
  - Apache License (2.0)
@@ -314,6 +313,7 @@ test_files:
314
313
  - spec/support/client_process_helpers.rb
315
314
  - spec/support/file_helpers.rb
316
315
  - spec/support/flores_extensions.rb
316
+ - spec/support/helpers.rb
317
317
  - spec/support/integration_shared_context.rb
318
318
  - spec/support/logstash_test.rb
319
319
  - spec/support/shared_examples.rb