logstash-filter-elasticsearch 3.9.3 → 3.9.4
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 +7 -0
- data/lib/logstash/filters/elasticsearch.rb +7 -11
- data/lib/logstash/filters/elasticsearch/client.rb +3 -3
- data/lib/logstash/filters/elasticsearch/patches/_elasticsearch_transport_http_manticore.rb +33 -0
- data/logstash-filter-elasticsearch.gemspec +2 -2
- data/spec/es_helper.rb +6 -2
- data/spec/filters/elasticsearch_spec.rb +36 -16
- data/spec/filters/integration/elasticsearch_spec.rb +34 -17
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3264c43657eea13f942de4c005f0996dfc30e845cf7643fe374ec6918d400d83
|
4
|
+
data.tar.gz: bfdb2268299b87ed893d778411c450c1758977cd2e2e3c051e0679aa9467fd37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 759cb7f87175ac2894adc715e108399fd6d27af1cae91fdf91bd05aa5312678e9963fde3c36a25519b6eac3b53a326ed203583a1f22a94fdd66239014ddf2433
|
7
|
+
data.tar.gz: 5dda79137366f9d40d1fddf21b6eb92da6377187eb470d3e725b1cfb338bd1e2f2296263e67fec7f10bf7b9a4d611bcca243d393235727ffef200264da5ef4c9
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## 3.9.4
|
2
|
+
- Fix: a regression (in LS 7.14.0) where due the elasticsearch client update (from 5.0.5 to 7.5.0) the `Authorization`
|
3
|
+
header isn't passed, this leads to the plugin not being able to leverage `user`/`password` credentials set by the user.
|
4
|
+
[#148](https://github.com/logstash-plugins/logstash-filter-elasticsearch/pull/148)
|
5
|
+
- Fix: default setting for `hosts` not working (since 3.7.0) GH-147
|
6
|
+
- Fix: mutating @hosts variable which leads to issues with multiple worker threads GH-129
|
7
|
+
|
1
8
|
## 3.9.3
|
2
9
|
- [DOC] Update links to use shared attributes [#144](https://github.com/logstash-plugins/logstash-filter-elasticsearch/pull/144)
|
3
10
|
|
@@ -1,19 +1,15 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require "logstash/filters/base"
|
3
3
|
require "logstash/namespace"
|
4
|
-
require_relative "elasticsearch/client"
|
5
4
|
require "logstash/json"
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
require_relative "elasticsearch/client"
|
6
|
+
require_relative "elasticsearch/patches/_elasticsearch_transport_http_manticore"
|
9
7
|
|
10
8
|
class LogStash::Filters::Elasticsearch < LogStash::Filters::Base
|
11
9
|
config_name "elasticsearch"
|
12
10
|
|
13
|
-
DEFAULT_HOST = ::LogStash::Util::SafeURI.new("//localhost:9200")
|
14
|
-
|
15
11
|
# List of elasticsearch hosts to use for querying.
|
16
|
-
config :hosts, :validate => :array, :default => [
|
12
|
+
config :hosts, :validate => :array, :default => [ 'localhost:9200' ]
|
17
13
|
|
18
14
|
# Comma-delimited list of index names to search; use `_all` or empty string to perform the operation on all indices.
|
19
15
|
# Field substitution (e.g. `index-name-%{date_field}`) is available
|
@@ -112,7 +108,7 @@ class LogStash::Filters::Elasticsearch < LogStash::Filters::Base
|
|
112
108
|
fill_user_password_from_cloud_auth
|
113
109
|
fill_hosts_from_cloud_id
|
114
110
|
|
115
|
-
@hosts = Array(@hosts).map { |host| host.to_s } #
|
111
|
+
@hosts = Array(@hosts).map { |host| host.to_s } # potential SafeURI#to_s
|
116
112
|
|
117
113
|
test_connection!
|
118
114
|
end # def register
|
@@ -120,7 +116,7 @@ class LogStash::Filters::Elasticsearch < LogStash::Filters::Base
|
|
120
116
|
def filter(event)
|
121
117
|
matched = false
|
122
118
|
begin
|
123
|
-
params = {:index => event.sprintf(@index) }
|
119
|
+
params = { :index => event.sprintf(@index) }
|
124
120
|
|
125
121
|
if @query_dsl
|
126
122
|
query = LogStash::Json.load(event.sprintf(@query_dsl))
|
@@ -237,8 +233,7 @@ class LogStash::Filters::Elasticsearch < LogStash::Filters::Base
|
|
237
233
|
end
|
238
234
|
|
239
235
|
def hosts_default?(hosts)
|
240
|
-
|
241
|
-
hosts.is_a?(Array) && hosts.size == 1 && hosts.first.equal?(DEFAULT_HOST)
|
236
|
+
hosts.is_a?(Array) && hosts.size == 1 && !original_params.key?('hosts')
|
242
237
|
end
|
243
238
|
|
244
239
|
def validate_authentication
|
@@ -273,6 +268,7 @@ class LogStash::Filters::Elasticsearch < LogStash::Filters::Base
|
|
273
268
|
end
|
274
269
|
|
275
270
|
def parse_host_uri_from_cloud_id(cloud_id)
|
271
|
+
require 'logstash/util/safe_uri'
|
276
272
|
begin # might not be available on older LS
|
277
273
|
require 'logstash/util/cloud_setting_id'
|
278
274
|
rescue LoadError
|
@@ -24,7 +24,7 @@ module LogStash
|
|
24
24
|
logger.warn "Supplied proxy setting (proxy => '') has no effect" if @proxy.eql?('')
|
25
25
|
transport_options[:proxy] = proxy.to_s if proxy && !proxy.eql?('')
|
26
26
|
|
27
|
-
hosts.map
|
27
|
+
hosts = hosts.map { |host| { host: host, scheme: 'https' } } if ssl
|
28
28
|
# set ca_file even if ssl isn't on, since the host can be an https url
|
29
29
|
ssl_options = { ssl: true, ca_file: options[:ca_file] } if options[:ca_file]
|
30
30
|
ssl_options ||= {}
|
@@ -43,14 +43,14 @@ module LogStash
|
|
43
43
|
return {} unless user && password && password.value
|
44
44
|
|
45
45
|
token = ::Base64.strict_encode64("#{user}:#{password.value}")
|
46
|
-
{ Authorization
|
46
|
+
{ 'Authorization' => "Basic #{token}" }
|
47
47
|
end
|
48
48
|
|
49
49
|
def setup_api_key(api_key)
|
50
50
|
return {} unless (api_key && api_key.value)
|
51
51
|
|
52
52
|
token = ::Base64.strict_encode64(api_key.value)
|
53
|
-
{ Authorization
|
53
|
+
{ 'Authorization' => "ApiKey #{token}" }
|
54
54
|
end
|
55
55
|
end
|
56
56
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require "elasticsearch"
|
3
|
+
require "elasticsearch/transport/transport/http/manticore"
|
4
|
+
|
5
|
+
es_client_version = Gem.loaded_specs['elasticsearch-transport'].version
|
6
|
+
if es_client_version >= Gem::Version.new('7.2') && es_client_version < Gem::Version.new('7.16')
|
7
|
+
# elasticsearch-transport 7.2.0 - 7.14.0 had a bug where setting http headers
|
8
|
+
# ES::Client.new ..., transport_options: { headers: { 'Authorization' => ... } }
|
9
|
+
# would be lost https://github.com/elastic/elasticsearch-ruby/issues/1428
|
10
|
+
#
|
11
|
+
# NOTE: needs to be idempotent as input ES plugin might apply the same patch!
|
12
|
+
#
|
13
|
+
# @private
|
14
|
+
module Elasticsearch
|
15
|
+
module Transport
|
16
|
+
module Transport
|
17
|
+
module HTTP
|
18
|
+
class Manticore
|
19
|
+
|
20
|
+
def apply_headers(request_options, options)
|
21
|
+
headers = (options && options[:headers]) || {}
|
22
|
+
headers[CONTENT_TYPE_STR] = find_value(headers, CONTENT_TYPE_REGEX) || DEFAULT_CONTENT_TYPE
|
23
|
+
headers[USER_AGENT_STR] = find_value(headers, USER_AGENT_REGEX) || user_agent_header
|
24
|
+
headers[ACCEPT_ENCODING] = GZIP if use_compression?
|
25
|
+
(request_options[:headers] ||= {}).merge!(headers) # this line was changed
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-filter-elasticsearch'
|
4
|
-
s.version = '3.9.
|
4
|
+
s.version = '3.9.4'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "Copies fields from previous log events in Elasticsearch to current events "
|
7
7
|
s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
|
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
|
22
22
|
# Gem dependencies
|
23
23
|
s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
|
24
|
-
s.add_runtime_dependency 'elasticsearch', ">= 5.0.
|
24
|
+
s.add_runtime_dependency 'elasticsearch', ">= 5.0.5" # LS >= 6.7 and < 7.14 all used version 5.0.5
|
25
25
|
s.add_runtime_dependency 'manticore', "~> 0.6"
|
26
26
|
|
27
27
|
s.add_development_dependency 'logstash-devutils'
|
data/spec/es_helper.rb
CHANGED
@@ -7,8 +7,12 @@ module ESHelper
|
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
|
-
def self.get_client
|
11
|
-
|
10
|
+
def self.get_client(credentials)
|
11
|
+
require 'elasticsearch/transport/transport/http/faraday' # supports user/password options
|
12
|
+
host, port = get_host_port.split(':')
|
13
|
+
host_opts = credentials.inject({}) { |h, (k, v)| h[k.to_sym] = v; h } # user: _, password: _
|
14
|
+
host_opts.merge! host: host, port: port, scheme: 'http'
|
15
|
+
Elasticsearch::Client.new(hosts: [host_opts], transport_class: Elasticsearch::Transport::Transport::HTTP::Faraday)
|
12
16
|
end
|
13
17
|
|
14
18
|
def self.doc_type
|
@@ -313,12 +313,12 @@ describe LogStash::Filters::Elasticsearch do
|
|
313
313
|
'sample:dXMtY2VudHJhbDEuZ2NwLmNsb3VkLmVzLmlvJGFjMzFlYmI5MDI0MTc3MzE1NzA0M2MzNGZkMjZmZDQ2OjkyNDMkYTRjMDYyMzBlNDhjOGZjZTdiZTg4YTA3NGEzYmIzZTA6OTI0NA=='
|
314
314
|
end
|
315
315
|
|
316
|
-
let(:config) { super.merge({ 'cloud_id' => valid_cloud_id }) }
|
316
|
+
let(:config) { super().merge({ 'cloud_id' => valid_cloud_id }) }
|
317
317
|
|
318
318
|
it "should set host(s)" do
|
319
319
|
plugin.register
|
320
320
|
client = plugin.send(:get_client).client
|
321
|
-
expect( client.
|
321
|
+
expect( extract_transport(client).hosts ).to eql [{
|
322
322
|
:scheme => "https",
|
323
323
|
:host => "ac31ebb90241773157043c34fd26fd46.us-central1.gcp.cloud.es.io",
|
324
324
|
:port => 9243,
|
@@ -328,7 +328,7 @@ describe LogStash::Filters::Elasticsearch do
|
|
328
328
|
end
|
329
329
|
|
330
330
|
context 'invalid' do
|
331
|
-
let(:config) { super.merge({ 'cloud_id' => 'invalid:dXMtY2VudHJhbDEuZ2NwLmNsb3VkLmVzLmlv' }) }
|
331
|
+
let(:config) { super().merge({ 'cloud_id' => 'invalid:dXMtY2VudHJhbDEuZ2NwLmNsb3VkLmVzLmlv' }) }
|
332
332
|
|
333
333
|
it "should fail" do
|
334
334
|
expect { plugin.register }.to raise_error LogStash::ConfigurationError, /cloud_id.*? is invalid/
|
@@ -336,7 +336,7 @@ describe LogStash::Filters::Elasticsearch do
|
|
336
336
|
end
|
337
337
|
|
338
338
|
context 'hosts also set' do
|
339
|
-
let(:config) { super.merge({ 'cloud_id' => valid_cloud_id, 'hosts' => [ 'localhost:9200' ] }) }
|
339
|
+
let(:config) { super().merge({ 'cloud_id' => valid_cloud_id, 'hosts' => [ 'localhost:9200' ] }) }
|
340
340
|
|
341
341
|
it "should fail" do
|
342
342
|
expect { plugin.register }.to raise_error LogStash::ConfigurationError, /cloud_id and hosts/
|
@@ -345,18 +345,18 @@ describe LogStash::Filters::Elasticsearch do
|
|
345
345
|
end if LOGSTASH_VERSION > '6.0'
|
346
346
|
|
347
347
|
describe "cloud.auth" do
|
348
|
-
let(:config) { super.merge({ 'cloud_auth' => LogStash::Util::Password.new('elastic:my-passwd-00') }) }
|
348
|
+
let(:config) { super().merge({ 'cloud_auth' => LogStash::Util::Password.new('elastic:my-passwd-00') }) }
|
349
349
|
|
350
350
|
it "should set authorization" do
|
351
351
|
plugin.register
|
352
352
|
client = plugin.send(:get_client).client
|
353
|
-
auth_header = client.
|
353
|
+
auth_header = extract_transport(client).options[:transport_options][:headers]['Authorization']
|
354
354
|
|
355
355
|
expect( auth_header ).to eql "Basic #{Base64.encode64('elastic:my-passwd-00').rstrip}"
|
356
356
|
end
|
357
357
|
|
358
358
|
context 'invalid' do
|
359
|
-
let(:config) { super.merge({ 'cloud_auth' => 'invalid-format' }) }
|
359
|
+
let(:config) { super().merge({ 'cloud_auth' => 'invalid-format' }) }
|
360
360
|
|
361
361
|
it "should fail" do
|
362
362
|
expect { plugin.register }.to raise_error LogStash::ConfigurationError, /cloud_auth.*? format/
|
@@ -364,7 +364,7 @@ describe LogStash::Filters::Elasticsearch do
|
|
364
364
|
end
|
365
365
|
|
366
366
|
context 'user also set' do
|
367
|
-
let(:config) { super.merge({ 'cloud_auth' => 'elastic:my-passwd-00', 'user' => 'another' }) }
|
367
|
+
let(:config) { super().merge({ 'cloud_auth' => 'elastic:my-passwd-00', 'user' => 'another' }) }
|
368
368
|
|
369
369
|
it "should fail" do
|
370
370
|
expect { plugin.register }.to raise_error LogStash::ConfigurationError, /Multiple authentication options are specified/
|
@@ -374,7 +374,7 @@ describe LogStash::Filters::Elasticsearch do
|
|
374
374
|
|
375
375
|
describe "api_key" do
|
376
376
|
context "without ssl" do
|
377
|
-
let(:config) { super.merge({ 'api_key' => LogStash::Util::Password.new('foo:bar') }) }
|
377
|
+
let(:config) { super().merge({ 'api_key' => LogStash::Util::Password.new('foo:bar') }) }
|
378
378
|
|
379
379
|
it "should fail" do
|
380
380
|
expect { plugin.register }.to raise_error LogStash::ConfigurationError, /api_key authentication requires SSL\/TLS/
|
@@ -382,18 +382,18 @@ describe LogStash::Filters::Elasticsearch do
|
|
382
382
|
end
|
383
383
|
|
384
384
|
context "with ssl" do
|
385
|
-
let(:config) { super.merge({ 'api_key' => LogStash::Util::Password.new('foo:bar'), "ssl" => true }) }
|
385
|
+
let(:config) { super().merge({ 'api_key' => LogStash::Util::Password.new('foo:bar'), "ssl" => true }) }
|
386
386
|
|
387
387
|
it "should set authorization" do
|
388
388
|
plugin.register
|
389
389
|
client = plugin.send(:get_client).client
|
390
|
-
auth_header = client.
|
390
|
+
auth_header = extract_transport(client).options[:transport_options][:headers]['Authorization']
|
391
391
|
|
392
392
|
expect( auth_header ).to eql "ApiKey #{Base64.strict_encode64('foo:bar')}"
|
393
393
|
end
|
394
394
|
|
395
395
|
context 'user also set' do
|
396
|
-
let(:config) { super.merge({ 'api_key' => 'foo:bar', 'user' => 'another' }) }
|
396
|
+
let(:config) { super().merge({ 'api_key' => 'foo:bar', 'user' => 'another' }) }
|
397
397
|
|
398
398
|
it "should fail" do
|
399
399
|
expect { plugin.register }.to raise_error LogStash::ConfigurationError, /Multiple authentication options are specified/
|
@@ -404,30 +404,44 @@ describe LogStash::Filters::Elasticsearch do
|
|
404
404
|
|
405
405
|
describe "proxy" do
|
406
406
|
context 'valid' do
|
407
|
-
let(:config) { super.merge({ 'proxy' => 'http://localhost:1234' }) }
|
407
|
+
let(:config) { super().merge({ 'proxy' => 'http://localhost:1234' }) }
|
408
408
|
|
409
409
|
it "should set proxy" do
|
410
410
|
plugin.register
|
411
411
|
client = plugin.send(:get_client).client
|
412
|
-
proxy = client.
|
412
|
+
proxy = extract_transport(client).options[:transport_options][:proxy]
|
413
413
|
|
414
414
|
expect( proxy ).to eql "http://localhost:1234"
|
415
415
|
end
|
416
416
|
end
|
417
417
|
|
418
418
|
context 'invalid' do
|
419
|
-
let(:config) { super.merge({ 'proxy' => '${A_MISSING_ENV_VAR:}' }) }
|
419
|
+
let(:config) { super().merge({ 'proxy' => '${A_MISSING_ENV_VAR:}' }) }
|
420
420
|
|
421
421
|
it "should not set proxy" do
|
422
422
|
plugin.register
|
423
423
|
client = plugin.send(:get_client).client
|
424
424
|
|
425
|
-
expect( client.
|
425
|
+
expect( extract_transport(client).options[:transport_options] ).to_not include(:proxy)
|
426
426
|
end
|
427
427
|
end
|
428
428
|
end
|
429
429
|
end
|
430
430
|
|
431
|
+
describe "defaults" do
|
432
|
+
|
433
|
+
let(:config) { Hash.new }
|
434
|
+
let(:plugin) { described_class.new(config) }
|
435
|
+
|
436
|
+
before { allow(plugin).to receive(:test_connection!) }
|
437
|
+
|
438
|
+
it "should set localhost:9200 as hosts" do
|
439
|
+
plugin.register
|
440
|
+
client = plugin.send(:get_client).client
|
441
|
+
expect( extract_transport(client).hosts ).to eql [{ :host => "localhost", :port => 9200, :protocol => "http"}]
|
442
|
+
end
|
443
|
+
end
|
444
|
+
|
431
445
|
describe "query template" do
|
432
446
|
let(:config) do
|
433
447
|
{
|
@@ -453,4 +467,10 @@ describe LogStash::Filters::Elasticsearch do
|
|
453
467
|
plugin.filter(LogStash::Event.new)
|
454
468
|
end
|
455
469
|
end
|
470
|
+
|
471
|
+
# @note can be removed once gem depends on elasticsearch >= 6.x
|
472
|
+
def extract_transport(client) # on 7.x client.transport is a ES::Transport::Client
|
473
|
+
client.transport.respond_to?(:transport) ? client.transport.transport : client.transport
|
474
|
+
end
|
475
|
+
|
456
476
|
end
|
@@ -6,21 +6,31 @@ require_relative "../../../spec/es_helper"
|
|
6
6
|
|
7
7
|
describe LogStash::Filters::Elasticsearch, :integration => true do
|
8
8
|
|
9
|
+
ELASTIC_SECURITY_ENABLED = ENV['ELASTIC_SECURITY_ENABLED'].eql? 'true'
|
9
10
|
|
10
|
-
let(:
|
11
|
+
let(:base_config) do
|
11
12
|
{
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
"index" => 'logs',
|
14
|
+
"hosts" => [ESHelper.get_host_port],
|
15
|
+
"query" => "response: 404",
|
16
|
+
"sort" => "response",
|
17
|
+
"fields" => [ ["response", "code"] ],
|
17
18
|
}
|
18
19
|
end
|
20
|
+
|
21
|
+
let(:credentials) do
|
22
|
+
{ 'user' => 'elastic', 'password' => ENV['ELASTIC_PASSWORD'] }
|
23
|
+
end
|
24
|
+
|
25
|
+
let(:config) do
|
26
|
+
ELASTIC_SECURITY_ENABLED ? base_config.merge(credentials) : base_config
|
27
|
+
end
|
28
|
+
|
19
29
|
let(:plugin) { described_class.new(config) }
|
20
30
|
let(:event) { LogStash::Event.new({}) }
|
21
31
|
|
22
32
|
before(:each) do
|
23
|
-
@es = ESHelper.get_client
|
33
|
+
@es = ESHelper.get_client(ELASTIC_SECURITY_ENABLED ? credentials : {})
|
24
34
|
# Delete all templates first.
|
25
35
|
# Clean ES of data before we start.
|
26
36
|
@es.indices.delete_template(:name => "*")
|
@@ -30,11 +40,10 @@ describe LogStash::Filters::Elasticsearch, :integration => true do
|
|
30
40
|
ESHelper.index_doc(@es, :index => 'logs', :body => { :response => 404, :this => 'that'})
|
31
41
|
end
|
32
42
|
@es.indices.refresh
|
33
|
-
|
34
|
-
plugin.register
|
35
43
|
end
|
36
44
|
|
37
45
|
it "should enhance the current event with new data" do
|
46
|
+
plugin.register
|
38
47
|
plugin.filter(event)
|
39
48
|
expect(event.get('code')).to eq(404)
|
40
49
|
end
|
@@ -42,20 +51,28 @@ describe LogStash::Filters::Elasticsearch, :integration => true do
|
|
42
51
|
context "when retrieving a list of elements" do
|
43
52
|
|
44
53
|
let(:config) do
|
45
|
-
|
46
|
-
"index" => 'logs',
|
47
|
-
"hosts" => [ESHelper.get_host_port],
|
48
|
-
"query" => "response: 404",
|
49
|
-
"fields" => [ ["response", "code"] ],
|
50
|
-
"sort" => "response",
|
51
|
-
"result_size" => 10
|
52
|
-
}
|
54
|
+
super().merge("fields" => [ ["response", "code"] ], "result_size" => 10)
|
53
55
|
end
|
54
56
|
|
57
|
+
before { plugin.register }
|
58
|
+
|
55
59
|
it "should enhance the current event with new data" do
|
56
60
|
plugin.filter(event)
|
57
61
|
expect(event.get("code")).to eq([404]*10)
|
58
62
|
end
|
59
63
|
|
60
64
|
end
|
65
|
+
|
66
|
+
context "incorrect auth credentials" do
|
67
|
+
|
68
|
+
let(:config) do
|
69
|
+
super().reject { |key, _| key == 'password' }
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should enhance the current event with new data" do
|
73
|
+
expect { plugin.register }.to raise_error Elasticsearch::Transport::Transport::Errors::Unauthorized
|
74
|
+
end
|
75
|
+
|
76
|
+
end if ELASTIC_SECURITY_ENABLED
|
77
|
+
|
61
78
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-filter-elasticsearch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.9.
|
4
|
+
version: 3.9.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -20,8 +20,8 @@ dependencies:
|
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '2.99'
|
22
22
|
name: logstash-core-plugin-api
|
23
|
-
prerelease: false
|
24
23
|
type: :runtime
|
24
|
+
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
@@ -35,15 +35,15 @@ dependencies:
|
|
35
35
|
requirements:
|
36
36
|
- - ">="
|
37
37
|
- !ruby/object:Gem::Version
|
38
|
-
version: 5.0.
|
38
|
+
version: 5.0.5
|
39
39
|
name: elasticsearch
|
40
|
-
prerelease: false
|
41
40
|
type: :runtime
|
41
|
+
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 5.0.
|
46
|
+
version: 5.0.5
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
requirements:
|
@@ -51,8 +51,8 @@ dependencies:
|
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '0.6'
|
53
53
|
name: manticore
|
54
|
-
prerelease: false
|
55
54
|
type: :runtime
|
55
|
+
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
@@ -65,8 +65,8 @@ dependencies:
|
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: '0'
|
67
67
|
name: logstash-devutils
|
68
|
-
prerelease: false
|
69
68
|
type: :development
|
69
|
+
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - ">="
|
@@ -89,6 +89,7 @@ files:
|
|
89
89
|
- docs/index.asciidoc
|
90
90
|
- lib/logstash/filters/elasticsearch.rb
|
91
91
|
- lib/logstash/filters/elasticsearch/client.rb
|
92
|
+
- lib/logstash/filters/elasticsearch/patches/_elasticsearch_transport_http_manticore.rb
|
92
93
|
- logstash-filter-elasticsearch.gemspec
|
93
94
|
- spec/es_helper.rb
|
94
95
|
- spec/filters/elasticsearch_spec.rb
|
@@ -121,8 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
122
|
- !ruby/object:Gem::Version
|
122
123
|
version: '0'
|
123
124
|
requirements: []
|
124
|
-
|
125
|
-
rubygems_version: 2.6.13
|
125
|
+
rubygems_version: 3.0.6
|
126
126
|
signing_key:
|
127
127
|
specification_version: 4
|
128
128
|
summary: Copies fields from previous log events in Elasticsearch to current events
|