Elasticsearch/kibana errors "Данные слишком велики, данные для [@timestamp] будут больше, чем предел
В моем тестовом кластере ELK я сталкиваюсь с следующей ошибкой при попытке увидеть данные с прошлой недели.
Data too large, data for [@timestamp] would be larger than limit
Предупреждение о сбоях осколков кажется ошибочным, поскольку инструменты мониторинга elasticsearch kopf
и head
показывают, что все осколки работают правильно, а эластичный кластер зеленый.
![enter image description here]()
Один пользователь в группе google для elasticsearch предложил увеличить ram. Я увеличил свои 3 узла до 8 ГБ каждый с кучей 4,7 ГБ, но проблема продолжается.
Я генерирую от 5 до 25 ГБ данных в день с 30-дневным удержанием.
Ответы
Ответ 1
Очистка кеша пока облегчает симптомы.
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" }'
Обновление: эти ошибки исчезли, как только кластер был перемещен на более быстрый гипервизор
Ответ 2
Проблема в памяти, предоставленной Elasticsearch ES_JAVA_OPTS.
Попробуйте выделить больше памяти с помощью: ES_JAVA_OPTS = "-Xmx2g -Xms2g".
Ответ 3
Очистка кэша не работает для нашего кластера. При проверке различных узлов с помощью http://x.x.x.x:9200/_cat/indices?v&s=index:desc один выдавал вышеуказанную ошибку, а другие имели недопустимые ошибки указателя. Я перезапустил эластичный сервис на том, который дает ограничение скорости/слишком большую ошибку данных. Когда он вернулся в оперативный режим, было несколько неназначенных сегментов, которые я исправил, уменьшив число репликаций до меньшего (это нужно сделать только на одном из узлов, чтобы изменить настройки индекса для кластера):
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.