kibana-logo.png Si vous suivez le blog vous le savez en ce moment nous avons pas mal travaillé autour du tryptique Rsyslog/Logstash/ElasticSeach/Kibana. De ce travail est née une expérience et une expertise (d’ailleurs si vous avez des projets autour de cette solution n’hésitez pas à faire appel à nous). Je vous fais part ici de quelques conseils histoire de ne pas tomber dans les même pièges que nous. Ces conseils je les classerai en 2 catégories :

  1. Dimensionnement
    • Selon les données que vous voulez indexer, il vous faudra beaucoup beaucoup de RAM pour ES. A titre d’exemple nous indexons les access logs apache pour un site faisant autour de 2 millions de hits par jour et  4Go par serveur ne suffisent pas à charger les indexes au démarrage. En effet même si ES gère la persistance sur disque, il travaille les données en mémoire et la décomposition en terms/facets et la structure de votre index fait grandement augmenter la taille de vos données.
    • Dans le même esprit, il vous faudra pas mal d’espace disque, comme je l’ai dit la décomposition et la structuration de vos données déstructurées est à ce prix. Mais vous gagnerez en utilisabilité et intérêt de vos données. A titre d’exemple : 700 Mo de logs ingérés donnent 3 Go d’index.
  2. Tuning
    • Pensez à tuner vos paramètre de JVM, notamment ceux ci :
      • ES_HEAP_SIZE":ES_MIN_MEM=2500
      • ES_MAX_MEM=2500
      • ES_HOME=/opt/elasticsearch
      • JAVA_HOME=/usr/java/latest
      • ES_HEAP_SIZE=2.5g
    • Pensez à utilisez elasticsearch en mode “bootstrap.mlockall: true” afin d’évitez que votre JVM commence à swapper
    • Suivez cette documentation : https://www.elastic.co/webinars/using-elasticsearch-for-log-search-and-analysis