logstash-input-beats 6.7.1-java → 6.7.2-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/VERSION +1 -1
- data/lib/logstash/inputs/beats/message_listener.rb +7 -0
- data/lib/logstash-input-beats_jars.rb +1 -1
- data/lib/tasks/test.rake +15 -1
- data/spec/inputs/beats/message_listener_spec.rb +10 -0
- data/spec/integration/logstash_forwarder_spec.rb +108 -0
- data/vendor/jar-dependencies/org/logstash/beats/logstash-input-beats/{6.7.1/logstash-input-beats-6.7.1.jar → 6.7.2/logstash-input-beats-6.7.2.jar} +0 -0
- metadata +5 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: cfe0b8587cd80a4285628570381bf998f5765e4d779ee02173b18c90cea621cc
         | 
| 4 | 
            +
              data.tar.gz: 9f7b15e3627e6b6a594b9e2227185a7875b321d0a7062639d06332047480a59e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 7f4f396f596f515f4194083e8e590a83a84e4d6f1e222f7a12de1a3dcb7483c830654f806781ab1fa494568f562fbfccfed09f0a40780858fcec70bf4a46c1e0
         | 
| 7 | 
            +
              data.tar.gz: 1307df00e5d5edc2325020dbd8dd0f1902dcf4404412869f254a2b9303560267cebae254cf4852138533b8a6281ce599fb2d86312c2077792982338d9f471e3e
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,6 @@ | |
| 1 | 
            +
            ## 6.7.2
         | 
