logstash-output-elasticsearch 11.4.0-java → 11.4.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 +8 -0
- data/Gemfile +2 -1
- data/docs/index.asciidoc +5 -0
- data/lib/logstash/outputs/elasticsearch/http_client.rb +3 -0
- data/lib/logstash/outputs/elasticsearch/http_client_builder.rb +3 -6
- 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/logstash-output-elasticsearch.gemspec +2 -2
- data/spec/fixtures/test_certs/ca.crt +31 -0
- data/spec/fixtures/test_certs/renew.sh +11 -0
- data/spec/fixtures/test_certs/test.crt +18 -20
- 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/compressed_indexing_spec.rb +3 -1
- data/spec/integration/outputs/index_spec.rb +87 -43
- data/spec/integration/outputs/no_es_on_startup_spec.rb +12 -6
- data/spec/unit/outputs/elasticsearch/http_client_spec.rb +8 -6
- data/spec/unit/outputs/elasticsearch_ssl_spec.rb +1 -1
- metadata +24 -8
- data/spec/fixtures/test_certs/ca/ca.crt +0 -32
- /data/spec/fixtures/test_certs/{ca/ca.key → ca.key} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a5aa752898bbe2a9417fc15ec7fb1e9a55a804a03c84cef30a936206d5b97005
|
4
|
+
data.tar.gz: 89ec0c8d8ff45e4ef4892c6b2a2a5de3f108d07443f925a897e058e79987fcba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 633594b5c0010ca14c42231f8f1851bfdadd17819b61ea75f90d89c5db805d20d1a809ade265aedd432d80138965bdca18ec66819f387f69452f10d07a2ddb88
|
7
|
+
data.tar.gz: 9b4b8afaf80c0a9eebe7f7443c4fba5073c73823de87259641d373be62b9f52eb72e527d28d1dd4aca724abb487e13d1f49eff16f5ea0d528ab2ac7722522317
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
## 11.4.2
|
2
|
+
- Fixes an issue where events containing non-unicode strings could fail to serialize correctly when compression is enabled [#1169](https://github.com/logstash-plugins/logstash-output-elasticsearch/pull/1169)
|
3
|
+
|
4
|
+
## 11.4.1
|
5
|
+
- Feat: upgrade manticore (http-client) library [#1063](https://github.com/logstash-plugins/logstash-output-elasticsearch/pull/1063)
|
6
|
+
- the underlying changes include latest HttpClient (4.5.13)
|
7
|
+
- resolves an old issue with `ssl_certificate_verification => false` still doing some verification logic
|
8
|
+
|
1
9
|
## 11.4.0
|
2
10
|
- Updates ECS templates [#1062](https://github.com/logstash-plugins/logstash-output-elasticsearch/pull/1062)
|
3
11
|
- Updates v1 templates to 1.12.1 for use with Elasticsearch 7.x and 8.x
|
data/Gemfile
CHANGED
data/docs/index.asciidoc
CHANGED
@@ -293,6 +293,11 @@ index level and `monitoring` permissions at cluster level. The `monitoring`
|
|
293
293
|
permission at cluster level is necessary to perform periodic connectivity
|
294
294
|
checks.
|
295
295
|
|
296
|
+
[id="plugins-{type}s-{plugin}-handling-non-utf-8"]
|
297
|
+
==== Handling non UTF-8 data
|
298
|
+
|
299
|
+
This plugin transmits events to Elasticsearch using a JSON API, and therefore requires that all string values in events to be valid UTF-8.
|
300
|
+
When a string value on an event contains one or more byte sequences that are not valid in UTF-8, each offending byte sequence is replaced with the UTF-8 replacement character (`\uFFFD`).
|
296
301
|
|
297
302
|
[id="plugins-{type}s-{plugin}-options"]
|
298
303
|
==== Elasticsearch Output Configuration Options
|
@@ -127,6 +127,9 @@ module LogStash; module Outputs; class ElasticSearch;
|
|
127
127
|
action.map {|line| LogStash::Json.dump(line)}.join("\n") :
|
128
128
|
LogStash::Json.dump(action)
|
129
129
|
as_json << "\n"
|
130
|
+
|
131
|
+
as_json.scrub! # ensure generated JSON is valid UTF-8
|
132
|
+
|
130
133
|
if (stream_writer.pos + as_json.bytesize) > TARGET_BULK_BYTES && stream_writer.pos > 0
|
131
134
|
stream_writer.flush # ensure writer has sync'd buffers before reporting sizes
|
132
135
|
logger.debug("Sending partial bulk request for batch with one or more actions remaining.",
|
@@ -133,12 +133,9 @@ module LogStash; module Outputs; class ElasticSearch;
|
|
133
133
|
ssl_options[:keystore_password] = keystore_password.value if keystore_password
|
134
134
|
end
|
135
135
|
if !params["ssl_certificate_verification"]
|
136
|
-
logger.warn
|
137
|
-
|
138
|
-
|
139
|
-
"** WARNING ** To make sure your data is secure change :ssl_certificate_verification to true"
|
140
|
-
].join("\n")
|
141
|
-
ssl_options[:verify] = false
|
136
|
+
logger.warn "You have enabled encryption but DISABLED certificate verification, " +
|
137
|
+
"to make sure your data is secure remove `ssl_certificate_verification => false`"
|
138
|
+
ssl_options[:verify] = :disable # false accepts self-signed but still validates hostname
|
142
139
|
end
|
143
140
|
{ ssl: ssl_options }
|
144
141
|
end
|
@@ -1,6 +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.4.2'
|
4
4
|
|
5
5
|
s.licenses = ['apache-2.0']
|
6
6
|
s.summary = "Stores logs in Elasticsearch"
|
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
# Special flag to let us know this is actually a logstash plugin
|
22
22
|
s.metadata = { "logstash_plugin" => "true", "logstash_group" => "output" }
|
23
23
|
|
24
|
-
s.add_runtime_dependency "manticore", '>= 0.
|
24
|
+
s.add_runtime_dependency "manticore", '>= 0.8.0', '< 1.0.0'
|
25
25
|
s.add_runtime_dependency 'stud', ['>= 0.0.17', '~> 0.0']
|
26
26
|
s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
|
27
27
|
s.add_runtime_dependency 'logstash-mixin-ecs_compatibility_support', '~>1.0'
|
@@ -0,0 +1,31 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIFRTCCAy2gAwIBAgIBATANBgkqhkiG9w0BAQsFADBMMQswCQYDVQQGEwJQVDEL
|
3
|
+
MAkGA1UECAwCTkExDzANBgNVBAcMBkxpc2JvbjEOMAwGA1UECgwFTXlMYWIxDzAN
|
4
|
+
BgNVBAMMBlJvb3RDQTAeFw0yNDAzMTkyMjM3MTdaFw0yNTAzMTkyMjM3MTdaMEwx
|
5
|
+
CzAJBgNVBAYTAlBUMQswCQYDVQQIDAJOQTEPMA0GA1UEBwwGTGlzYm9uMQ4wDAYD
|
6
|
+
VQQKDAVNeUxhYjEPMA0GA1UEAwwGUm9vdENBMIICIjANBgkqhkiG9w0BAQEFAAOC
|
7
|
+
Ag8AMIICCgKCAgEAy1MyoBa4fXtv1eo9rkvcc2qCdn3nz6C9w63tD+w4S9wNAmCT
|
8
|
+
Nn4bLCHl6vkkXaKiZg4eIPkmdxivhiZFAq5h8PoHVYjkW5C2EP86UDX9Eeq1tjbs
|
9
|
+
nfdJo7rqujyBqXu+MetcpCR59VhHB187oOqpuFXoviwyLLwXNDnlMymgzflxa6+g
|
10
|
+
AzG9JCoZnilhgqd81IaHMe+yx81LXG78vBvtWO7iM+Gn7jcGQbASKYjmSbuM0LWf
|
11
|
+
COIe3EOxj+z3cApr+8uS1cpQrmcDeOMk6EBtFNWds4CDEW3Rhtf3zFb9pSqxyAFR
|
12
|
+
Wz0n8zJNEzBUontWya2HU90lCSxQBK7MRKVI+XT10yNND4xfMkO3Qm9fxIgk+ZsG
|
13
|
+
eDvwxJoJSGk5mKKLWXaYF89Z6PHbQj9IwJQ2bNvCbbD0kPnQm/aJfiXiB7gfUIgr
|
14
|
+
X+itbWl1j3E8vS4piboAOwMLQHywaA0wFd4HpouiNjX8hPCaZ+l+T1z/JY98Luy0
|
15
|
+
eAJhEC/kx8YCya/T/JrlWtZAYEmQWJjLWmifqfFSMJuCfREAGiNGgZ2GFjdAOKmD
|
16
|
+
CZKAVnGvTrhEWvVu38yXcwmY9/nfmZLA92T+P/PDghlO+WbApbcXIwOHBgv/Nfsn
|
17
|
+
RzozMw8sR2LvdCPOavcQ0iuKvg7zrA3PzVhF9iSD1lfzIokr0sEBStgKMncCAwEA
|
18
|
+
AaMyMDAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoVp0nHjq6mJ/UGuFhnSK
|
19
|
+
7yjbPyswDQYJKoZIhvcNAQELBQADggIBADeI0gRfzF5zyhCCmtlA44L1fo3BEYtm
|
20
|
+
0Deq2W6bsW9zakYT7fivCUbt0VtS0jzhAlbaLfksJk+Emg+kpsy/CdFr8nk9jlpN
|
21
|
+
XJMKwjQIVGYDDlJsP9VDw2m+HhUugEpx09QCREaCWCDtobE9bd42VloPd0u3VWZx
|
22
|
+
u5rSrZCy5wjFeq3dPEFPyDTfV6p1kXkwy9pdG3ww0rw0dqj5OqcGhLyG8b7q7LLP
|
23
|
+
aFVuwjnutrBJtDNOsvbD/dyybQVj3hF1IpVZLwoFQ3ji43/X3NJ5jdo/WrwwdwbH
|
24
|
+
NE6YxNlsIrql4sJFeHzNukTxcC5wHcOLtc6E6dhe7uK+5rRD75+odz85rPLsBTPt
|
25
|
+
zje8OWyxO1cGol7inpKUsO9ITFQdDC9iyRjvDRouwneT+XeVwW6BmAKg4DvXdLtQ
|
26
|
+
oQNLlMbbZWskvWoI4amXwSpzWmn4mRK3e4IPWFju64QRvkEExFynvC69jeih5Llh
|
27
|
+
JU3OjLobG4wKOQHB7w1UjiPJNsxGB0P1zug6ztTBLjsvJoxdJuIGkCsI7g12cKNR
|
28
|
+
PbXp8453klofFpMNGlCP8dns92Qu20pPvYJcWiC9k42nYu3FHDMbAfSrFU90RNS6
|
29
|
+
hRWkpXZOMIY1GdudgsxanDtJgFRbkPzwNkMcBQ1538f9U4MrJ9vPsuKx4bYbZ//8
|
30
|
+
pIe/z3b1V9zV
|
31
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
set -e
|
4
|
+
cd "$(dirname "$0")"
|
5
|
+
|
6
|
+
openssl x509 -x509toreq -copy_extensions copyall -in ca.crt -signkey ca.key -out ca.csr
|
7
|
+
openssl x509 -req -copy_extensions copyall -days 365 -in ca.csr -set_serial 0x01 -signkey ca.key -out ca.crt && rm ca.csr
|
8
|
+
|
9
|
+
openssl x509 -x509toreq -copy_extensions copyall -in test.crt -signkey test.key -out test.csr
|
10
|
+
openssl x509 -req -copy_extensions copyall -days 365 -in test.csr -set_serial 0x01 -CA ca.crt -CAkey ca.key -out test.crt && rm test.csr
|
11
|
+
openssl pkcs12 -export -inkey test.key -in test.crt -passout "pass:1234567890" -out test.p12
|
@@ -1,7 +1,7 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
2
|
+
MIIF1jCCA76gAwIBAgIBATANBgkqhkiG9w0BAQsFADBMMQswCQYDVQQGEwJQVDEL
|
3
3
|
MAkGA1UECAwCTkExDzANBgNVBAcMBkxpc2JvbjEOMAwGA1UECgwFTXlMYWIxDzAN
|
4
|
-
|
4
|
+
BgNVBAMMBlJvb3RDQTAeFw0yNDAzMTkyMjM3MTdaFw0yNTAzMTkyMjM3MTdaMFMx
|
5
5
|
CzAJBgNVBAYTAlBUMQswCQYDVQQIDAJOQTEPMA0GA1UEBwwGTGlzYm9uMQ4wDAYD
|
6
6
|
VQQKDAVNeUxhYjEWMBQGA1UEAwwNZWxhc3RpY3NlYXJjaDCCAiIwDQYJKoZIhvcN
|
7
7
|
AQEBBQADggIPADCCAgoCggIBAMYhP2zPOE3ke9naeK+cIPNV91htuoGGARs+mlY/
|
@@ -15,22 +15,20 @@ bFMKspGHnytQZF+a+mc5H33G9HiPP3jZE2JjrWlOay+j6ImylMgjcZmHAgaUe3ET
|
|
15
15
|
tyczoQ5/L5BNiyA2h+1TU8jWicNDtl1+CtOsgEVBBHA6p/IHhsHbNZWPrYtIO9mh
|
16
16
|
hiJw1R5yrITXnjZY0rObITwyt/e6Sc3YnoQfsSGaLJEG0aDc0RALAhgzj+RY8086
|
17
17
|
2RKOyfdw1sw1RmJKdCf+dOzhPyDpvauvCxrL8UZQTzcBs+qpxOWnZFRWeNsLwoDn
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
VTrvnAM1L3LwqtYQYfUWUHYZFYdvh8layA2ImNE7yx/9wIIkw/L1j9m71Upi6WKR
|
35
|
-
FKbYFqzgpWksa+zZ2RYYplUAxq0wYw==
|
18
|
+
6JXXAgMBAAGjgbswgbgwCQYDVR0TBAIwADARBglghkgBhvhCAQEEBAMCBkAwMwYJ
|
19
|
+
YIZIAYb4QgENBCYWJE9wZW5TU0wgR2VuZXJhdGVkIFNlcnZlciBDZXJ0aWZpY2F0
|
20
|
+
ZTAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYE
|
21
|
+
FG+/PTIbDpPPZTFsEsAbLNUy1wxQMB8GA1UdIwQYMBaAFKFadJx46upif1BrhYZ0
|
22
|
+
iu8o2z8rMA0GCSqGSIb3DQEBCwUAA4ICAQB6Fptgev/wPHn36lamR9RCBpqvh/Xg
|
23
|
+
4nSnUfT1EVkEI7vUKkC/+/XeRTfnc14Yclo3uiYBY7QM953FhXOmlH0Rx1wwZSME
|
24
|
+
ZzyO+1TWNVR2QI7/MhpXdKpqHhNLNTYKFa602ZTA5NXa9XDJ8T3kjbuAKiNwcuu7
|
25
|
+
RzRK0o3KOWe0uohuI6bgcpgpKqcxrbtUkrPOWAn+XK7JQVSEV1kst4uDr1S+041c
|
26
|
+
T+NHFQarDXw5g/Y0pHnU42dPyDvT/RrcBbzbe7qylFTbjKro/uFqPAayHlLMnGZp
|
27
|
+
ZthGAPJJ0pDzBBxGtUmwOnat/HKWe2UN/A3Xqmy0Za7adhrYGj0IaZ0SNblNYDKy
|
28
|
+
OjWtfOwLQrD9NEIhBXBE3KS5uyXP8kZESnHtIN0b7SMyP7lUxTQ/Rh8U7S6QD9AI
|
29
|
+
gc+AfBx8UO+fdW3Z4VK+DU0NGRP+127w0yiEz1OtfS87dWBQq+kk2Hlc9TfFeG0b
|
30
|
+
rckM4v54X8uTlnNfPo+RYRkMAXB/fnx2vVIyxTxFPo4bAnTFA6vnIz8rrRO+Vmh3
|
31
|
+
oOclhE+ZemZ3BEC+Tgpvb4XD8pvDLnNOYr8tuDjN9jNNDofxplbsjI44wnb1v3HX
|
32
|
+
M8Xe3P1WfqpWZniRmtVi/CWjkPy2JeC6zW4dn7JdkfEFHGsHQZrEZyrVrtVFPRFo
|
33
|
+
hbgPGNWCxOhWzg==
|
36
34
|
-----END CERTIFICATE-----
|
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
|
@@ -10,10 +10,12 @@ end
|
|
10
10
|
|
11
11
|
describe "indexing with http_compression turned on", :integration => true do
|
12
12
|
let(:event) { LogStash::Event.new("message" => "Hello World!", "type" => type) }
|
13
|
+
let(:event_with_invalid_utf_8_bytes) { LogStash::Event.new("message" => "Message from spacecraft which contains \xAC invalid \xD7 byte sequences.", "type" => type) }
|
13
14
|
let(:index) { 10.times.collect { rand(10).to_s }.join("") }
|
14
15
|
let(:type) { ESHelper.es_version_satisfies?("< 7") ? "doc" : "_doc" }
|
15
16
|
let(:event_count) { 10000 + rand(500) }
|
16
|
-
|
17
|
+
# mix the events with valid and invalid UTF-8 payloads
|
18
|
+
let(:events) { event_count.times.map { |i| i%3 == 0 ? event : event_with_invalid_utf_8_bytes }.to_a }
|
17
19
|
let(:config) {
|
18
20
|
{
|
19
21
|
"hosts" => get_host_port,
|
@@ -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,10 +56,22 @@ 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
|
+
def curl_and_get_json_response(url, method: :get); require 'open3'
|
64
|
+
begin
|
65
|
+
stdout, status = Open3.capture2("curl #{curl_opts} -X #{method.to_s.upcase} -k #{url}")
|
66
|
+
rescue Errno::ENOENT
|
67
|
+
fail "curl not available, make sure curl binary is installed and available on $PATH"
|
68
|
+
end
|
69
|
+
|
70
|
+
if status.success?
|
71
|
+
LogStash::Json.load(stdout)
|
72
|
+
else
|
73
|
+
fail "curl failed: #{status}\n #{stdout}"
|
74
|
+
end
|
62
75
|
end
|
63
76
|
|
64
77
|
before do
|
@@ -70,16 +83,16 @@ describe "indexing" do
|
|
70
83
|
it "ships events" do
|
71
84
|
subject.multi_receive(events)
|
72
85
|
|
73
|
-
|
86
|
+
curl_and_get_json_response "#{es_url}/_refresh", method: :post
|
74
87
|
|
75
|
-
|
76
|
-
result = LogStash::Json.load(response.body)
|
88
|
+
result = curl_and_get_json_response "#{index_url}/_count?q=*"
|
77
89
|
cur_count = result["count"]
|
78
90
|
expect(cur_count).to eq(event_count)
|
79
91
|
|
80
|
-
|
81
|
-
result = LogStash::Json.load(response.body)
|
92
|
+
result = curl_and_get_json_response "#{index_url}/_search?q=*&size=1000"
|
82
93
|
result["hits"]["hits"].each do |doc|
|
94
|
+
expect(doc["_source"]["message"]).to eq(message)
|
95
|
+
|
83
96
|
if ESHelper.es_version_satisfies?("< 8")
|
84
97
|
expect(doc["_type"]).to eq(type)
|
85
98
|
else
|
@@ -132,7 +145,7 @@ describe "indexing" do
|
|
132
145
|
describe "a secured indexer", :secure_integration => true do
|
133
146
|
let(:user) { "simpleuser" }
|
134
147
|
let(:password) { "abc123" }
|
135
|
-
let(:cacert) { "spec/fixtures/test_certs/
|
148
|
+
let(:cacert) { "spec/fixtures/test_certs/ca.crt" }
|
136
149
|
let(:es_url) {"https://elasticsearch:9200"}
|
137
150
|
let(:config) do
|
138
151
|
{
|
@@ -140,42 +153,73 @@ describe "indexing" do
|
|
140
153
|
"user" => user,
|
141
154
|
"password" => password,
|
142
155
|
"ssl" => true,
|
143
|
-
"cacert" =>
|
156
|
+
"cacert" => cacert,
|
144
157
|
"index" => index
|
145
158
|
}
|
146
159
|
end
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
160
|
+
|
161
|
+
let(:curl_opts) { "-u #{user}:#{password}" }
|
162
|
+
|
163
|
+
if ENV['ES_SSL_KEY_INVALID'] == 'true' # test_invalid.crt (configured in ES) has SAN: DNS:localhost
|
164
|
+
# javax.net.ssl.SSLPeerUnverifiedException: Host name 'elasticsearch' does not match the certificate subject ...
|
165
|
+
|
166
|
+
context "when no keystore nor ca cert set and verification is disabled" do
|
167
|
+
let(:config) do
|
168
|
+
super().tap { |config| config.delete('cacert') }.merge('ssl_certificate_verification' => false)
|
169
|
+
end
|
170
|
+
|
171
|
+
include_examples("an indexer", true)
|
172
|
+
end
|
173
|
+
|
174
|
+
context "when keystore is set and verification is disabled" do
|
175
|
+
let(:config) do
|
176
|
+
super().merge(
|
177
|
+
'ssl_certificate_verification' => false,
|
178
|
+
'keystore' => 'spec/fixtures/test_certs/test.p12',
|
179
|
+
'keystore_password' => '1234567890'
|
180
|
+
)
|
181
|
+
end
|
182
|
+
|
183
|
+
include_examples("an indexer", true)
|
184
|
+
end
|
185
|
+
|
186
|
+
context "when keystore has self-signed cert and verification is disabled" do
|
187
|
+
let(:config) do
|
188
|
+
super().tap { |config| config.delete('cacert') }.merge(
|
189
|
+
'ssl_certificate_verification' => false,
|
190
|
+
'keystore' => 'spec/fixtures/test_certs/test_self_signed.p12',
|
191
|
+
'keystore_password' => '1234567890'
|
192
|
+
)
|
193
|
+
end
|
194
|
+
|
195
|
+
include_examples("an indexer", true)
|
196
|
+
end
|
197
|
+
|
198
|
+
else
|
199
|
+
|
200
|
+
it_behaves_like("an indexer", true)
|
201
|
+
|
202
|
+
describe "with a password requiring escaping" do
|
203
|
+
let(:user) { "f@ncyuser" }
|
204
|
+
let(:password) { "ab%12#" }
|
205
|
+
|
206
|
+
include_examples("an indexer", true)
|
176
207
|
end
|
177
|
-
|
178
|
-
|
208
|
+
|
209
|
+
describe "with a user/password requiring escaping in the URL" do
|
210
|
+
let(:config) do
|
211
|
+
{
|
212
|
+
"hosts" => ["https://#{CGI.escape(user)}:#{CGI.escape(password)}@elasticsearch:9200"],
|
213
|
+
"ssl" => true,
|
214
|
+
"cacert" => "spec/fixtures/test_certs/test.crt",
|
215
|
+
"index" => index
|
216
|
+
}
|
217
|
+
end
|
218
|
+
|
219
|
+
include_examples("an indexer", true)
|
220
|
+
end
|
221
|
+
|
179
222
|
end
|
223
|
+
|
180
224
|
end
|
181
225
|
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
|
@@ -243,12 +243,14 @@ describe LogStash::Outputs::ElasticSearch::HttpClient do
|
|
243
243
|
end
|
244
244
|
end
|
245
245
|
|
246
|
-
context "with
|
247
|
-
let(:
|
248
|
-
let(:
|
246
|
+
context "with multiple messages" do
|
247
|
+
let(:message_head) { "Spacecraft message" }
|
248
|
+
let(:message_tail) { "byte sequence" }
|
249
|
+
let(:invalid_utf_8_message) { "contains invalid \xAC" }
|
249
250
|
let(:actions) { [
|
250
|
-
["index", {:_id=>nil, :_index=>"logstash"}, {"message"=>
|
251
|
-
["index", {:_id=>nil, :_index=>"logstash"}, {"message"=>
|
251
|
+
["index", {:_id=>nil, :_index=>"logstash"}, {"message"=> message_head}],
|
252
|
+
["index", {:_id=>nil, :_index=>"logstash"}, {"message"=> invalid_utf_8_message}],
|
253
|
+
["index", {:_id=>nil, :_index=>"logstash"}, {"message"=> message_tail}],
|
252
254
|
]}
|
253
255
|
it "executes one bulk_send operation" do
|
254
256
|
allow(subject).to receive(:join_bulk_responses)
|
@@ -258,7 +260,7 @@ describe LogStash::Outputs::ElasticSearch::HttpClient do
|
|
258
260
|
|
259
261
|
context "if one exceeds TARGET_BULK_BYTES" do
|
260
262
|
let(:target_bulk_bytes) { LogStash::Outputs::ElasticSearch::TARGET_BULK_BYTES }
|
261
|
-
let(:
|
263
|
+
let(:message_head) { "a" * (target_bulk_bytes + 1) }
|
262
264
|
it "executes two bulk_send operations" do
|
263
265
|
allow(subject).to receive(:join_bulk_responses)
|
264
266
|
expect(subject).to receive(:bulk_send).twice
|
@@ -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 eq(:enabled => true, :verify =>
|
36
|
+
expect(args[:ssl]).to eq(:enabled => true, :verify => :disable)
|
37
37
|
end.and_return(manticore_double)
|
38
38
|
|
39
39
|
subject.register
|
metadata
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-output-elasticsearch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 11.4.
|
4
|
+
version: 11.4.2
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
15
15
|
requirements:
|
16
16
|
- - ">="
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: 0.
|
18
|
+
version: 0.8.0
|
19
19
|
- - "<"
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 1.0.0
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.
|
29
|
+
version: 0.8.0
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 1.0.0
|
@@ -244,10 +244,18 @@ files:
|
|
244
244
|
- spec/fixtures/template-with-policy-es6x.json
|
245
245
|
- spec/fixtures/template-with-policy-es7x.json
|
246
246
|
- spec/fixtures/template-with-policy-es8x.json
|
247
|
-
- spec/fixtures/test_certs/ca
|
248
|
-
- spec/fixtures/test_certs/ca
|
247
|
+
- spec/fixtures/test_certs/ca.crt
|
248
|
+
- spec/fixtures/test_certs/ca.key
|
249
|
+
- spec/fixtures/test_certs/renew.sh
|
249
250
|
- spec/fixtures/test_certs/test.crt
|
250
251
|
- spec/fixtures/test_certs/test.key
|
252
|
+
- spec/fixtures/test_certs/test.p12
|
253
|
+
- spec/fixtures/test_certs/test_invalid.crt
|
254
|
+
- spec/fixtures/test_certs/test_invalid.key
|
255
|
+
- spec/fixtures/test_certs/test_invalid.p12
|
256
|
+
- spec/fixtures/test_certs/test_self_signed.crt
|
257
|
+
- spec/fixtures/test_certs/test_self_signed.key
|
258
|
+
- spec/fixtures/test_certs/test_self_signed.p12
|
251
259
|
- spec/integration/outputs/compressed_indexing_spec.rb
|
252
260
|
- spec/integration/outputs/create_spec.rb
|
253
261
|
- spec/integration/outputs/data_stream_spec.rb
|
@@ -319,10 +327,18 @@ test_files:
|
|
319
327
|
- spec/fixtures/template-with-policy-es6x.json
|
320
328
|
- spec/fixtures/template-with-policy-es7x.json
|
321
329
|
- spec/fixtures/template-with-policy-es8x.json
|
322
|
-
- spec/fixtures/test_certs/ca
|
323
|
-
- spec/fixtures/test_certs/ca
|
330
|
+
- spec/fixtures/test_certs/ca.crt
|
331
|
+
- spec/fixtures/test_certs/ca.key
|
332
|
+
- spec/fixtures/test_certs/renew.sh
|
324
333
|
- spec/fixtures/test_certs/test.crt
|
325
334
|
- spec/fixtures/test_certs/test.key
|
335
|
+
- spec/fixtures/test_certs/test.p12
|
336
|
+
- spec/fixtures/test_certs/test_invalid.crt
|
337
|
+
- spec/fixtures/test_certs/test_invalid.key
|
338
|
+
- spec/fixtures/test_certs/test_invalid.p12
|
339
|
+
- spec/fixtures/test_certs/test_self_signed.crt
|
340
|
+
- spec/fixtures/test_certs/test_self_signed.key
|
341
|
+
- spec/fixtures/test_certs/test_self_signed.p12
|
326
342
|
- spec/integration/outputs/compressed_indexing_spec.rb
|
327
343
|
- spec/integration/outputs/create_spec.rb
|
328
344
|
- spec/integration/outputs/data_stream_spec.rb
|
@@ -1,32 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
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
-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
-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
-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
-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
-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
-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
-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
-
6L4sMiy8FzQ55TMpoM35cWuvoAMxvSQqGZ4pYYKnfNSGhzHvssfNS1xu/Lwb7Vju
|
11
|
-
4jPhp+43BkGwEimI5km7jNC1nwjiHtxDsY/s93AKa/vLktXKUK5nA3jjJOhAbRTV
|
12
|
-
nbOAgxFt0YbX98xW/aUqscgBUVs9J/MyTRMwVKJ7Vsmth1PdJQksUASuzESlSPl0
|
13
|
-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
-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
-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
-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
-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
-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
-
dIrvKNs/KzAfBgNVHSMEGDAWgBShWnSceOrqYn9Qa4WGdIrvKNs/KzAPBgNVHRMB
|
20
|
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
31
|
-
nIg9fQPvVw+fIHACZQ==
|
32
|
-
-----END CERTIFICATE-----
|
File without changes
|