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-Portal / K-Sup.
- Mode standalone : Le serveur Elasticsearch est installé sur une machine et communique avec l'application par appel TCP. Ce type d'installation permet de gérer au mieux les problématiques de performance en isolant les différents processus. Il est de plus obligatoire d'utiliser ce mode si votre application est installée en cluster. Kosmos recommande ce type d'installation.
- Mode embedded : Le serveur Elasticsearch est embarqué dans l'application K-Sup. Il n'y a donc pas d'installation supplémentaire à réaliser. Cependant les ressources de la JVM sont partagées entre l'application et Elasticsearch. Il est déconseillé d'utiliser ce type d'installation pour les projets à forte volumétrie car les performances globales de l'application peuvent être dégradées. Par ailleurs, ce mode sera déprécié dans les prochaines versions d'Elasticsearch.
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
- RAM : minimum 4 Go - recommandé 8 Go
Installation de l'OS
Installez le système d'exploitation souhaité en suivant les manuels d'installation officiels :Configuration de la locale
Nos logiciels fonctionnent avec l'encodage UTF-8. Cet encodage doit donc être défini sur le serveur, et sur chaque composant logiciel installé.Par ailleurs, nous vous recommandons de définir le français comme langue par défaut.
Sur les systèmes Linux, la marche à suivre pour changer la locale par défaut du système est la suivante :
- Éditer le fichier "/etc/default/locale"
- Modifier la variable "LANG" (ex: LANG="fr_FR.UTF-8")
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 8. Après l'installation, il faut impérativement valoriser la variable d'environnement JAVA_HOME.Installation du serveur
La version du serveur doit impérativement correspondre à la version du client Elasticsearch présent dans le produit (version mineure identique).Version du produit | Version Elasticsearch |
---|---|
6.05.xx | 2.4.1 |
6.06.xx | 2.4.6 |
# Ajout de la clé du repo Elastic dans APT
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
# Ajout du repo Elastic dans la liste d'APT
echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list
# Installation d'Elacticsearch (tenir compte de la version compatible avec le produit installé)
sudo apt-get update && sudo apt-get install elasticsearch=2.4.x
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.JVM_ROUTE
avec JVM_ROUTE l'identifiant utilisé par le serveur Tomcat. Par défaut jvmRoute est égal à 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
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
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
Cette action ne dispense pas mettre en place une sonde de monitoring sur l'espace disque (log et data)
Vérification de l'installation
Depuis un navigateur, se connecter à l'URL http://192.168.1.73:9200/_cluster/healthMis à jour le 1 mars 2019
Connectez-vous (avec vos identifiants Communauté) pour suggérer une correction ou un complément :