Elasticsearch sur Managed Flex Server

Elasticsearch est un moteur de recherche basé sur Lucene. Le programme écrit en Java enregistre ses données dans un format NoSQL (JSON). La communication avec les clients s’effectue par le biais d’une API RESTful. Avec Solr, Elasticsearch est le moteur de recherche le plus répandu. Cet article décrit comment installer et utiliser Elasticsearch sur votre Managed Flex Server.

Exigences

Elasticsearch peut être mis en service à partir de Managed Flex Server M.

Installation

Nous vous conseillons de créer un dossier ~/app/ pour vos applications et d’y créer un sous-dossier propre pour chacune d’entre elles. Vous avez ainsi toujours un ordre propre et un aperçu clair. Pour Elasticsearch, nous créons donc le dossier ~/app/elasticsearch.

mkdir -p ~/app/elasticsearch

 Dès lors, la première étape consiste à installer Elasticsearch dans la version souhaitée (la plus récente). Vous la trouverez sur le site Web d’elastic. Sélectionnez la version pour LINUX X86_64. Dézippez le contenu de l’archive dans le répertoire créé ci-dessus.

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-X.X.X.tar.gz -O /tmp/elastic.tar.gz
tar -xzf /tmp/elastic.tar.gz -C ~/app/elasticsearch
rm -rf /tmp/elastic.tar.gz
cd ~/app/elasticsearch
ln -s elasticsearch-X.X.X current

Vous trouverez ensuite votre Elasticsearch dans le dossier ~/app/elasticsearch/current/. Par l’utilisation du Current Symlink, il est facile (par exemple pour les mises à niveau vers de nouvelles versions) d’utiliser et de gérer les installations parallèles de manière propre et claire.

Java est déjà préinstallé sur votre Managed Flex Server.
Pour que Elasticsearch puisse localiser OpenJDK, vous devez exécuter pour cela les commandes suivantes:

echo 'export JAVA_HOME="/usr/local/openjdk12"' >> ~/.profile
source ~/.profile
			

Configuration d’Elasticsearch

La configuration d’Elasticsearch est effectuée dans le fichier config/elasticsearch.yml dans votre répertoire Elasticsearch. Le fichier est richement commenté et présente des conseils sur les options.

Chemins d’accès
Faites bien attention aux chemins d’accès vers les données (path.data) et les journaux (path.logs). Pour ces derniers, assurez-vous obligatoirement qu’ils sont supprimés périodiquement et qu’ils ne remplissent pas soudainement votre espace Web. Par défaut, les deux sont écrits respectivement dans un sous-répertoire du dossier d’installation.
Réseau
L’API REST d’Elasticsearch est disponible par défaut sur l’IP 127.0.0.1 et le port 9200 (port 9300 pour la communication Node). Normalement, aucune modification n’est nécessaire ici. Pour des raisons de sécurité, ne liez surtout jamais une adresse IP publique!
X-Pack
Comme X-Pack n’est pas supporté par FreeBSD (ainsi que diverses autres plateformes), vous devez le désactiver dans la configuration. Editez le fichier de configuration avec n’importe quel éditeur de texte ou ajoutez directement la configuration correspondante via le shell:
echo -e "\n\n# disable xpack as it is not supported on FreeBSD, $USER, $(date)\nxpack.ml.enabled: false" >> config/elasticsearch.yml
Disk Watermark
La limite pour le minimum d'espace de stockage disponible est fixée par défaut en pourcentage et la limite se déclenche trop tôten en raison de la grande quantité d'espace. Les valeurs doivent donc être définies en GB.
echo -e "\n\n# disable xpack as it is not supported on FreeBSD, $USER, $(date)\nxpack.ml.enabled: false" >> ~/app/elasticsearch/current/config/elasticsearch.yml
echo -e "\n\n# adjust low disk watermark, $USER, $(date)\ncluster.routing.allocation.disk.watermark.low: 20G" >> ~/app/elasticsearch/current/config/elasticsearch.yml
echo -e "\n\n# adjust high disk watermark, $USER, $(date)\ncluster.routing.allocation.disk.watermark.high: 10G" >> ~/app/elasticsearch/current/config/elasticsearch.yml
echo -e "\n\n# adjust watermark flood stage, $USER, $(date)\ncluster.routing.allocation.disk.watermark.flood_stage: 5G" >> ~/app/elasticsearch/current/config/elasticsearch.yml

