logstash-output-elasticsearch 11.3.3-java → 11.5.0-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 +16 -0
- data/Gemfile +2 -1
- data/docs/index.asciidoc +21 -3
- data/lib/logstash/outputs/elasticsearch/http_client.rb +2 -2
- data/lib/logstash/outputs/elasticsearch/http_client_builder.rb +8 -6
- data/lib/logstash/outputs/elasticsearch/templates/ecs-v1/elasticsearch-7x.json +2196 -288
- data/lib/logstash/outputs/elasticsearch/templates/ecs-v1/elasticsearch-8x.json +2196 -288
- data/lib/logstash/outputs/elasticsearch/templates/ecs-v8/elasticsearch-7x.json +1 -1
- data/lib/logstash/outputs/elasticsearch/templates/ecs-v8/elasticsearch-8x.json +1 -1
- data/lib/logstash/plugin_mixins/elasticsearch/api_configs.rb +2 -0
- data/logstash-output-elasticsearch.gemspec +2 -3
- data/spec/es_spec_helper.rb +5 -1
- data/spec/fixtures/test_certs/{ca/ca.crt → ca.crt} +0 -0
- data/spec/fixtures/test_certs/{ca/ca.key → ca.key} +0 -0
- data/spec/fixtures/test_certs/test.p12 +0 -0
- data/spec/fixtures/test_certs/test_invalid.crt +36 -0
- data/spec/fixtures/test_certs/test_invalid.key +51 -0
- data/spec/fixtures/test_certs/test_invalid.p12 +0 -0
- data/spec/fixtures/test_certs/test_self_signed.crt +32 -0
- data/spec/fixtures/test_certs/test_self_signed.key +54 -0
- data/spec/fixtures/test_certs/test_self_signed.p12 +0 -0
- data/spec/integration/outputs/ilm_spec.rb +2 -1
- data/spec/integration/outputs/index_spec.rb +143 -48
- data/spec/integration/outputs/ingest_pipeline_spec.rb +2 -1
- data/spec/integration/outputs/no_es_on_startup_spec.rb +12 -6
- data/spec/integration/outputs/retry_spec.rb +2 -1
- data/spec/unit/outputs/elasticsearch_ssl_spec.rb +1 -1
- metadata +22 -8
@@ -66,6 +66,8 @@ module LogStash; module PluginMixins; module ElasticSearch
|
|
66
66
|
# Set the keystore password
|
67
67
|
:keystore_password => { :validate => :password },
|
68
68
|
|
69
|
+
:ssl_supported_protocols => { :validate => ['TLSv1.1', 'TLSv1.2', 'TLSv1.3'], :default => [], :list => true },
|
70
|
+
|
69
71
|
# This setting asks Elasticsearch for the list of all cluster nodes and adds them to the hosts list.
|
70
72
|
# Note: This will return ALL nodes with HTTP enabled (including master nodes!). If you use
|
71
73
|
# this with master nodes, you probably want to disable HTTP on them by setting
|
@@ -1,7 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'logstash-output-elasticsearch'
|
3
|
-
s.version = '11.
|
4
|
-
|
3
|
+
s.version = '11.5.0'
|
5
4
|
s.licenses = ['apache-2.0']
|
6
5
|
s.summary = "Stores logs in Elasticsearch"
|
7
6
|
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 +20,7 @@ Gem::Specification.new do |s|
|
|
21
20
|
# Special flag to let us know this is actually a logstash plugin
|
22
21
|
s.metadata = { "logstash_plugin" => "true", "logstash_group" => "output" }
|
23
22
|
|
24
|
-
s.add_runtime_dependency "manticore", '>= 0.
|
23
|
+
s.add_runtime_dependency "manticore", '>= 0.8.0', '< 1.0.0'
|
25
24
|
s.add_runtime_dependency 'stud', ['>= 0.0.17', '~> 0.0']
|
26
25
|
s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
|
27
26
|
s.add_runtime_dependency 'logstash-mixin-ecs_compatibility_support', '~>1.0'
|
data/spec/es_spec_helper.rb
CHANGED
@@ -59,7 +59,11 @@ module ESHelper
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def self.es_version
|
62
|
-
|
62
|
+
[
|
63
|
+
nilify(RSpec.configuration.filter[:es_version]),
|
64
|
+
nilify(ENV['ES_VERSION']),
|
65
|
+
nilify(ENV['ELASTIC_STACK_VERSION']),
|
66
|
+
].compact.first
|
63
67
|
end
|
64
68
|
|
65
69
|
RSpec::Matchers.define :have_hits do |expected|
|
File without changes
|
File without changes
|
Binary file
|
@@ -0,0 +1,36 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIGVzCCBD+gAwIBAgIBAzANBgkqhkiG9w0BAQsFADBMMQswCQYDVQQGEwJQVDEL
|
3
|
+
MAkGA1UECAwCTkExDzANBgNVBAcMBkxpc2JvbjEOMAwGA1UECgwFTXlMYWIxDzAN
|
4
|
+
BgNVBAMMBlJvb3RDQTAeFw0yMjAxMTgwNTA0MDZaFw0yNTAxMTgwNTA0MDZaMFIx
|
5
|
+
CzAJBgNVBAYTAkxTMQswCQYDVQQIDAJOQTESMBAGA1UEBwwJRVMgT3V0cHV0MREw
|
6
|
+
DwYDVQQKDAhMb2dzdGFzaDEPMA0GA1UEAwwGc2VydmVyMIICIjANBgkqhkiG9w0B
|
7
|
+
AQEFAAOCAg8AMIICCgKCAgEAunKYkXLoAC14bdIveIZlImtrp2rkQ5Ugz/vGVWFJ
|
8
|
+
YatJh9x5dmqJQeO1gpGayNedbwDI/50CTDoqwCz4aunMKpgQdKHryjeuR1zqElhC
|
9
|
+
QLZtAkzM/pCkTnMYvXDfJrBZcSWP+ddlkH8ffmN0Fxf3LsKln+K5A4hASrVGSKYw
|
10
|
+
+eNDV7yIxdhthqD0xNRuw/j3lSLxwBbwKOs7Mh+xmdMa4vs3AKJvG9LdTm7xdHtD
|
11
|
+
4rkQAA7TRQOR5pl+eDICRnNkGVzgPMdf2kM94ZU7TI1zUMqV1uPNE05Vps14kuWq
|
12
|
+
Z84r8ecExCo6mQxrQ1M7Y2UBGa5NM9kb+UP1famANadEOlS5kAGEtcpHnh1WK+98
|
13
|
+
4mxtMQJHIOOASde/coA3mZ4Oa8Z0Hzy3fsNvD9ieLo2V8yQN9UAQshbB1BEuOaRr
|
14
|
+
9wQKT4jlnCinZ4UU6FpEJ7NIiZ9wBKqNbN8iySPYmRihOj6BDuEQB/W/K54KQB5n
|
15
|
+
ctT6MsoTyTFgqe3Zn0owMrGCsSDJsvUcaAz7ZsnesoiFtKsYyRZAWJVcLO5R0FxZ
|
16
|
+
YjCGk9stspLT1cqmJ8VbMLhiW7T4ZP+sZj3B+aSZWnS5r78I4G9sB9swDMJMjNRP
|
17
|
+
O15zvQKIRluULhm9WhPET78Iy9Qg1zoiGdnzxBSZ9Sh8+yb57cCRD4da7eLne4Sb
|
18
|
+
uU8CAwEAAaOCATwwggE4MAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMDMG
|
19
|
+
CWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBTZXJ2ZXIgQ2VydGlmaWNh
|
20
|
+
dGUwHQYDVR0OBBYEFPqrHNv/8Io82JmzcNWBdaRmftvdMIGIBgNVHSMEgYAwfoAU
|
21
|
+
oVp0nHjq6mJ/UGuFhnSK7yjbPyuhUKROMEwxCzAJBgNVBAYTAlBUMQswCQYDVQQI
|
22
|
+
DAJOQTEPMA0GA1UEBwwGTGlzYm9uMQ4wDAYDVQQKDAVNeUxhYjEPMA0GA1UEAwwG
|
23
|
+
Um9vdENBghRT5Ucn3UmwssDUYlgL5RyE1/DeETAOBgNVHQ8BAf8EBAMCBaAwEwYD
|
24
|
+
VR0lBAwwCgYIKwYBBQUHAwEwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3
|
25
|
+
DQEBCwUAA4ICAQDHt/3rR3rzESrZNNLIU+jbW6Vsfcr22mghhbdoU+pnkZB8Spzp
|
26
|
+
AUqgmSlOOuz/3OMLPP64sj+gm9kiU177uBoqJUsnaAaV0LNvp+EIWIdskw0OGU2X
|
27
|
+
uOslZK5EdYGqGgRlElnohPRXcFXwsh//QJYDmNnnC3Fk+ZjZQKjH4q4Ur8ECPqit
|
28
|
+
wVnRXqlKfLRjWWzvTgoPTAN42KHP2R7xxIHdV+cXH6riLLvtkWcGJbfoQaSuNOvc
|
29
|
+
GAIoQc2YmIiVsGZ82n9Ww2zO9ByqF+KfGgIFDTCp1CzpfLKLLhzMv/p4n2zf/BOb
|
30
|
+
MCJJfljOewqmzMo48Wj2vk/46IAGl5uA6PnDwa0LNgomA9c6loDcYEOsCr69xL+D
|
31
|
+
7GL/Jzm9HaTE97lRGVwoKBG0hKabFEfOueKB6Oab8bVTuY99kbbRaFZs7I9QYVQy
|
32
|
+
eY38YJv5kN3yAjFclO39R8cAngqecbQDZ7xTl7dF7CvrpAoNI8olL01Kjy/+vfX4
|
33
|
+
WAMO9YONnVPwwB05voRZfKErVKi9iwAWa5m9DdtE5QdfjcsXZkITW2CF2skSgujw
|
34
|
+
BS8P8Z+HccKa+qEPQM+eBWjrlzlx/XC2iXKE1w4zZL0wRgY7+W4dIMgJmPmV/Gue
|
35
|
+
5wSnZtMueBdyKy+xFrJcszoakKg/JfSesKfnVLC+60EL2FQqbrGCEiTp2A==
|
36
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,51 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
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
|
51
|
+
-----END RSA PRIVATE KEY-----
|
Binary file
|
@@ -0,0 +1,32 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
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
|
31
|
+
8X4SIgxrmMAlKIc=
|
32
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,54 @@
|
|
1
|
+
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
2
|
+
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
|
53
|
+
q/eu/hnuc3qa580zbpgcAg==
|
54
|
+
-----END ENCRYPTED PRIVATE KEY-----
|
Binary file
|
@@ -236,7 +236,8 @@ describe 'Elasticsearch has index lifecycle management enabled', :integration =>
|
|
236
236
|
let (:settings) {
|
237
237
|
{
|
238
238
|
"ilm_enabled" => ilm_enabled,
|
239
|
-
"hosts" => "#{get_host_port()}"
|
239
|
+
"hosts" => "#{get_host_port()}",
|
240
|
+
"ecs_compatibility" => "disabled", # specs are tightly tied to non-ECS defaults
|
240
241
|
}
|
241
242
|
}
|
242
243
|
let (:small_max_doc_policy) { max_docs_policy(3) }
|
@@ -46,7 +46,8 @@ describe "TARGET_BULK_BYTES", :integration => true do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
describe "indexing" do
|
49
|
-
let(:
|
49
|
+
let(:message) { "Hello from #{__FILE__}" }
|
50
|
+
let(:event) { LogStash::Event.new("message" => message, "type" => type) }
|
50
51
|
let(:index) { 10.times.collect { rand(10).to_s }.join("") }
|
51
52
|
let(:type) { ESHelper.es_version_satisfies?("< 7") ? "doc" : "_doc" }
|
52
53
|
let(:event_count) { 1 + rand(2) }
|
@@ -55,31 +56,66 @@ describe "indexing" do
|
|
55
56
|
subject { LogStash::Outputs::ElasticSearch.new(config) }
|
56
57
|
|
57
58
|
let(:es_url) { "http://#{get_host_port}" }
|
58
|
-
let(:index_url) {"#{es_url}/#{index}"}
|
59
|
-
|
60
|
-
let(:
|
61
|
-
|
59
|
+
let(:index_url) { "#{es_url}/#{index}" }
|
60
|
+
|
61
|
+
let(:curl_opts) { nil }
|
62
|
+
|
63
|
+
let(:es_admin) { 'admin' } # default user added in ES -> 8.x requires auth credentials for /_refresh etc
|
64
|
+
let(:es_admin_pass) { 'elastic' }
|
65
|
+
|
66
|
+
def curl_and_get_json_response(url, method: :get); require 'open3'
|
67
|
+
cmd = "curl -s -v --show-error #{curl_opts} -X #{method.to_s.upcase} -k #{url}"
|
68
|
+
begin
|
69
|
+
out, err, status = Open3.capture3(cmd)
|
70
|
+
rescue Errno::ENOENT
|
71
|
+
fail "curl not available, make sure curl binary is installed and available on $PATH"
|
72
|
+
end
|
73
|
+
|
74
|
+
if status.success?
|
75
|
+
http_status = err.match(/< HTTP\/1.1 (\d+)/)[1] || '0' # < HTTP/1.1 200 OK\r\n
|
76
|
+
|
77
|
+
if http_status.strip[0].to_i > 2
|
78
|
+
error = (LogStash::Json.load(out)['error']) rescue nil
|
79
|
+
if error
|
80
|
+
fail "#{cmd.inspect} received an error: #{http_status}\n\n#{error.inspect}"
|
81
|
+
else
|
82
|
+
warn out
|
83
|
+
fail "#{cmd.inspect} unexpected response: #{http_status}\n\n#{err}"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
LogStash::Json.load(out)
|
88
|
+
else
|
89
|
+
warn out
|
90
|
+
fail "#{cmd.inspect} process failed: #{status}\n\n#{err}"
|
91
|
+
end
|
62
92
|
end
|
63
93
|
|
94
|
+
let(:initial_events) { [] }
|
95
|
+
|
64
96
|
before do
|
65
97
|
subject.register
|
66
|
-
subject.multi_receive(
|
98
|
+
subject.multi_receive(initial_events) if initial_events
|
67
99
|
end
|
68
|
-
|
100
|
+
|
101
|
+
after do
|
102
|
+
subject.do_close
|
103
|
+
end
|
104
|
+
|
69
105
|
shared_examples "an indexer" do |secure|
|
70
106
|
it "ships events" do
|
71
107
|
subject.multi_receive(events)
|
72
108
|
|
73
|
-
|
109
|
+
curl_and_get_json_response "#{es_url}/_refresh", method: :post
|
74
110
|
|
75
|
-
|
76
|
-
result = LogStash::Json.load(response.body)
|
111
|
+
result = curl_and_get_json_response "#{index_url}/_count?q=*"
|
77
112
|
cur_count = result["count"]
|
78
113
|
expect(cur_count).to eq(event_count)
|
79
114
|
|
80
|
-
|
81
|
-
result = LogStash::Json.load(response.body)
|
115
|
+
result = curl_and_get_json_response "#{index_url}/_search?q=*&size=1000"
|
82
116
|
result["hits"]["hits"].each do |doc|
|
117
|
+
expect(doc["_source"]["message"]).to eq(message)
|
118
|
+
|
83
119
|
if ESHelper.es_version_satisfies?("< 8")
|
84
120
|
expect(doc["_type"]).to eq(type)
|
85
121
|
else
|
@@ -132,50 +168,109 @@ describe "indexing" do
|
|
132
168
|
describe "a secured indexer", :secure_integration => true do
|
133
169
|
let(:user) { "simpleuser" }
|
134
170
|
let(:password) { "abc123" }
|
135
|
-
let(:cacert) { "spec/fixtures/test_certs/
|
136
|
-
let(:es_url) {"https
|
171
|
+
let(:cacert) { "spec/fixtures/test_certs/ca.crt" }
|
172
|
+
let(:es_url) { "https://#{get_host_port}" }
|
137
173
|
let(:config) do
|
138
174
|
{
|
139
|
-
"hosts" => [
|
175
|
+
"hosts" => [ get_host_port ],
|
140
176
|
"user" => user,
|
141
177
|
"password" => password,
|
142
178
|
"ssl" => true,
|
143
|
-
"cacert" =>
|
179
|
+
"cacert" => cacert,
|
144
180
|
"index" => index
|
145
181
|
}
|
146
|
-
end
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
it_behaves_like("an indexer", true)
|
160
|
-
|
161
|
-
describe "with a password requiring escaping" do
|
162
|
-
let(:user) { "f@ncyuser" }
|
163
|
-
let(:password) { "ab%12#" }
|
164
|
-
|
165
|
-
include_examples("an indexer", true)
|
166
|
-
end
|
167
|
-
|
168
|
-
describe "with a user/password requiring escaping in the URL" do
|
169
|
-
let(:config) do
|
170
|
-
{
|
171
|
-
"hosts" => ["https://#{CGI.escape(user)}:#{CGI.escape(password)}@elasticsearch:9200"],
|
172
|
-
"ssl" => true,
|
173
|
-
"cacert" => "spec/fixtures/test_certs/test.crt",
|
174
|
-
"index" => index
|
175
|
-
}
|
182
|
+
end
|
183
|
+
|
184
|
+
let(:curl_opts) { "-u #{user}:#{password}" }
|
185
|
+
|
186
|
+
if ENV['ES_SSL_KEY_INVALID'] == 'true' # test_invalid.crt (configured in ES) has SAN: DNS:localhost
|
187
|
+
# javax.net.ssl.SSLPeerUnverifiedException: Host name 'elasticsearch' does not match the certificate subject ...
|
188
|
+
|
189
|
+
context "when no keystore nor ca cert set and verification is disabled" do
|
190
|
+
let(:config) do
|
191
|
+
super().tap { |config| config.delete('cacert') }.merge('ssl_certificate_verification' => false)
|
192
|
+
end
|
193
|
+
|
194
|
+
include_examples("an indexer", true)
|
176
195
|
end
|
177
|
-
|
178
|
-
|
196
|
+
|
197
|
+
context "when keystore is set and verification is disabled" do
|
198
|
+
let(:config) do
|
199
|
+
super().merge(
|
200
|
+
'ssl_certificate_verification' => false,
|
201
|
+
'keystore' => 'spec/fixtures/test_certs/test.p12',
|
202
|
+
'keystore_password' => '1234567890'
|
203
|
+
)
|
204
|
+
end
|
205
|
+
|
206
|
+
include_examples("an indexer", true)
|
207
|
+
end
|
208
|
+
|
209
|
+
context "when keystore has self-signed cert and verification is disabled" do
|
210
|
+
let(:config) do
|
211
|
+
super().tap { |config| config.delete('cacert') }.merge(
|
212
|
+
'ssl_certificate_verification' => false,
|
213
|
+
'keystore' => 'spec/fixtures/test_certs/test_self_signed.p12',
|
214
|
+
'keystore_password' => '1234567890'
|
215
|
+
)
|
216
|
+
end
|
217
|
+
|
218
|
+
include_examples("an indexer", true)
|
219
|
+
end
|
220
|
+
|
221
|
+
else
|
222
|
+
|
223
|
+
let(:curl_opts) { "#{super()} --tlsv1.2 --tls-max 1.3 -u #{es_admin}:#{es_admin_pass}" } # due ES 8.x we need user/password
|
224
|
+
|
225
|
+
it_behaves_like("an indexer", true)
|
226
|
+
|
227
|
+
describe "with a password requiring escaping" do
|
228
|
+
let(:user) { "f@ncyuser" }
|
229
|
+
let(:password) { "ab%12#" }
|
230
|
+
|
231
|
+
include_examples("an indexer", true)
|
232
|
+
end
|
233
|
+
|
234
|
+
describe "with a user/password requiring escaping in the URL" do
|
235
|
+
let(:config) do
|
236
|
+
{
|
237
|
+
"hosts" => ["https://#{CGI.escape(user)}:#{CGI.escape(password)}@elasticsearch:9200"],
|
238
|
+
"ssl" => true,
|
239
|
+
"cacert" => "spec/fixtures/test_certs/test.crt",
|
240
|
+
"index" => index
|
241
|
+
}
|
242
|
+
end
|
243
|
+
|
244
|
+
include_examples("an indexer", true)
|
245
|
+
end
|
246
|
+
|
247
|
+
context 'with enforced TLSv1.3 protocol' do
|
248
|
+
let(:config) { super().merge 'ssl_supported_protocols' => [ 'TLSv1.3' ] }
|
249
|
+
|
250
|
+
it_behaves_like("an indexer", true)
|
251
|
+
end
|
252
|
+
|
253
|
+
context 'with enforced TLSv1.2 protocol (while ES only enabled TLSv1.3)' do
|
254
|
+
let(:config) { super().merge 'ssl_supported_protocols' => [ 'TLSv1.2' ] }
|
255
|
+
|
256
|
+
let(:initial_events) { nil }
|
257
|
+
|
258
|
+
it "does not ship events" do
|
259
|
+
curl_and_get_json_response index_url, method: :put # make sure index exists
|
260
|
+
Thread.start { subject.multi_receive(events) } # we'll be stuck in a retry loop
|
261
|
+
sleep 2.5
|
262
|
+
|
263
|
+
curl_and_get_json_response "#{es_url}/_refresh", method: :post
|
264
|
+
|
265
|
+
result = curl_and_get_json_response "#{index_url}/_count?q=*"
|
266
|
+
cur_count = result["count"]
|
267
|
+
expect(cur_count).to eq(0) # ES output keeps re-trying but ends up with a
|
268
|
+
# [Manticore::ClientProtocolException] Received fatal alert: protocol_version
|
269
|
+
end
|
270
|
+
|
271
|
+
end if ENV['ES_SSL_SUPPORTED_PROTOCOLS'] == 'TLSv1.3'
|
272
|
+
|
179
273
|
end
|
274
|
+
|
180
275
|
end
|
181
276
|
end
|
@@ -6,7 +6,8 @@ describe "Ingest pipeline execution behavior", :integration => true do
|
|
6
6
|
settings = {
|
7
7
|
"hosts" => "#{get_host_port()}",
|
8
8
|
"pipeline" => "apache-logs",
|
9
|
-
"data_stream" => 'false'
|
9
|
+
"data_stream" => 'false',
|
10
|
+
"ecs_compatibility" => "disabled", # specs are tightly tied to non-ECS defaults
|
10
11
|
}
|
11
12
|
next LogStash::Outputs::ElasticSearch.new(settings)
|
12
13
|
end
|
@@ -12,13 +12,13 @@ describe "elasticsearch is down on startup", :integration => true do
|
|
12
12
|
"template_overwrite" => true,
|
13
13
|
"hosts" => get_host_port(),
|
14
14
|
"retry_max_interval" => 64,
|
15
|
-
"retry_initial_interval" => 2
|
15
|
+
"retry_initial_interval" => 2,
|
16
|
+
'ecs_compatibility' => 'disabled'
|
16
17
|
})
|
17
18
|
}
|
18
19
|
|
19
20
|
before :each do
|
20
21
|
# Delete all templates first.
|
21
|
-
require "elasticsearch"
|
22
22
|
allow(Stud).to receive(:stoppable_sleep)
|
23
23
|
|
24
24
|
# Clean ES of data before we start.
|
@@ -33,7 +33,9 @@ describe "elasticsearch is down on startup", :integration => true do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
it 'should ingest events when Elasticsearch recovers before documents are sent' do
|
36
|
-
allow_any_instance_of(LogStash::Outputs::ElasticSearch::HttpClient::Pool).to receive(:get_es_version).and_raise(
|
36
|
+
allow_any_instance_of(LogStash::Outputs::ElasticSearch::HttpClient::Pool).to receive(:get_es_version).and_raise(
|
37
|
+
::LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError.new StandardError.new("TEST: before docs are sent"), 'http://test.es/'
|
38
|
+
)
|
37
39
|
subject.register
|
38
40
|
allow_any_instance_of(LogStash::Outputs::ElasticSearch::HttpClient::Pool).to receive(:get_es_version).and_return(ESHelper.es_version)
|
39
41
|
subject.multi_receive([event1, event2])
|
@@ -43,7 +45,9 @@ describe "elasticsearch is down on startup", :integration => true do
|
|
43
45
|
end
|
44
46
|
|
45
47
|
it 'should ingest events when Elasticsearch recovers after documents are sent' do
|
46
|
-
allow_any_instance_of(LogStash::Outputs::ElasticSearch::HttpClient::Pool).to receive(:get_es_version).and_raise(
|
48
|
+
allow_any_instance_of(LogStash::Outputs::ElasticSearch::HttpClient::Pool).to receive(:get_es_version).and_raise(
|
49
|
+
::LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError.new StandardError.new("TEST: after docs are sent"), 'http://test.es/'
|
50
|
+
)
|
47
51
|
subject.register
|
48
52
|
Thread.new do
|
49
53
|
sleep 4
|
@@ -56,11 +60,13 @@ describe "elasticsearch is down on startup", :integration => true do
|
|
56
60
|
end
|
57
61
|
|
58
62
|
it 'should get cluster_uuid when Elasticsearch recovers from license check failure' do
|
59
|
-
allow_any_instance_of(LogStash::Outputs::ElasticSearch::HttpClient::Pool).to receive(:get_license).
|
63
|
+
allow_any_instance_of(LogStash::Outputs::ElasticSearch::HttpClient::Pool).to receive(:get_license).and_raise(
|
64
|
+
::LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError.new StandardError.new("TEST: docs are sent"), 'http://test.es/_license'
|
65
|
+
)
|
60
66
|
subject.register
|
61
67
|
Thread.new do
|
62
68
|
sleep 4
|
63
|
-
allow_any_instance_of(LogStash::Outputs::ElasticSearch::HttpClient::Pool).to receive(:get_license).
|
69
|
+
allow_any_instance_of(LogStash::Outputs::ElasticSearch::HttpClient::Pool).to receive(:get_license).and_call_original
|
64
70
|
end
|
65
71
|
subject.multi_receive([event1, event2])
|
66
72
|
@es.indices.refresh
|
@@ -45,7 +45,8 @@ describe "failures in bulk class expected behavior", :integration => true do
|
|
45
45
|
"template_overwrite" => true,
|
46
46
|
"hosts" => get_host_port(),
|
47
47
|
"retry_max_interval" => 64,
|
48
|
-
"retry_initial_interval" => 2
|
48
|
+
"retry_initial_interval" => 2,
|
49
|
+
"ecs_compatibility" => "disabled", # specs are tightly tied to non-ECS defaults
|
49
50
|
}
|
50
51
|
next LogStash::Outputs::ElasticSearch.new(settings)
|
51
52
|
end
|
@@ -33,7 +33,7 @@ describe "SSL option" do
|
|
33
33
|
|
34
34
|
it "should pass the flag to the ES client" do
|
35
35
|
expect(::Manticore::Client).to receive(:new) do |args|
|
36
|
-
expect(args[:ssl]).to
|
36
|
+
expect(args[:ssl]).to match hash_including(:enabled => true, :verify => :disable)
|
37
37
|
end.and_return(manticore_double)
|
38
38
|
|
39
39
|
subject.register
|