Details
-
Improvement
-
Status: Patch Available
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
When capital letters is used for index name in header substitution, a below error occurs in Elasticsearch sink.
In Elasticsearch, a index name must be lower case.
By adding an option to convert index name to lower case, we can avoid this error.
The error log
21 7 2015 17:55:35,499 ERROR [SinkRunner-PollingRunner-DefaultSinkProcessor] (org.apache.flume.sink.elasticsearch.ElasticSearchSink.process:225) - Failed to commit transaction. Transaction rolled back.
org.apache.flume.EventDeliveryException: failure in bulk execution:
[0]: index [INDEX-TEST-2015-07-21], type [nodeExists], id [null], message [RemoteTransportException[[test-node01][inet[/10.XXX.XXX.XXX:9300]][indices:admin/create]]; nested: InvalidIndexNameException[[INDEX-TEST-2015-07-21] Invalid index name [INDEX-TEST-2015-07-21], must be lowercase]; ]
[1]: index [INDEX-TEST-2015-07-21], type [select], id [null], message [RemoteTransportException[[test-node01][inet[/10.XXX.XXX.XXX:9300]][indices:admin/create]]; nested: InvalidIndexNameException[[INDEX-TEST-2015-07-21] Invalid index name [INDEX-TEST-2015-07-21], must be lowercase]; ]
at org.apache.flume.sink.elasticsearch.client.ElasticSearchTransportClient.execute(ElasticSearchTransportClient.java:183)
at org.apache.flume.sink.elasticsearch.ElasticSearchSink.process(ElasticSearchSink.java:205)
at org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:68)
at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:147)
at java.lang.Thread.run(Thread.java:722)