Vous êtes ici : Installer et exploiter → Installation → Elasticsearch
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...)
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
Connectez-vous (avec vos identifiants Communauté) pour suggérer une correction ou un complément :