With the following minimal configuration, (just setting the address, authentication, and index prefix) …
################################################ # Decanter Elasticsearch Appender Configuration ################################################ # HTTP address of the elasticsearch nodes (separated with comma) addresses=http://elasticsearch-vela-1.sit.etrade.com:9200 <http://elasticsearch-vela-1.sit.etrade.com:9200/> # Basic username and password authentication username=batchoi password=batchoipwd # The index name. # The index prefix is a static string used to construct the index index.prefix=karafCamelCWS # If true, it creates an index per Decanter event day #index.event.timestamped=true # For Elasticsearch < 7.5, index type is mandatory (not defined by default) index.type= # Marshaller to use (json is heavily recommended) marshaller.target=(dataFormat=json) I get this 405 error when i install the elasticsearch appender feature. 2020-11-02T15:32:15,870 | WARN | EventAdminAsyncThread #23 | ElasticsearchAppender | 188 - org.apache.karaf.decanter.appender.elasticsearch - 2.5.0 | Can't append into Elasticsearch org.elasticsearch.client.ResponseException: method [POST], host [http://elasticsearch-vela-1.sit.etrade.com:9200], URI [/karafCamelCWS-2020.11.02/], status line [HTTP/1.1 405 Method Not Allowed <http://elasticsearch-vela-1.sit.etrade.com:9200], uri [/karafCamelCWS-2020.11.02/], status line [HTTP/1.1 405 Method Not Allowed>] {"error":"Incorrect HTTP method for uri [/karafCamelCWS-2020.11.02/] and method [POST], allowed: [HEAD, GET, PUT, DELETE]","status":405} at org.elasticsearch.client.RestClient.convertResponse(RestClient.java:283) ~[!/:?] at org.elasticsearch.client.RestClient.performRequest(RestClient.java:261) ~[!/:?] at org.elasticsearch.client.RestClient.performRequest(RestClient.java:235) ~[!/:?] at org.apache.karaf.decanter.appender.elasticsearch.ElasticsearchAppender.send(ElasticsearchAppender.java:172) ~[!/:?] at org.apache.karaf.decanter.appender.elasticsearch.ElasticsearchAppender.handleEvent(ElasticsearchAppender.java:152) [!/:?] at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) [!/:?] at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [!/:?] at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [!/:?] at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [!/:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_51] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_51] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_51] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_51] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51] If the HTTP verb could be set to PUT, seems like it might work based on this: curl -H "Content-Type: application/json" --user batchoi:batchoipwd \ -XPOST "http://elasticsearch-vela-1.sit.etrade.com:9200/karafCamelCws <http://elasticsearch-vela-1.sit.etrade.com:9200/karafCamelCws>" -d ‘{ "field" : "value"}’ {"error":"Incorrect HTTP method for uri [/] and method [POST], allowed: [HEAD, GET, DELETE]","status":405} curl -H "Content-Type: application/json" --user batchoi:batchoipwd \ -XPUT "http://elasticsearch-vela-1.sit.etrade.com:9200/karafCamelCws <http://elasticsearch-vela-1.sit.etrade.com:9200/karafCamelCws>" -d ‘{ "field" : "value"}’ {"error":{"root_cause":[{"type":"remote_transport_exception","reason":"[sitesm111w88m7][10.247.33.25:9300][indices:admin/create]"}],"type":"illegal_argument_exception","reason":"unknown setting [index.field] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"},"status":400}