web-dev-qa-db-fra.com

elasticsearch / kibana errors "Données trop volumineuses, les données pour [@timestamp] seraient plus grandes que la limite

Sur mon cluster ELK de test, je rencontre l'erreur suivante lorsque j'essaie de voir les données de la semaine dernière.

Data too large, data for [@timestamp] would be larger than limit

L'avertissement concernant l'échec des fragments semble être trompeur car les outils de surveillance elasticsearch kopf et head montrent que tous les fragments fonctionnent correctement et que le cluster élastique est vert.

enter image description here

Un utilisateur du groupe google pour elasticsearch a suggéré d'augmenter la RAM. J'ai augmenté mes 3 nœuds à 8 Go chacun avec un tas de 4,7 Go, mais le problème persiste. Je génère environ 5 Go à 25 Go de données par jour, avec une rétention de 30 jours.

20
spuder

Vider le cache atténue les symptômes pour l'instant.

http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-clearcache.html

Effacer un seul index

curl -XPOST 'http://localhost:9200/Twitter/_cache/clear'

Effacer plusieurs indices

curl -XPOST 'http://localhost:9200/kimchy,elasticsearch/_cache/clear'

curl -XPOST 'http://localhost:9200/_cache/clear'

Ou comme suggéré par un utilisateur dans IRC. Celui-ci semble fonctionner le mieux.

curl -XPOST 'http://localhost:9200/_cache/clear' -d '{ "fielddata": "true" }'

Mise à jour : ces erreurs ont disparu dès que le cluster a été déplacé vers un hyperviseur plus rapide

34
spuder

Le problème est la mémoire donnée à Elasticsearch par ES_Java_OPTS.

Essayez de donner plus de mémoire avec: ES_Java_OPTS = "- Xmx2g -Xms2g".

1
FChiri

Vider le cache n'a pas fonctionné pour notre cluster. Lors de la vérification des différents nœuds à l'aide de http: //x.x.x.x: 9200/_cat/indices? V & s = index: desc l'un donnait l'erreur ci-dessus et les autres avaient des erreurs de pointeur invalides. J'ai redémarré le service élastique sur celui donnant l'erreur de limite de débit/données trop importante. Quand il est revenu en ligne, il y avait des fragments non attribués, que j'ai corrigés en supprimant le nombre de réplications à un nombre inférieur (il suffit de le faire sur l'un des nœuds pour modifier les paramètres d'index du cluster):

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 semble mentionner que cela peut être un problème avec la taille du tas JVM.

0
Greg Bray