テストELKクラスターで、先週のデータを表示しようとすると、次のエラーが発生します。
Data too large, data for [@timestamp] would be larger than limit
Elasticsearch監視ツールkopf
およびhead
はすべてのシャードが適切に機能し、エラスティッククラスターが緑色であることを示しているため、シャードの失敗に関する警告は誤解を招くようです。
Elasticsearchのgoogleグループの1人のユーザーがRAMを増やすことを提案しました。 3つのノードをそれぞれ4.7GBのヒープで8GBに増やしましたが、問題は解決しません。 1日あたり約5 GBから25 GBのデータを生成し、30日間保持します。
キャッシュをクリアすると、今のところ症状が緩和されます。
http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-clearcache.html
単一のインデックスをクリアする
curl -XPOST 'http://localhost:9200/Twitter/_cache/clear'
複数のインデックスをクリア
curl -XPOST 'http://localhost:9200/kimchy,elasticsearch/_cache/clear'
curl -XPOST 'http://localhost:9200/_cache/clear'
または、IRCのユーザーによって提案されました。これが一番うまくいくようです。
curl -XPOST 'http://localhost:9200/_cache/clear' -d '{ "fielddata": "true" }'
Update:これらのエラーは、クラスターがより高速なハイパーバイザーに移動されるとすぐになくなりました
問題は、ES_Java_OPTSによってElasticsearchに与えられたメモリです。
ES_Java_OPTS = "-Xmx2g -Xms2g"を使用してメモリを増やしてください。
キャッシュをクリアしても、クラスターでは機能しませんでした。 http://x.x.x.x:9200/_cat/indices?v&s = index:desc を使用してさまざまなノードをチェックすると、1つは上記のエラーを示し、他のノードは無効なポインタエラーを示しました。私は、レート制限/データが大きすぎるエラーを提供するサービスでエラスティックサービスを再開しました。それがオンラインに戻ったとき、割り当てられていないシャードがいくつかありました。これは、レプリケーションカウントをより低い数値にドロップすることで修正しました(クラスターのインデックス設定を変更するには、ノードの1つでこれを実行する必要があるだけです)。
IFS=$'\n'
for line in $(curl -s 'elastic-search.example.com:9200/_cat/shards' | fgrep UNASSIGNED); do
INDEX=$(echo $line | (awk '{print $1}'))
echo start $INDEX
curl -XPUT "elastic-search.example.com:9200/$INDEX/_settings" -d '{
"index" : {
"number_of_replicas" : 1
}
}
'
done
# Check shard/cluster status (may take some time to rebalance):
# http://elastic-search.example.com:9200/_cat/shards?v&s=index:desc
# http://elastic-search.example.com:9200/_cluster/health?pretty
また https://discuss.elastic.co/t/data-too-large/32141 は、JVMヒープのサイズに問題がある可能性があることを言及しているようです。