Elasticsearch 로그 모니터링 중, 아래와 같은 오류가 발생했다.
[2020-03-19T00:00:17,340][WARN ][o.e.x.m.MonitoringService] [xx-xx-log-1] monitoring execution failed org.elasticsearch.xpack.monitoring.exporter.ExportException: Exception when closing export bulk at org.elasticsearch.xpack.monitoring.exporter.ExportBulk$1$1.<init>(ExportBulk.java:95) ~[?:?] at org.elasticsearch.xpack.monitoring.exporter.ExportBulk$1.onFailure(ExportBulk.java:93) ~[?:?] at org.elasticsearch.xpack.monitoring.exporter.ExportBulk$Compound$1.onResponse(ExportBulk.java:206) ~[?:?] at org.elasticsearch.xpack.monitoring.exporter.ExportBulk$Compound$1.onResponse(ExportBulk.java:200) ~[?:?]
monitoring execution failed 으로 구글링해보니,
<There are no ingest nodes in this cluster, unable to forward request to an ingest node.>
elasticsearch.yml 설정 파일에서 node.ingest: false 로 바꿔주라고 나와있다.
node.ingest: false로 바꿔줘도 계속 발생하였다.
Cluster의 Node 할당 관련 문제가 있나 확인해보니
curl -XGET localhost:9200/_cluster/allocation/explain?pretty
{ "error": { "root_cause": [ { "type": "illegal_argument_exception", "reason": "unable to find any unassigned shards to explain [ClusterAllocationExplainRequest[useAnyUnassignedShard=true]" } ], "type": "illegal_argument_exception", "reason": "unable to find any unassigned shards to explain [ClusterAllocationExplainRequest[useAnyUnassignedShard=true]" }, "status": 400 }
할당되지 않은 unassinged shard 가 있다고 나오기는 하나,
실제 cluster status 는 Green이였다.
혹시 해서 cluster 설정값을 확인해보니
curl -XGET localhost:9200/_cluster/settings?pretty { "persistent" : { "cluster" : { "routing" : { "rebalance" : { "enable" : "all" }, "allocation" : { "allow_rebalance" : "always" } } }, "xpack" : { "monitoring" : { "collection" : { "enabled" : "true" } } } }, "transient" : { "cluster" : { "routing" : { "allocation" : { "enable" : "all" } } } } }
xpack.monitoring.collection.enabled 값이 true로 설정 되어있었다.
해당 값은 elasticsearch.yml 에서 설정 가능하며, default는 false임에도 불구하고..
true로 설정 되어 있어서 오류가 발생하였다.
해당 xpack monitoring 설정 값을 false 로 변경해주고 나니, 오류가 발생하지 않았다.
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d' { "persistent" : { "xpack.monitoring.collection.enabled" : "false" } } '