| 2 | 
            +
              - Restore accidentally removed Lumberjack event parse source lines [#486](https://github.com/logstash-plugins/logstash-input-beats/pull/486)
         | 
| 3 | 
            +
             | 
| 1 4 | 
             
            ## 6.7.1
         | 
| 2 5 | 
             
              - bump netty to 4.1.100 and jackson to 2.15.3 [#484](https://github.com/logstash-plugins/logstash-input-beats/pull/484)
         | 
| 3 6 |  | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            6.7. | 
| 1 | 
            +
            6.7.2
         | 
| @@ -9,6 +9,7 @@ module LogStash module Inputs class Beats | |
| 9 9 | 
             
                include org.logstash.beats.IMessageListener
         | 
| 10 10 |  | 
| 11 11 | 
             
                FILEBEAT_LOG_LINE_FIELD = "message".freeze
         | 
| 12 | 
            +
                LSF_LOG_LINE_FIELD = "line".freeze
         | 
| 12 13 |  | 
| 13 14 | 
             
                ConnectionState = Struct.new(:ctx, :codec, :ip_address)
         | 
| 14 15 |  | 
| @@ -182,6 +183,8 @@ module LogStash module Inputs class Beats | |
| 182 183 | 
             
                def extract_target_field(hash)
         | 
| 183 184 | 
             
                  if from_filebeat?(hash)
         | 
| 184 185 | 
             
                    hash.delete(FILEBEAT_LOG_LINE_FIELD).to_s
         | 
| 186 | 
            +
                  elsif from_logstash_forwarder?(hash)
         | 
| 187 | 
            +
                    hash.delete(LSF_LOG_LINE_FIELD).to_s
         | 
| 185 188 | 
             
                  end
         | 
| 186 189 | 
             
                end
         | 
| 187 190 |  | 
| @@ -189,6 +192,10 @@ module LogStash module Inputs class Beats | |
| 189 192 | 
             
                  !hash[FILEBEAT_LOG_LINE_FIELD].nil?
         | 
| 190 193 | 
             
                end
         | 
| 191 194 |  | 
| 195 | 
            +
                def from_logstash_forwarder?(hash)
         | 
| 196 | 
            +
                  !hash[LSF_LOG_LINE_FIELD].nil?
         | 
| 197 | 
            +
                end
         | 
| 198 | 
            +
             | 
| 192 199 | 
             
                def increment_connection_count
         | 
| 193 200 | 
             
                  current_connection_count = @connections_list.size
         | 
| 194 201 | 
             
                  @metric.gauge(:current_connections, current_connection_count)
         | 
| @@ -8,4 +8,4 @@ require_jar('io.netty', 'netty-transport', '4.1.100.Final') | |
| 8 8 | 
             
            require_jar('io.netty', 'netty-handler', '4.1.100.Final')
         | 
| 9 9 | 
             
            require_jar('io.netty', 'netty-transport-native-unix-common', '4.1.100.Final')
         | 
| 10 10 | 
             
            require_jar('org.javassist', 'javassist', '3.24.0-GA')
         | 
| 11 | 
            -
            require_jar('org.logstash.beats', 'logstash-input-beats', '6.7. | 
| 11 | 
            +
            require_jar('org.logstash.beats', 'logstash-input-beats', '6.7.2')
         | 
    
        data/lib/tasks/test.rake
    CHANGED
    
    | @@ -9,6 +9,8 @@ elsif OS_PLATFORM == "darwin" | |
| 9 9 | 
             
              FILEBEAT_URL = "https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.6.0-darwin-x86_64.tar.gz"
         | 
| 10 10 | 
             
            end
         | 
| 11 11 |  | 
| 12 | 
            +
            LSF_URL = "https://download.elastic.co/logstash-forwarder/binaries/logstash-forwarder_#{OS_PLATFORM}_amd64"
         | 
| 13 | 
            +
             | 
| 12 14 | 
             
            require "fileutils"
         | 
| 13 15 | 
             
            @files=[]
         | 
| 14 16 |  | 
| @@ -25,9 +27,21 @@ namespace :test do | |
| 25 27 | 
             
              namespace :integration do
         | 
| 26 28 | 
             
                task :setup do
         | 
| 27 29 | 
             
                  Rake::Task["test:integration:setup:filebeat"].invoke
         | 
| 30 | 
            +
                  Rake::Task["test:integration:setup:lsf"].invoke
         | 
| 28 31 | 
             
                end
         | 
| 29 32 |  | 
| 30 33 | 
             
                namespace :setup do
         | 
| 34 | 
            +
                  desc "Download latest stable version of Logstash-forwarder"
         | 
| 35 | 
            +
                  task :lsf do
         | 
| 36 | 
            +
                    destination = File.join(VENDOR_PATH, "logstash-forwarder")
         | 
| 37 | 
            +
                    FileUtils.rm_rf(destination)
         | 
| 38 | 
            +
                    FileUtils.mkdir_p(destination)
         | 
| 39 | 
            +
                    download_destination = File.join(destination, "logstash-forwarder")
         | 
| 40 | 
            +
                    puts "Logstash-forwarder: downloading from #{LSF_URL} to #{download_destination}"
         | 
| 41 | 
            +
                    download(LSF_URL, download_destination)
         | 
| 42 | 
            +
                    File.chmod(0755, download_destination)
         | 
| 43 | 
            +
                  end
         | 
| 44 | 
            +
             | 
| 31 45 | 
             
                  desc "Download nigthly filebeat for integration testing"
         | 
| 32 46 | 
             
                  task :filebeat do
         | 
| 33 47 | 
             
                    FileUtils.mkdir_p(VENDOR_PATH)
         | 
| @@ -46,7 +60,7 @@ namespace :test do | |
| 46 60 | 
             
            end
         | 
| 47 61 |  | 
| 48 62 | 
             
            # Uncompress all the file from the archive this only work with 
         | 
| 49 | 
            -
            # one level directory structure and filebeat packaging.
         | 
| 63 | 
            +
            # one level directory structure and its fine for LSF and filebeat packaging.
         | 
| 50 64 | 
             
            def untar_all(file, destination)
         | 
| 51 65 | 
             
              untar(file) do |entry| 
         | 
| 52 66 | 
             
                out = entry.full_name.split("/").last
         | 
| @@ -199,6 +199,16 @@ describe LogStash::Inputs::Beats::MessageListener do | |
| 199 199 | 
             
                  end
         | 
| 200 200 | 
             
                end
         | 
| 201 201 |  | 
| 202 | 
            +
                context "when the message is from LSF" do
         | 
| 203 | 
            +
                  let(:message) { MockMessage.new("abc", { "line" => "hello world", '@metadata' => {} } )}
         | 
| 204 | 
            +
             | 
| 205 | 
            +
                  it "extract the event" do
         | 
| 206 | 
            +
                    subject.onNewMessage(ctx, message)
         | 
| 207 | 
            +
                    event = queue.pop
         | 
| 208 | 
            +
                    expect(event.get("message")).to eq("hello world")
         | 
| 209 | 
            +
                  end
         | 
| 210 | 
            +
                end
         | 
| 211 | 
            +
             | 
| 202 212 | 
             
                it_behaves_like "when the message is from any libbeat", :disabled, "[@metadata][ip_address]"
         | 
| 203 213 | 
             
                it_behaves_like "when the message is from any libbeat", :v1, "[@metadata][input][beats][host][ip]"
         | 
| 204 214 | 
             
                it_behaves_like "when the message is from any libbeat", :v8, "[@metadata][input][beats][host][ip]"
         | 
| @@ -0,0 +1,108 @@ | |
| 1 | 
            +
            # encoding: utf-8
         | 
| 2 | 
            +
            require "logstash/inputs/beats"
         | 
| 3 | 
            +
            require "logstash/json"
         | 
| 4 | 
            +
            require "fileutils"
         | 
| 5 | 
            +
            require_relative "../support/flores_extensions"
         | 
| 6 | 
            +
            require_relative "../support/file_helpers"
         | 
| 7 | 
            +
            require_relative "../support/integration_shared_context"
         | 
| 8 | 
            +
            require_relative "../support/client_process_helpers"
         | 
| 9 | 
            +
            require "spec_helper"
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            LSF_BINARY = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "vendor", "logstash-forwarder", "logstash-forwarder"))
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            describe "Logstash-Forwarder", :integration => true do
         | 
| 14 | 
            +
              include ClientProcessHelpers
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              before :all do
         | 
| 17 | 
            +
                unless File.exist?(LSF_BINARY)
         | 
| 18 | 
            +
                  raise "Cannot find `logstash-forwarder` binary in `vendor/logstash-forwarder` Did you run `bundle exec rake test:integration:setup` before running the integration suite?"
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              include FileHelpers
         | 
| 23 | 
            +
              include_context "beats configuration"
         | 
| 24 | 
            +
             | 
| 25 | 
            +
              let(:client_wait_time) { 5 }
         | 
| 26 | 
            +
             | 
| 27 | 
            +
              # Filebeat related variables
         | 
| 28 | 
            +
              let(:cmd) { [lsf_exec, "-config", lsf_config_path] }
         | 
| 29 | 
            +
             | 
| 30 | 
            +
              let(:lsf_exec) { LSF_BINARY }
         | 
| 31 | 
            +
              let(:registry_file) { File.expand_path(File.join(File.dirname(__FILE__), "..", "..", ".logstash-forwarder")) }
         | 
| 32 | 
            +
              let_tmp_file(:lsf_config_path) { lsf_config }
         | 
| 33 | 
            +
              let(:log_file) { f = Stud::Temporary.file; f.close; f.path }
         | 
| 34 | 
            +
              let(:lsf_config) do
         | 
| 35 | 
            +
             <<-CONFIG
         | 
| 36 | 
            +
            {
         | 
| 37 | 
            +
              "network": {
         | 
| 38 | 
            +
                "servers": [ "#{host}:#{port}" ],
         | 
| 39 | 
            +
                "ssl ca": "#{certificate_authorities}"
         | 
| 40 | 
            +
              },
         | 
| 41 | 
            +
              "files": [
         | 
| 42 | 
            +
                { "paths": [ "#{log_file}" ] }
         | 
| 43 | 
            +
              ]
         | 
| 44 | 
            +
            }
         | 
| 45 | 
            +
             CONFIG
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
              #
         | 
| 48 | 
            +
             | 
| 49 | 
            +
              before :each do
         | 
| 50 | 
            +
                FileUtils.rm_rf(registry_file) # ensure clean state between runs
         | 
| 51 | 
            +
                start_client
         | 
| 52 | 
            +
                sleep(1)
         | 
| 53 | 
            +
                # let LSF start and than write the logs
         | 
| 54 | 
            +
                File.open(log_file, "a") do |f|
         | 
| 55 | 
            +
                  f.write(events.join("\n") + "\n")
         | 
| 56 | 
            +
                end
         | 
| 57 | 
            +
                sleep(1) # give some time to the clients to pick up the changes
         | 
| 58 | 
            +
              end
         | 
| 59 | 
            +
             | 
| 60 | 
            +
              after :each do
         | 
| 61 | 
            +
                stop_client
         | 
| 62 | 
            +
              end
         | 
| 63 | 
            +
             | 
| 64 | 
            +
              xcontext "Plain TCP" do
         | 
| 65 | 
            +
                include ClientProcessHelpers
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                let(:certificate_authorities) { "" }
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                it "should not send any events" do
         | 
| 70 | 
            +
                  expect(queue.size).to eq(0), @execution_output
         | 
| 71 | 
            +
                end
         | 
| 72 | 
            +
              end
         | 
| 73 | 
            +
             | 
| 74 | 
            +
              context "TLS" do
         | 
| 75 | 
            +
                context "Server Verification" do
         | 
| 76 | 
            +
                  let(:input_config) do
         | 
| 77 | 
            +
                    super().merge({
         | 
| 78 | 
            +
                      "ssl_enabled" => true,
         | 
| 79 | 
            +
                      "ssl_certificate" => certificate_file,
         | 
| 80 | 
            +
                      "ssl_key" => certificate_key_file,
         | 
| 81 | 
            +
                    })
         | 
| 82 | 
            +
                  end
         | 
| 83 | 
            +
             | 
| 84 | 
            +
                  let(:certificate_data) { Flores::PKI.generate }
         | 
| 85 | 
            +
                  let_tmp_file(:certificate_file) { certificate_data.first }
         | 
| 86 | 
            +
                  let_tmp_file(:certificate_key_file) { convert_to_pkcs8(certificate_data.last) }
         | 
| 87 | 
            +
                  let(:certificate_authorities) { certificate_file }
         | 
| 88 | 
            +
             | 
| 89 | 
            +
                  context "self signed certificate" do
         | 
| 90 | 
            +
                    include_examples "send events"
         | 
| 91 | 
            +
                  end
         | 
| 92 | 
            +
             | 
| 93 | 
            +
                  context "with large batches" do
         | 
| 94 | 
            +
                    let(:number_of_events) { 10_000 }
         | 
| 95 | 
            +
                    include_examples "send events"
         | 
| 96 | 
            +
                  end
         | 
| 97 | 
            +
             | 
| 98 | 
            +
                  context "invalid CA on the client" do
         | 
| 99 | 
            +
                    let(:invalid_data) { Flores::PKI.generate }
         | 
| 100 | 
            +
                    let(:certificate_authorities) { f = Stud::Temporary.file; f.close; f.path }
         | 
| 101 | 
            +
             | 
| 102 | 
            +
                    it "should not send any events" do
         | 
| 103 | 
            +
                      expect(queue.size).to eq(0), @execution_output
         | 
| 104 | 
            +
                    end
         | 
| 105 | 
            +
                  end
         | 
| 106 | 
            +
                end
         | 
| 107 | 
            +
              end
         | 
| 108 | 
            +
            end
         | 
| Binary file | 
    
        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: 6.7. | 
| 4 | 
            +
              version: 6.7.2
         | 
| 5 5 | 
             
            platform: java
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Elastic
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2023- | 
| 11 | 
            +
            date: 2023-11-20 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -311,6 +311,7 @@ files: | |
| 311 311 | 
             
            - spec/inputs/beats/tls_spec.rb
         | 
| 312 312 | 
             
            - spec/inputs/beats_spec.rb
         | 
| 313 313 | 
             
            - spec/integration/filebeat_spec.rb
         | 
| 314 | 
            +
            - spec/integration/logstash_forwarder_spec.rb
         | 
| 314 315 | 
             
            - spec/spec_helper.rb
         | 
| 315 316 | 
             
            - spec/support/client_process_helpers.rb
         | 
| 316 317 | 
             
            - spec/support/file_helpers.rb
         | 
| @@ -326,7 +327,7 @@ files: | |
| 326 327 | 
             
            - vendor/jar-dependencies/io/netty/netty-transport-native-unix-common/4.1.100.Final/netty-transport-native-unix-common-4.1.100.Final.jar
         | 
| 327 328 | 
             
            - vendor/jar-dependencies/io/netty/netty-transport/4.1.100.Final/netty-transport-4.1.100.Final.jar
         | 
| 328 329 | 
             
            - vendor/jar-dependencies/org/javassist/javassist/3.24.0-GA/javassist-3.24.0-GA.jar
         | 
| 329 | 
            -
            - vendor/jar-dependencies/org/logstash/beats/logstash-input-beats/6.7. | 
| 330 | 
            +
            - vendor/jar-dependencies/org/logstash/beats/logstash-input-beats/6.7.2/logstash-input-beats-6.7.2.jar
         | 
| 330 331 | 
             
            homepage: http://www.elastic.co/guide/en/logstash/current/index.html
         | 
| 331 332 | 
             
            licenses:
         | 
| 332 333 | 
             
            - Apache License (2.0)
         | 
| @@ -362,6 +363,7 @@ test_files: | |
| 362 363 | 
             
            - spec/inputs/beats/tls_spec.rb
         | 
| 363 364 | 
             
            - spec/inputs/beats_spec.rb
         | 
| 364 365 | 
             
            - spec/integration/filebeat_spec.rb
         | 
| 366 | 
            +
            - spec/integration/logstash_forwarder_spec.rb
         | 
| 365 367 | 
             
            - spec/spec_helper.rb
         | 
| 366 368 | 
             
            - spec/support/client_process_helpers.rb
         | 
| 367 369 | 
             
            - spec/support/file_helpers.rb
         |