Autres versions

Vous êtes ici : Installer et exploiterInstallationElasticsearch

Serveur Elasticsearch

Procédure d'installation du serveur Elasticsearch

Cette page décrit les étapes d'installation du serveur Elasticsearch, qui est utilisé pour le moteur de recherche de K-Sup.

Pré-requis

Dimensionnement

Chaque nœud Elasticsearch doit disposer de suffisamment de ressources pour fonctionner dans les meilleures conditions :
  • CPU : minimum 2 cœurs - recommandé 4 cœurs pour des applications à forte volumétrie et fréquentation
  • RAM : minimum 4 Go - recommandé 8 Go pour des applications à forte volumétrie et fréquentation
 

Installation de l'OS

Installez le système d'exploitation souhaité en suivant les manuels d'installation officiels :  

Ouverture de ports

Le serveur Elasticsearch communique avec l'application via le port 9300. Il faut donc exposer ce port pour permettre au(x) serveur(s) d’application d’accéder à l’instance Elasticsearch. Pour des raisons de sécurité, il ne faut surtout pas exposer ce port en dehors du LAN. Le port 9200 peut également être exposé sur le LAN, à des fins de diagnostic.
 

Installation de Java

Elasticsearch est réalisé en java et nécessite donc l'installation de Java 11. Après l'installation, il faut impérativement valoriser la variable d'environnement JAVA_HOME.

L'éditeur préconise une installation de Java 8u20  ou supérieur, il n'y a aucune contre-indication concernant l'utilisation de Java 11 mais cette version n'a pas été testée par l'éditeur (voir Installation de Java 8 si vous souhaitez utiliser cette version sur votre serveur ElasticSearch).   
 

Installation du serveur

La version du serveur doit impérativement correspondre à la version du client Elasticsearch présent dans le produit (version mineure identique). Pour la version 6.7 de K-Sup, il s'agit de la version 2.4.6 d'Elasticsearch.

Pour installer le serveur, merci de suivre la documentation de l'éditeur : https://www.elastic.co/guide/en/elasticsearch/reference/2.4/setup-repositories.html.


Installation des plugins

Deux plugins Elasticsearch sont nécessaires au fonctionnement de l'application :
  • DeleteByQuery : Permet de supprimer des clés d'index par une requête
  • MapperAttachmentPlugin : Effectue l'analyse des pièces jointes des (.pdf, .doc...)
Pour installer ces plugins, exécuter les commandes suivantes :
cd /usr/share/elasticsearch
#Dans le répertoire Elasticsearch :
sudo bin/plugin install delete-by-query
sudo bin/plugin install mapper-attachments


Configuration

Il faut ensuite configurer le nœud installé. Pour cela, éditez le fichier /etc/elasticsearch/elasticsearch.yml :
sudo vim /etc/elasticsearch/elasticsearch.yml
Décommentez ensuite les lignes avec les clés network.host, cluster.name et node.name et modifiez les valeurs : 
network.host: IP_DU_SERVEUR_ELASTICSEARCH
cluster.name: core
node.name: core.node.default
Il est conseillé, sur un réseau où cohabitent plusieurs environnements, de positionner le nom du cluster par environnement (exemple : cluster.name: preproduction).
Dans le cas d'un seul noeud Elasticsearch, suffixer le nom du noeud par node.default (exemple : node.name: preproduction.node.default).

Il faut de plus définir le nombre de shards et de replicas utilisés par les indexes Elasticsearch. Ces propriétés sont à adapter en fonction de la volumétrie de votre application. Nous conseillons d'utiliser par défaut 1 shard et 0 replicas :
index.number_of_shards: 1
index.number_of_replicas: 0


Configuration de la mémoire

Décommenter la propriété ES_HEAP_SIZE dans le fichier de configuration du serveur Elasticsearch (fichier /etc/default/elasticsearch ou /etc/sysconfig/elasticsearch) et y renseigner la mémoire allouée :
# ajustez la mémoire en fonction de votre infrastructure
ES_HEAP_SIZE=2g


Configuration des paramètres de Garbage Collector

L'adaptation des paramètres de Garbage Collector (GC)  n'est à configurer que dans un contexte Java 11 (ce n'est pas à configurer avec Java 8).
Cette configuration est à faire dans le même fichier de configuration du serveur (fichier /etc/default/elasticsearch ou /etc/sysconfig/elasticsearch)

# Spécificité Java 11, le paramétrage du Garbage Collector positionné pour Elasticsearch n'est plus compatible
ES_GC_OPTS=-XX:+UseG1GC

Exemple de configuration 

network.host: 192.168.1.73
cluster.name: core
node.name: core.node.default
index.number_of_shards: 1
index.number_of_replicas: 0


Configuration de la journalisation

Par défaut, le système de journalisation du serveur elasticsearch est configuré en mode DEBUG.
Afin de maîtriser l'espace disque utilisé par les journaux applicatifs du elasticsearch, nous conseillons de passer le logger "action" au niveau INFO.
Pour cela, il suffit d'éditer le fichier  /etc/elasticsearch/logging.yml et de changer le niveau de log :

logger:
  # log action execution errors for easier debugging
  action: INFO

Il est recommandé de limiter le nombre de fichiers de log conservés par elasticsearch. Les versions 2.4.x n'intègrent pas en standard cette fonctionnalité et nécessitent l'utilisation d'un outil externe type logrotate. 
Par exemple, pour l'utilitaire logrotate, créer un fichier /etc/logrotate.d/elasticsearch avec le contenu suivant :

/var/log/elasticsearch {
   daily
   missingok
   rotate 30
   compress
   delaycompress
}


Vérification de l'installation

Depuis un navigateur, se connecter à l'URL http://192.168.1.73:9200/_cluster/health

Mis à jour le 3 août 2023