fluent-plugin-elasticsearch 2.0.0.rc.4 → 2.0.0.rc.5
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/History.md +5 -1
- data/ISSUE_TEMPLATE.md +5 -0
- data/README.md +20 -3
- data/fluent-plugin-elasticsearch.gemspec +1 -1
- data/lib/fluent/plugin/out_elasticsearch.rb +4 -2
- data/test/plugin/test_out_elasticsearch.rb +19 -0
- data/test/plugin/test_out_elasticsearch_dynamic.rb +4 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9cc6bc3f6b89a0735bf96c5c0575d39e58458746
|
4
|
+
data.tar.gz: ee98c63584d8249795b5e4c1e1a75fcc2059b2ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb6c6cb81709dc0b7aa2845e64346621db2cfed45ff16d75cb2384e669cfe8e0497efb8b1d36ea94dbc82da40397347662c118afeaef91347f30b73d93ec940f
|
7
|
+
data.tar.gz: e7eef17ef1e8cab63f79baebba312410455c997c1a5a2128416b48b5bf26c47320c93835e70167b8e218dc022b9171b9d7e802653e205c76dfc81018cfbf3689
|
data/History.md
CHANGED
@@ -4,8 +4,12 @@
|
|
4
4
|
- Log ES response errors (#230)
|
5
5
|
- Use latest elasticsearch-ruby (#240)
|
6
6
|
|
7
|
+
### 2.0.0.rc.5
|
8
|
+
- make configurable with `ssl_version` parameter (#299)
|
9
|
+
- add `logstash_prefix_separator` config parameter (#297)
|
10
|
+
|
7
11
|
### 2.0.0.rc.4
|
8
|
-
- fix license identifier in gemspec
|
12
|
+
- fix license identifier in gemspec (#294)
|
9
13
|
|
10
14
|
### 2.0.0.rc.3
|
11
15
|
- add built-in placeholders support (#288, #293)
|
data/ISSUE_TEMPLATE.md
CHANGED
data/README.md
CHANGED
@@ -21,6 +21,7 @@ Current maintainers: @cosmo0920
|
|
21
21
|
+ [user, password, path, scheme, ssl_verify](#user-password-path-scheme-ssl_verify)
|
22
22
|
+ [logstash_format](#logstash_format)
|
23
23
|
+ [logstash_prefix](#logstash_prefix)
|
24
|
+
+ [logstash_prefix_separator](#logstash_prefix_separator)
|
24
25
|
+ [logstash_dateformat](#logstash_dateformat)
|
25
26
|
+ [pipeline](#pipeline)
|
26
27
|
+ [time_key_format](#time_key_format)
|
@@ -49,7 +50,7 @@ Current maintainers: @cosmo0920
|
|
49
50
|
+ [reconnect_on_error](#reconnect_on_error)
|
50
51
|
+ [Client/host certificate options](#clienthost-certificate-options)
|
51
52
|
+ [Proxy Support](#proxy-support)
|
52
|
-
+ [
|
53
|
+
+ [Buffer options](#buffer-options)
|
53
54
|
+ [Hash flattening](#hash-flattening)
|
54
55
|
+ [Not seeing a config you need?](#not-seeing-a-config-you-need)
|
55
56
|
+ [Dynamic configuration](#dynamic-configuration)
|
@@ -67,6 +68,7 @@ Current maintainers: @cosmo0920
|
|
67
68
|
| < 2.0.0 | >= v0.12.0 | >= 1.9 |
|
68
69
|
|
69
70
|
NOTE: fluent-plugin-elasticsearch v2.0.0 is now RC. We will release stable v2.0.0 soon.
|
71
|
+
|
70
72
|
NOTE: For v0.12 version, you should use 1.x.y version. Please send patch into v0.12 branch if you encountered 1.x version's bug.
|
71
73
|
|
72
74
|
## Installation
|
@@ -136,6 +138,12 @@ This is meant to make writing data into ElasticSearch indices compatible to what
|
|
136
138
|
logstash_prefix mylogs # defaults to "logstash"
|
137
139
|
```
|
138
140
|
|
141
|
+
### logstash_prefix_separator
|
142
|
+
|
143
|
+
```
|
144
|
+
logstash_prefix_separator _ # defaults to "-"
|
145
|
+
```
|
146
|
+
|
139
147
|
### logstash_dateformat
|
140
148
|
|
141
149
|
The strftime format to generate index target index name when `logstash_format` is set to true. By default, the records are inserted into index `logstash-YYYY.MM.DD`. This option, alongwith `logstash_prefix` lets us insert into specified index like `mylogs-YYYYMM` for a monthly index.
|
@@ -455,13 +463,18 @@ client_key /path/to/your/private/key
|
|
455
463
|
client_key_pass password
|
456
464
|
```
|
457
465
|
|
466
|
+
If you want to configure SSL/TLS version, you can specify ssl\_version parameter.
|
467
|
+
```
|
468
|
+
ssl_version TLSv1_2 # or [SSLv23, TLSv1, TLSv1_1]
|
469
|
+
```
|
470
|
+
|
458
471
|
### Proxy Support
|
459
472
|
|
460
473
|
Starting with version 0.8.0, this gem uses excon, which supports proxy with environment variables - https://github.com/excon/excon#proxy-support
|
461
474
|
|
462
|
-
###
|
475
|
+
### Buffer options
|
463
476
|
|
464
|
-
`fluentd-plugin-elasticsearch` extends [Fluentd's builtin
|
477
|
+
`fluentd-plugin-elasticsearch` extends [Fluentd's builtin Output plugin](https://docs.fluentd.org/v0.14/articles/output-plugin-overview) and use `compat_parameters` plugin helper. It adds the following options:
|
465
478
|
|
466
479
|
```
|
467
480
|
buffer_type memory
|
@@ -473,6 +486,8 @@ num_threads 1
|
|
473
486
|
|
474
487
|
The value for option `buffer_chunk_limit` should not exceed value `http.max_content_length` in your Elasticsearch setup (by default it is 100mb).
|
475
488
|
|
489
|
+
**Note**: If you use or evaluate Fluentd v0.14, you can use `<buffer>` directive to specify buffer configuration, too. In more detail, please refer to the [buffer configuration options for v0.14](https://docs.fluentd.org/v0.14/articles/buffer-plugin-overview#configuration-parameters)
|
490
|
+
|
476
491
|
### Hash flattening
|
477
492
|
|
478
493
|
Elasticsearch will complain if you send object and concrete values to the same field. For example, you might have logs that look this, from different places:
|
@@ -512,6 +527,8 @@ Alternatively, consider using [fluent-plugin-forest](https://github.com/tagomori
|
|
512
527
|
|
513
528
|
And yet another option is described in Dynamic Configuration section.
|
514
529
|
|
530
|
+
**Note**: If you use or evaluate Fluentd v0.14, you can use builtin placeholders. In more detail, please refer to [Placeholders](#placeholders) section.
|
531
|
+
|
515
532
|
### Dynamic configuration
|
516
533
|
|
517
534
|
If you want configurations to depend on information in messages, you can use `elasticsearch_dynamic`. This is an experimental variation of the ElasticSearch plugin allows configuration values to be specified in ways such as the below:
|
@@ -3,7 +3,7 @@ $:.push File.expand_path('../lib', __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = 'fluent-plugin-elasticsearch'
|
6
|
-
s.version = '2.0.0.rc.
|
6
|
+
s.version = '2.0.0.rc.5'
|
7
7
|
s.authors = ['diogo', 'pitr']
|
8
8
|
s.email = ['pitr.vern@gmail.com', 'me@diogoterror.com']
|
9
9
|
s.description = %q{ElasticSearch output plugin for Fluent event collector}
|
@@ -35,6 +35,7 @@ module Fluent::Plugin
|
|
35
35
|
config_param :time_precision, :integer, :default => 9
|
36
36
|
config_param :logstash_format, :bool, :default => false
|
37
37
|
config_param :logstash_prefix, :string, :default => "logstash"
|
38
|
+
config_param :logstash_prefix_separator, :string, :default => '-'
|
38
39
|
config_param :logstash_dateformat, :string, :default => "%Y.%m.%d"
|
39
40
|
config_param :utc_index, :bool, :default => true
|
40
41
|
config_param :type_name, :string, :default => "fluentd"
|
@@ -54,6 +55,7 @@ module Fluent::Plugin
|
|
54
55
|
config_param :client_cert, :string, :default => nil
|
55
56
|
config_param :client_key_pass, :string, :default => nil
|
56
57
|
config_param :ca_file, :string, :default => nil
|
58
|
+
config_param :ssl_version, :enum, list: [:SSLv23, :TLSv1, :TLSv1_1, :TLSv1_2], :default => :TLSv1
|
57
59
|
config_param :remove_keys, :string, :default => nil
|
58
60
|
config_param :remove_keys_on_update, :string, :default => ""
|
59
61
|
config_param :remove_keys_on_update_key, :string, :default => nil
|
@@ -170,7 +172,7 @@ module Fluent::Plugin
|
|
170
172
|
transport_options: {
|
171
173
|
headers: { 'Content-Type' => 'application/json' },
|
172
174
|
request: { timeout: @request_timeout },
|
173
|
-
ssl: { verify: @ssl_verify, ca_file: @ca_file }
|
175
|
+
ssl: { verify: @ssl_verify, ca_file: @ca_file, version: @ssl_version }
|
174
176
|
}
|
175
177
|
}), &adapter_conf)
|
176
178
|
es = Elasticsearch::Client.new transport: transport
|
@@ -334,7 +336,7 @@ module Fluent::Plugin
|
|
334
336
|
record[TIMESTAMP_FIELD] = dt.iso8601(@time_precision)
|
335
337
|
end
|
336
338
|
dt = dt.new_offset(0) if @utc_index
|
337
|
-
target_index = "#{logstash_prefix}
|
339
|
+
target_index = "#{logstash_prefix}#{@logstash_prefix_separator}#{dt.strftime(@logstash_dateformat)}"
|
338
340
|
else
|
339
341
|
target_index = index_name
|
340
342
|
end
|
@@ -74,6 +74,10 @@ class ElasticsearchOutput < Test::Unit::TestCase
|
|
74
74
|
assert_equal '/es/', instance.path
|
75
75
|
assert_equal 'john', instance.user
|
76
76
|
assert_equal 'doe', instance.password
|
77
|
+
assert_equal :TLSv1, instance.ssl_version
|
78
|
+
assert_nil instance.client_key
|
79
|
+
assert_nil instance.client_cert
|
80
|
+
assert_nil instance.client_key_pass
|
77
81
|
end
|
78
82
|
|
79
83
|
test 'lack of tag in chunk_keys' do
|
@@ -748,6 +752,21 @@ class ElasticsearchOutput < Test::Unit::TestCase
|
|
748
752
|
assert_equal(logstash_index, index_cmds.first['index']['_index'])
|
749
753
|
end
|
750
754
|
|
755
|
+
def test_writes_to_logstash_index_with_specified_prefix_and_separator
|
756
|
+
separator = '_'
|
757
|
+
driver.configure("logstash_format true
|
758
|
+
logstash_prefix_separator #{separator}
|
759
|
+
logstash_prefix myprefix")
|
760
|
+
time = Time.parse Date.today.to_s
|
761
|
+
logstash_index = "myprefix#{separator}#{time.getutc.strftime("%Y.%m.%d")}"
|
762
|
+
stub_elastic_ping
|
763
|
+
stub_elastic
|
764
|
+
driver.run(default_tag: 'test') do
|
765
|
+
driver.feed(time.to_i, sample_record)
|
766
|
+
end
|
767
|
+
assert_equal(logstash_index, index_cmds.first['index']['_index'])
|
768
|
+
end
|
769
|
+
|
751
770
|
class LogStashPrefixPlaceholdersTest < self
|
752
771
|
def test_writes_to_logstash_index_with_specified_prefix_and_tag_placeholder
|
753
772
|
driver.configure("logstash_format true
|
@@ -69,6 +69,10 @@ class ElasticsearchOutputDynamic < Test::Unit::TestCase
|
|
69
69
|
assert_equal 'john', instance.user
|
70
70
|
assert_equal 'doe', instance.password
|
71
71
|
assert_equal '/es/', instance.path
|
72
|
+
assert_equal :TLSv1, instance.ssl_version
|
73
|
+
assert_nil instance.client_key
|
74
|
+
assert_nil instance.client_cert
|
75
|
+
assert_nil instance.client_key_pass
|
72
76
|
end
|
73
77
|
|
74
78
|
def test_defaults
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-elasticsearch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.rc.
|
4
|
+
version: 2.0.0.rc.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- diogo
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-09-
|
12
|
+
date: 2017-09-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fluentd
|