Démarrage d’Elasticsearch

Une fois Elasticsearch installé et configuré avec succès, vous pouvez démarrer le service pour test avec ~/app/elasticsearch/current/bin/elasticsearch:

./bin/elasticsearch
Editions de Elasticsearch

Notez qu’Elasticsearch peut prendre jusqu’à une demi-minute pour démarrer et être opérationnel.

Pour de plus amples détails et d’autres options de configuration d’Elasticsearch, consultez la documentation officielle d’Elasticsearch.

Intégration

Fonctionnement avec le Custom Service Control

Vous avez jusqu’à présent démarré votre Elasticsearch manuellement via le shell. Bien que cela puisse être un moyen facile lors du test et du développement, il ne s’agit pas d’une option viable pour le fonctionnement productif. Le Custom Service Control (CSC) peut s’occuper du fonctionnement et de la gestion automatique d’Elastic, par exemple le démarrage et l’arrêt pendant les travaux de maintenance sur votre serveur.

La configuration dans le CSC est très simple. Pour ce faire, créez un nouveau Custom Service pour Elasticsearch:

hpservices supervisord add elasticsearch
successfully created dir for elasticsearch: /home/username/.services/supervisord/elasticsearch
successfully created dir for elasticsearch: /home/username/.services/supervisord/elasticsearch/log
supervisord service config file written: /home/username/.services/supervisord/elasticsearch/service.conf

Un cadre de configuration pour le nouveau service est alors créé dans le fichier ~/.services/supervisord/elasticsearch/service.conf. Pour Elasticsearch, la command doit être modifiée et la variable d'environnement doit être rajoutée, sinon vous pouvez accepter toutes les valeurs proposées (enlevez le point-virgule en début de ligne).

~/.services/supervisord/elasticsearch/service.conf
[program:elasticsearch]
command=%(ENV_HOME)s/app/elasticsearch/current/bin/elasticsearch ; the program (can take args)
directory=%(ENV_HOME)s/app/elasticsearch/ ; directory to cwd to before exec (default no cwd)
autostart=true ; start application at supervisord start (default: true)
stopwaitsecs=10 ; max num secs to wait before SIGKILL (default 10)
stdout_logfile=%(ENV_HOME)s/.services/supervisord/elasticsearch/log/default.log
stdout_logfile_maxbytes=1MB ; filesize at which to rotate logfiles (default ist 50MB)
stdout_logfile_backups=10 ; number of stdout logfile backups (0 means none, default 10)
stderr_logfile=%(ENV_HOME)s/.services/supervisord/elasticsearch/log/default.err
stderr_logfile_maxbytes=1MB ; filesize at which to rotate logfiles (default is 50MB)
stderr_logfile_backups=10 ; number of stderr logfile backups (0 means none, default 10)
environment=JAVA_HOME="/usr/local/openjdk12"

supervisorctl update vous permet d’activer la nouvelle configuration pour le service Elasticsearch:

supervisorctl update
elasticsearch: added process group

Attention: En cas d'erreur, "hpservices supervisord start" doit d'abord être exécuté une fois.

Pour de plus amples détails sur l’utilisation et les possibilités qui vous sont offertes par le CSC, consultez le manuel du Custom Service Control.

 

Avez-vous trouvé ce que vous cherchiez?

Nos professionnels de l’assistance se feront un plaisir de vous aider personnellement!

 

© 2001 - Hostpoint AG