Table des matières

, , , ,

Installer la pile logicielle elasticsearch

Plusieurs méthodes d'installation sont disponibles sur le site officiel, on reprend ici la méthode d'installation sur une debian like.

Installation des nodes

Installation du node initial

Importer la clé GPG utilisée pour la signature des paquets :

apt-get install gpg
 
wget -qO - "https://artifacts.elastic.co/GPG-KEY-elasticsearch" | gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
#Installer le paquet pour les mises a jour via HTTPS
apt-get install apt-transport-https
 
# Ajouter le dépot elasticsearch
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-8.x.list
 
# Installer l'application à partir du dépot
apt-get update
apt-get install elasticsearch

Configuration du node

Une partition dédiée aux données de l'application est montée sur le répertoire /srv/elasticsearch

# Création des dossiers data et log
mkdir /srv/elasticsearch/{data,log}
 
# Restriction des droits d'accès
chown elasticsearch:elasticsearch /srv/elasticsearch/{data,log}
chmod u+rwx,g+rs-w,o-rwx /srv/elasticsearch/{data,log}

Modifier les valeurs des variables path.data et path.log dans le fichier de configuration /etc/elasticsearch/elasticsearch.yml.

...
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /srv/elasticsearch/data
#
# Path to log files:
#
path.logs: /srv/elasticsearch/log
#
...

Configuration du service

Pour démarrer automatiquement le service elasticsearch au démarrage de l’hôte :

systemctl daemon-reload
systemctl enable elasticsearch.service

Pour démarrer le service :

systemctl start elasticsearch.service

Vérifier l'état du node

Lors du premier démarrage du service, un mot de passe est définit pour le super utilisateur “elastic”. Le mot de passe sera nécessaire notamment pour interroger l'API.

Il peut être facilement redéfinit si besoin :

/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

Pour vérifier le bon fonctionnement du node (localement d'abord) avec curl :

curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic:"secret-passwod" https://localhost:9200

Depuis une machine distante, il faudra copier le certificat de l'autorité de certification ( /etc/elasticsearch/certs/http_ca.crt).

 

Regénérer un certificat

Si le nom d’hôte est modifié ou après avoir activer des interfaces supplémentaires, il faut regénérer un certificat avec le champ SAN mis à jour.

elasticsearch intègre un outil facilitant la génération des certificats elasticsearch-certutil :

# Pour regénérer un certificat SSL autosigné
/usr/share/elasticsearch/bin/elasticsearch-certutil cert --self-signed
 
# Pour générer la CSR à transmettre à un autorité de certification tierce
/usr/share/elasticsearch/bin/elasticsearch-certutil http

Une archive est générée, il faut mettre à jour la configuration pour utiliser le nouveau certificat.

Références