logstash-output-opensearch 1.3.0-java → 2.0.3-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
- checksums.yaml.gz.sig +0 -0
- data/COMPATIBILITY.md +5 -3
- data/DEVELOPER_GUIDE.md +6 -1
- data/MAINTAINERS.md +15 -64
- data/README.md +57 -35
- data/RELEASING.md +5 -1
- data/docs/building_custom_docker_images.md +79 -0
- data/docs/ecs_compatibility.md +42 -0
- data/lib/logstash/outputs/opensearch/http_client/manticore_adapter.rb +47 -14
- data/lib/logstash/outputs/opensearch/http_client/pool.rb +11 -2
- data/lib/logstash/outputs/opensearch/http_client.rb +28 -6
- data/lib/logstash/outputs/opensearch/http_client_builder.rb +4 -2
- data/lib/logstash/outputs/opensearch/template_manager.rb +6 -5
- data/lib/logstash/outputs/opensearch/templates/ecs-disabled/1x_index.json +66 -0
- data/lib/logstash/outputs/opensearch/templates/ecs-disabled/2x_index.json +66 -0
- data/lib/logstash/outputs/opensearch/templates/ecs-disabled/7x_index.json +66 -0
- data/lib/logstash/outputs/opensearch/templates/ecs-v8/1x_index.json +5254 -0
- data/lib/logstash/outputs/opensearch/templates/ecs-v8/2x_index.json +5254 -0
- data/lib/logstash/outputs/opensearch/templates/ecs-v8/7x_index.json +5254 -0
- data/lib/logstash/outputs/opensearch.rb +7 -0
- data/lib/logstash/plugin_mixins/opensearch/common.rb +1 -0
- data/logstash-output-opensearch.gemspec +2 -2
- data/spec/integration/outputs/index_spec.rb +3 -2
- data/spec/opensearch_spec_helper.rb +9 -0
- data/spec/unit/outputs/opensearch/http_client/manticore_adapter_spec.rb +72 -14
- data/spec/unit/outputs/opensearch/http_client_spec.rb +20 -0
- data/spec/unit/outputs/opensearch/template_manager_spec.rb +8 -20
- data/spec/unit/outputs/opensearch_spec.rb +24 -0
- data.tar.gz.sig +0 -0
- metadata +32 -30
- metadata.gz.sig +0 -0
|
@@ -199,6 +199,13 @@ class LogStash::Outputs::OpenSearch < LogStash::Outputs::Base
|
|
|
199
199
|
# Set which ingest pipeline you wish to execute for an event. You can also use event dependent configuration
|
|
200
200
|
# here like `pipeline => "%{INGEST_PIPELINE}"`
|
|
201
201
|
config :pipeline, :validate => :string, :default => nil
|
|
202
|
+
|
|
203
|
+
# When set to true, use legacy templates via the _template API
|
|
204
|
+
# When false, use index templates using the _index_template API
|
|
205
|
+
config :legacy_template, :validate => :boolean, :default => true
|
|
206
|
+
|
|
207
|
+
# The OpenSearch server major version to use when it's not available from the Healthcheck endpoint.
|
|
208
|
+
config :default_server_major_version, :validate => :number
|
|
202
209
|
|
|
203
210
|
attr_reader :client
|
|
204
211
|
attr_reader :default_index
|
|
@@ -87,6 +87,7 @@ module LogStash; module PluginMixins; module OpenSearch
|
|
|
87
87
|
|
|
88
88
|
def discover_cluster_uuid
|
|
89
89
|
return unless defined?(plugin_metadata)
|
|
90
|
+
return if params && params['auth_type'] && params['auth_type']['service_name'] == "aoss" # AOSS doesn't support GET /
|
|
90
91
|
cluster_info = client.get('/')
|
|
91
92
|
plugin_metadata.set(:cluster_uuid, cluster_info['cluster_uuid'])
|
|
92
93
|
rescue => e
|
|
@@ -11,7 +11,7 @@ signing_key_path = "gem-private_key.pem"
|
|
|
11
11
|
|
|
12
12
|
Gem::Specification.new do |s|
|
|
13
13
|
s.name = 'logstash-output-opensearch'
|
|
14
|
-
s.version = '
|
|
14
|
+
s.version = '2.0.3'
|
|
15
15
|
|
|
16
16
|
s.licenses = ['Apache-2.0']
|
|
17
17
|
s.summary = "Stores logs in OpenSearch"
|
|
@@ -45,7 +45,7 @@ Gem::Specification.new do |s|
|
|
|
45
45
|
s.add_runtime_dependency 'stud', ['>= 0.0.17', '~> 0.0']
|
|
46
46
|
s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
|
|
47
47
|
s.add_runtime_dependency 'logstash-mixin-ecs_compatibility_support', '~>1.0'
|
|
48
|
-
s.add_runtime_dependency 'aws-sdk',
|
|
48
|
+
s.add_runtime_dependency 'aws-sdk', '~> 3'
|
|
49
49
|
s.add_runtime_dependency 'json', '>= 2.3.0', '~> 2'
|
|
50
50
|
|
|
51
51
|
s.add_development_dependency 'logstash-codec-plain'
|
|
@@ -140,7 +140,7 @@ describe "indexing" do
|
|
|
140
140
|
end
|
|
141
141
|
describe "a secured indexer", :secure_integration => true do
|
|
142
142
|
let(:user) { "admin" }
|
|
143
|
-
let(:password) {
|
|
143
|
+
let(:password) { OpenSearchHelper.admin_password }
|
|
144
144
|
let(:opensearch_url) {"https://integration:9200"}
|
|
145
145
|
let(:config) do
|
|
146
146
|
{
|
|
@@ -172,7 +172,8 @@ describe "indexing" do
|
|
|
172
172
|
:auth_type => {
|
|
173
173
|
"type"=>"basic",
|
|
174
174
|
"user" => "admin",
|
|
175
|
-
"password" =>
|
|
175
|
+
"password" => OpenSearchHelper.admin_password
|
|
176
|
+
}
|
|
176
177
|
} }
|
|
177
178
|
let(:user) {options[:auth_type]["user"]}
|
|
178
179
|
let(:password) {options[:auth_type]["password"]}
|
|
@@ -72,6 +72,15 @@ module OpenSearchHelper
|
|
|
72
72
|
end
|
|
73
73
|
end
|
|
74
74
|
|
|
75
|
+
# set admin password based on version
|
|
76
|
+
def self.admin_password
|
|
77
|
+
if check_version?('< 2.12.0') || check_version?('> 7')
|
|
78
|
+
"admin"
|
|
79
|
+
else
|
|
80
|
+
"myStrongPassword123!"
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
75
84
|
def clean(client)
|
|
76
85
|
client.indices.delete_template(:name => "*")
|
|
77
86
|
client.indices.delete_index_template(:name => "logstash*") rescue nil
|
|
@@ -61,31 +61,89 @@ describe LogStash::Outputs::OpenSearch::HttpClient::ManticoreAdapter do
|
|
|
61
61
|
"aws_access_key_id"=>"AAAAAAAAAAAAAAAAAAAA",
|
|
62
62
|
"aws_secret_access_key"=>"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"}
|
|
63
63
|
} }
|
|
64
|
+
let(:options_svc) { {
|
|
65
|
+
:auth_type => {
|
|
66
|
+
"type"=>"aws_iam",
|
|
67
|
+
"aws_access_key_id"=>"AAAAAAAAAAAAAAAAAAAA",
|
|
68
|
+
"aws_secret_access_key"=>"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
|
69
|
+
"service_name"=>"svc_test"}
|
|
70
|
+
} }
|
|
64
71
|
subject { described_class.new(logger, options) }
|
|
65
72
|
let(:uri) { ::LogStash::Util::SafeURI.new("http://localhost:9200") }
|
|
66
|
-
let(:sign_aws_request) { }
|
|
67
73
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
74
|
+
let(:expected_uri) {
|
|
75
|
+
expected_uri = uri.clone
|
|
76
|
+
expected_uri.path = "/"
|
|
77
|
+
expected_uri
|
|
78
|
+
}
|
|
71
79
|
|
|
72
|
-
|
|
80
|
+
let(:resp) {
|
|
73
81
|
resp = double("response")
|
|
74
82
|
allow(resp).to receive(:call)
|
|
75
83
|
allow(resp).to receive(:code).and_return(200)
|
|
76
|
-
|
|
84
|
+
resp
|
|
85
|
+
}
|
|
77
86
|
|
|
78
|
-
|
|
79
|
-
|
|
87
|
+
context 'with a signer' do
|
|
88
|
+
let(:sign_aws_request) { }
|
|
80
89
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
90
|
+
it "should validate AWS IAM credentials initialization" do
|
|
91
|
+
expect(subject.aws_iam_auth_initialization(options)).not_to be_nil
|
|
92
|
+
expect(subject.get_service_name).to eq("es")
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
it "should validate AWS IAM service_name config" do
|
|
96
|
+
expect(subject.aws_iam_auth_initialization(options_svc)).not_to be_nil
|
|
97
|
+
expect(subject.get_service_name).to eq("svc_test")
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
it "should validate signing aws request" do
|
|
101
|
+
allow(subject).to receive(:sign_aws_request).with(any_args).and_return(sign_aws_request)
|
|
102
|
+
|
|
103
|
+
expect(subject.manticore).to receive(:get).
|
|
104
|
+
with(expected_uri.to_s, {
|
|
105
|
+
:headers => {"content-type"=> "application/json"}
|
|
106
|
+
}
|
|
107
|
+
).and_return resp
|
|
108
|
+
|
|
109
|
+
expect(subject).to receive(:sign_aws_request)
|
|
110
|
+
subject.perform_request(uri, :get, "/")
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
context 'sign_aws_request' do
|
|
115
|
+
it 'handles UTF-8' do
|
|
116
|
+
encoded_body = body = "boîte de réception"
|
|
117
|
+
expect_any_instance_of(Aws::Sigv4::Signer).to receive(:sign_request).with(hash_including({
|
|
118
|
+
body: body,
|
|
119
|
+
})).and_return(
|
|
120
|
+
double(headers: {})
|
|
121
|
+
)
|
|
122
|
+
expect(subject.manticore).to receive(:post).
|
|
123
|
+
with(expected_uri.to_s, {
|
|
124
|
+
:body => encoded_body,
|
|
125
|
+
:headers => {"content-type"=> "application/json"}
|
|
126
|
+
}
|
|
85
127
|
).and_return resp
|
|
128
|
+
subject.perform_request(uri, :post, "/", { body: encoded_body })
|
|
129
|
+
end
|
|
86
130
|
|
|
87
|
-
|
|
88
|
-
|
|
131
|
+
it 'encodes body before signing to match manticore adapter encoding' do
|
|
132
|
+
body = "boîte de réception"
|
|
133
|
+
encoded_body = body.encode("ISO-8859-1")
|
|
134
|
+
expect_any_instance_of(Aws::Sigv4::Signer).to receive(:sign_request).with(hash_including({
|
|
135
|
+
body: body,
|
|
136
|
+
})).and_return(
|
|
137
|
+
double(headers: {})
|
|
138
|
+
)
|
|
139
|
+
expect(subject.manticore).to receive(:post).
|
|
140
|
+
with(expected_uri.to_s, {
|
|
141
|
+
:body => encoded_body,
|
|
142
|
+
:headers => {"content-type"=> "application/json"}
|
|
143
|
+
}
|
|
144
|
+
).and_return resp
|
|
145
|
+
subject.perform_request(uri, :post, "/", { body: encoded_body })
|
|
146
|
+
end
|
|
89
147
|
end
|
|
90
148
|
end
|
|
91
149
|
|
|
@@ -162,6 +162,26 @@ describe LogStash::Outputs::OpenSearch::HttpClient do
|
|
|
162
162
|
end
|
|
163
163
|
end
|
|
164
164
|
|
|
165
|
+
describe "legacy_template" do
|
|
166
|
+
let(:template_name) { "logstash" }
|
|
167
|
+
let(:template) { {} }
|
|
168
|
+
let(:get_response) {
|
|
169
|
+
double("response", :body => {}, :code => 404)
|
|
170
|
+
}
|
|
171
|
+
[true, false].each do |legacy_template|
|
|
172
|
+
context "when legacy_template => #{legacy_template}" do
|
|
173
|
+
let(:base_options) { super().merge(:client_settings => {:legacy_template => legacy_template}) }
|
|
174
|
+
subject { described_class.new(base_options) }
|
|
175
|
+
endpoint = legacy_template ? "_template" : "_index_template"
|
|
176
|
+
it "should call template_endpoint #{endpoint}" do
|
|
177
|
+
expect(subject.pool).to receive(:head).with("/#{endpoint}/#{template_name}").and_return(get_response)
|
|
178
|
+
expect(subject.pool).to receive(:put).with("/#{endpoint}/#{template_name}", nil, anything).and_return(get_response)
|
|
179
|
+
subject.template_install(template_name, template)
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
|
|
165
185
|
describe "join_bulk_responses" do
|
|
166
186
|
subject { described_class.new(base_options) }
|
|
167
187
|
|
|
@@ -13,27 +13,15 @@ require "logstash/outputs/opensearch/template_manager"
|
|
|
13
13
|
describe LogStash::Outputs::OpenSearch::TemplateManager do
|
|
14
14
|
|
|
15
15
|
describe ".default_template_path" do
|
|
16
|
-
[1, 2].each do |major_version|
|
|
17
|
-
context "when ECS is disabled with OpenSearch #{major_version}.x" do
|
|
18
|
-
it 'resolves' do
|
|
19
|
-
expect(described_class.default_template_path(major_version)).to end_with("/templates/ecs-disabled/#{major_version}x.json")
|
|
20
|
-
end
|
|
21
|
-
it 'resolves' do
|
|
22
|
-
expect(described_class.default_template_path(major_version, :disabled)).to end_with("/templates/ecs-disabled/#{major_version}x.json")
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
16
|
[7, 1, 2].each do |major_version|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
it 'resolves' do
|
|
36
|
-
expect(described_class.default_template_path(major_version, :v8)).to end_with("/templates/ecs-v8/#{major_version}x.json")
|
|
17
|
+
[:disabled, :v1, :v8].each do |ecs_ver|
|
|
18
|
+
[true, false].each do |legacy_template|
|
|
19
|
+
context "when ECS is #{ecs_ver} with OpenSearch #{major_version}.x legacy_template:#{legacy_template}" do
|
|
20
|
+
suffix = legacy_template ? "" : "_index"
|
|
21
|
+
it 'resolves' do
|
|
22
|
+
expect(described_class.default_template_path(major_version, ecs_ver, legacy_template)).to end_with("/templates/ecs-#{ecs_ver}/#{major_version}x#{suffix}.json")
|
|
23
|
+
end
|
|
24
|
+
end
|
|
37
25
|
end
|
|
38
26
|
end
|
|
39
27
|
end
|
|
@@ -776,6 +776,30 @@ describe LogStash::Outputs::OpenSearch do
|
|
|
776
776
|
expect(logger).to have_received(:error).with(/Unable to retrieve OpenSearch cluster uuid/i, anything)
|
|
777
777
|
end
|
|
778
778
|
|
|
779
|
+
context 'with iam auth' do
|
|
780
|
+
context 'es' do
|
|
781
|
+
let(:options) { { 'hosts' => '127.0.0.1:9999', 'auth_type' => { 'service_name' => 'es' } } }
|
|
782
|
+
it "logs inability to retrieve uuid" do
|
|
783
|
+
allow(subject).to receive(:install_template)
|
|
784
|
+
subject.register
|
|
785
|
+
subject.send :wait_for_successful_connection
|
|
786
|
+
|
|
787
|
+
expect(logger).to have_received(:error).with(/Unable to retrieve OpenSearch cluster uuid/i, anything)
|
|
788
|
+
end
|
|
789
|
+
end
|
|
790
|
+
|
|
791
|
+
context 'aoss' do
|
|
792
|
+
let(:options) { { 'hosts' => '127.0.0.1:9999', 'auth_type' => { 'service_name' => 'aoss' } } }
|
|
793
|
+
it "does not attempt to retrieve uuid" do
|
|
794
|
+
allow(subject).to receive(:install_template)
|
|
795
|
+
subject.register
|
|
796
|
+
subject.send :wait_for_successful_connection
|
|
797
|
+
|
|
798
|
+
expect(logger).to_not have_received(:error)
|
|
799
|
+
end
|
|
800
|
+
end
|
|
801
|
+
end
|
|
802
|
+
|
|
779
803
|
it "logs template install failure" do
|
|
780
804
|
allow(subject).to receive(:discover_cluster_uuid)
|
|
781
805
|
subject.register
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: logstash-output-opensearch
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.3
|
|
5
5
|
platform: java
|
|
6
6
|
authors:
|
|
7
7
|
- Elastic
|
|
@@ -11,9 +11,9 @@ bindir: bin
|
|
|
11
11
|
cert_chain:
|
|
12
12
|
- |
|
|
13
13
|
-----BEGIN CERTIFICATE-----
|
|
14
|
-
|
|
14
|
+
MIIDfDCCAmSgAwIBAgIBATANBgkqhkiG9w0BAQsFADBCMRMwEQYDVQQDDApvcGVu
|
|
15
15
|
c2VhcmNoMRYwFAYKCZImiZPyLGQBGRYGYW1hem9uMRMwEQYKCZImiZPyLGQBGRYD
|
|
16
|
-
|
|
16
|
+
Y29tMB4XDTI0MDcyNjIzMjIyN1oXDTI1MDcyNjIzMjIyN1owQjETMBEGA1UEAwwK
|
|
17
17
|
b3BlbnNlYXJjaDEWMBQGCgmSJomT8ixkARkWBmFtYXpvbjETMBEGCgmSJomT8ixk
|
|
18
18
|
ARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM1z3/jcitjV
|
|
19
19
|
umXwRFn+JSBBd36qZB54Dtucf6+E2fmNPzBRhgYN5XJy/+clQJ9NIJV7C8H52P3V
|
|
@@ -24,14 +24,14 @@ cert_chain:
|
|
|
24
24
|
zfR37/NQFkECAwEAAaN9MHswCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
|
|
25
25
|
BBYEFJJ2myhLXK742btavNbG0IWrMNBIMCAGA1UdEQQZMBeBFW9wZW5zZWFyY2hA
|
|
26
26
|
YW1hem9uLmNvbTAgBgNVHRIEGTAXgRVvcGVuc2VhcmNoQGFtYXpvbi5jb20wDQYJ
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
KoZIhvcNAQELBQADggEBAB1D6Ba88KkTApeUl0Iv/WKie1WNi+6o3KQhqqLt+xjB
|
|
28
|
+
oiBLLdQpKwH7k/TkCmfo9/8lY1sa3Pxckuw2fNVDaVhEHX56fmTUPoOjkyPS4H19
|
|
29
|
+
YEKFBeY6U1aF7a2piN58j4EcPP7Kv0KD3RlaEwKbYJTiOy/0f5XjWqVYKOS+DrjM
|
|
30
|
+
EMhX0gWR5oucydDNSi5hkggPYqCZnW9q6yo+k/FW+DK33CeUm69D6elFx7qPGhEx
|
|
31
|
+
m0rB25J1sO2yjlalRdBoV5p7OKaWG4CGMr+q6vCC2za7yrtZiYOOv+KpWmheTwds
|
|
32
|
+
P1nbdIL2eAXGfNU3cbtYisS1sSYi7VSkS52pVk8Jgtw=
|
|
33
33
|
-----END CERTIFICATE-----
|
|
34
|
-
date:
|
|
34
|
+
date: 2024-11-04 00:00:00.000000000 Z
|
|
35
35
|
dependencies:
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -43,8 +43,8 @@ dependencies:
|
|
|
43
43
|
- !ruby/object:Gem::Version
|
|
44
44
|
version: 1.0.0
|
|
45
45
|
name: manticore
|
|
46
|
-
prerelease: false
|
|
47
46
|
type: :runtime
|
|
47
|
+
prerelease: false
|
|
48
48
|
version_requirements: !ruby/object:Gem::Requirement
|
|
49
49
|
requirements:
|
|
50
50
|
- - ">="
|
|
@@ -63,8 +63,8 @@ dependencies:
|
|
|
63
63
|
- !ruby/object:Gem::Version
|
|
64
64
|
version: '0.0'
|
|
65
65
|
name: stud
|
|
66
|
-
prerelease: false
|
|
67
66
|
type: :runtime
|
|
67
|
+
prerelease: false
|
|
68
68
|
version_requirements: !ruby/object:Gem::Requirement
|
|
69
69
|
requirements:
|
|
70
70
|
- - ">="
|
|
@@ -83,8 +83,8 @@ dependencies:
|
|
|
83
83
|
- !ruby/object:Gem::Version
|
|
84
84
|
version: '2.99'
|
|
85
85
|
name: logstash-core-plugin-api
|
|
86
|
-
prerelease: false
|
|
87
86
|
type: :runtime
|
|
87
|
+
prerelease: false
|
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
|
89
89
|
requirements:
|
|
90
90
|
- - ">="
|
|
@@ -100,8 +100,8 @@ dependencies:
|
|
|
100
100
|
- !ruby/object:Gem::Version
|
|
101
101
|
version: '1.0'
|
|
102
102
|
name: logstash-mixin-ecs_compatibility_support
|
|
103
|
-
prerelease: false
|
|
104
103
|
type: :runtime
|
|
104
|
+
prerelease: false
|
|
105
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
106
106
|
requirements:
|
|
107
107
|
- - "~>"
|
|
@@ -110,23 +110,17 @@ dependencies:
|
|
|
110
110
|
- !ruby/object:Gem::Dependency
|
|
111
111
|
requirement: !ruby/object:Gem::Requirement
|
|
112
112
|
requirements:
|
|
113
|
-
- - ">="
|
|
114
|
-
- !ruby/object:Gem::Version
|
|
115
|
-
version: 2.11.632
|
|
116
113
|
- - "~>"
|
|
117
114
|
- !ruby/object:Gem::Version
|
|
118
|
-
version: '
|
|
115
|
+
version: '3'
|
|
119
116
|
name: aws-sdk
|
|
120
|
-
prerelease: false
|
|
121
117
|
type: :runtime
|
|
118
|
+
prerelease: false
|
|
122
119
|
version_requirements: !ruby/object:Gem::Requirement
|
|
123
120
|
requirements:
|
|
124
|
-
- - ">="
|
|
125
|
-
- !ruby/object:Gem::Version
|
|
126
|
-
version: 2.11.632
|
|
127
121
|
- - "~>"
|
|
128
122
|
- !ruby/object:Gem::Version
|
|
129
|
-
version: '
|
|
123
|
+
version: '3'
|
|
130
124
|
- !ruby/object:Gem::Dependency
|
|
131
125
|
requirement: !ruby/object:Gem::Requirement
|
|
132
126
|
requirements:
|
|
@@ -137,8 +131,8 @@ dependencies:
|
|
|
137
131
|
- !ruby/object:Gem::Version
|
|
138
132
|
version: '2'
|
|
139
133
|
name: json
|
|
140
|
-
prerelease: false
|
|
141
134
|
type: :runtime
|
|
135
|
+
prerelease: false
|
|
142
136
|
version_requirements: !ruby/object:Gem::Requirement
|
|
143
137
|
requirements:
|
|
144
138
|
- - ">="
|
|
@@ -154,8 +148,8 @@ dependencies:
|
|
|
154
148
|
- !ruby/object:Gem::Version
|
|
155
149
|
version: '0'
|
|
156
150
|
name: logstash-codec-plain
|
|
157
|
-
prerelease: false
|
|
158
151
|
type: :development
|
|
152
|
+
prerelease: false
|
|
159
153
|
version_requirements: !ruby/object:Gem::Requirement
|
|
160
154
|
requirements:
|
|
161
155
|
- - ">="
|
|
@@ -168,8 +162,8 @@ dependencies:
|
|
|
168
162
|
- !ruby/object:Gem::Version
|
|
169
163
|
version: '0'
|
|
170
164
|
name: logstash-devutils
|
|
171
|
-
prerelease: false
|
|
172
165
|
type: :development
|
|
166
|
+
prerelease: false
|
|
173
167
|
version_requirements: !ruby/object:Gem::Requirement
|
|
174
168
|
requirements:
|
|
175
169
|
- - ">="
|
|
@@ -182,8 +176,8 @@ dependencies:
|
|
|
182
176
|
- !ruby/object:Gem::Version
|
|
183
177
|
version: '0'
|
|
184
178
|
name: flores
|
|
185
|
-
prerelease: false
|
|
186
179
|
type: :development
|
|
180
|
+
prerelease: false
|
|
187
181
|
version_requirements: !ruby/object:Gem::Requirement
|
|
188
182
|
requirements:
|
|
189
183
|
- - ">="
|
|
@@ -196,8 +190,8 @@ dependencies:
|
|
|
196
190
|
- !ruby/object:Gem::Version
|
|
197
191
|
version: '0.6'
|
|
198
192
|
name: cabin
|
|
199
|
-
prerelease: false
|
|
200
193
|
type: :development
|
|
194
|
+
prerelease: false
|
|
201
195
|
version_requirements: !ruby/object:Gem::Requirement
|
|
202
196
|
requirements:
|
|
203
197
|
- - "~>"
|
|
@@ -210,8 +204,8 @@ dependencies:
|
|
|
210
204
|
- !ruby/object:Gem::Version
|
|
211
205
|
version: '1'
|
|
212
206
|
name: opensearch-ruby
|
|
213
|
-
prerelease: false
|
|
214
207
|
type: :development
|
|
208
|
+
prerelease: false
|
|
215
209
|
version_requirements: !ruby/object:Gem::Requirement
|
|
216
210
|
requirements:
|
|
217
211
|
- - "~>"
|
|
@@ -237,6 +231,8 @@ files:
|
|
|
237
231
|
- README.md
|
|
238
232
|
- RELEASING.md
|
|
239
233
|
- SECURITY.md
|
|
234
|
+
- docs/building_custom_docker_images.md
|
|
235
|
+
- docs/ecs_compatibility.md
|
|
240
236
|
- lib/logstash/outputs/opensearch.rb
|
|
241
237
|
- lib/logstash/outputs/opensearch/http_client.rb
|
|
242
238
|
- lib/logstash/outputs/opensearch/http_client/manticore_adapter.rb
|
|
@@ -244,11 +240,17 @@ files:
|
|
|
244
240
|
- lib/logstash/outputs/opensearch/http_client_builder.rb
|
|
245
241
|
- lib/logstash/outputs/opensearch/template_manager.rb
|
|
246
242
|
- lib/logstash/outputs/opensearch/templates/ecs-disabled/1x.json
|
|
243
|
+
- lib/logstash/outputs/opensearch/templates/ecs-disabled/1x_index.json
|
|
247
244
|
- lib/logstash/outputs/opensearch/templates/ecs-disabled/2x.json
|
|
245
|
+
- lib/logstash/outputs/opensearch/templates/ecs-disabled/2x_index.json
|
|
248
246
|
- lib/logstash/outputs/opensearch/templates/ecs-disabled/7x.json
|
|
247
|
+
- lib/logstash/outputs/opensearch/templates/ecs-disabled/7x_index.json
|
|
249
248
|
- lib/logstash/outputs/opensearch/templates/ecs-v8/1x.json
|
|
249
|
+
- lib/logstash/outputs/opensearch/templates/ecs-v8/1x_index.json
|
|
250
250
|
- lib/logstash/outputs/opensearch/templates/ecs-v8/2x.json
|
|
251
|
+
- lib/logstash/outputs/opensearch/templates/ecs-v8/2x_index.json
|
|
251
252
|
- lib/logstash/outputs/opensearch/templates/ecs-v8/7x.json
|
|
253
|
+
- lib/logstash/outputs/opensearch/templates/ecs-v8/7x_index.json
|
|
252
254
|
- lib/logstash/plugin_mixins/opensearch/api_configs.rb
|
|
253
255
|
- lib/logstash/plugin_mixins/opensearch/common.rb
|
|
254
256
|
- logstash-output-opensearch.gemspec
|
|
@@ -306,7 +308,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
306
308
|
- !ruby/object:Gem::Version
|
|
307
309
|
version: '0'
|
|
308
310
|
requirements: []
|
|
309
|
-
rubygems_version: 3.3.
|
|
311
|
+
rubygems_version: 3.3.26
|
|
310
312
|
signing_key:
|
|
311
313
|
specification_version: 4
|
|
312
314
|
summary: Stores logs in OpenSearch
|
metadata.gz.sig
CHANGED
|
Binary file
|