Présentation
Elasticsearch est une plate-forme utilisée pour les recherches en texte intégral en temps réel dans les applications où une grande quantité de données doit être analysée. En combinaison avec d'autres outils, tels que Kibana, Logstash, X-Pack, etc., Elasticsearch peut agréger et surveiller le Big Data à grande échelle.
Avec sa prise en charge de l'API RESTful , vous pouvez facilement gérer vos données à l'aide de la méthode HTTP courante. En raison de sa rapidité et de sa facilité d'utilisation, il est également devenu adapté aux tâches plus complexes gérées par Hadoop et Spark.
Dans ce tutoriel, nous allons vous montrer comment tout préparer et comment installer Elasticsearch sur Ubuntu 18.04 . Les étapes d'installation devraient également fonctionner pour d'autres distributions Linux.
Prérequis
- Un système basé sur Ubuntu (ce guide utilise Ubuntu 18.04)
- Accès à un terminal ou à une ligne de commande
- Un utilisateur avec des autorisations sudo pour installer les packages
Installer les dépendances nécessaires
Étant donné qu'Elasticsearch s'exécute sur Java, vous devez installer le Java Development Kit (JDK) .
Vous pouvez vérifier si Java est installé et la version sur votre machine Ubuntu avec :
java -version
La sortie affiche la version installée de Java.
Si Java n'est pas installé, vous obtiendrez le message bash standard :bash:/usr/bin/java :No such file or directory . N'oubliez pas qu'au préalable, vous avez la possibilité d'utiliser une commande bash pour vérifier si un fichier ou un répertoire existe.
Avant de poursuivre l'installation, mettez à jour l'index du package :
sudo apt update
Pour installer le JDK par défaut, exécutez la commande suivante :
sudo apt install openjdk-8-jdk
Une fois le processus terminé, exécutez la java -version
commander à nouveau. La sortie affiche la version suivante dans notre cas :
Pour autoriser l'accès à vos référentiels via HTTPS, vous devez installer un package de transport APT :
sudo apt install apt-transport-https
La sortie ci-dessus montre la partie finale lorsque le processus est terminé.
Installer et télécharger Elasticsearch sur Ubuntu
Après avoir confirmé Java et apt-transport-https
installé avec succès, passez aux étapes d'installation d'Elasticsearch.
Ajouter un référentiel Elasticsearch
Tout d'abord, mettez à jour la clé GPG pour le référentiel Elasticsearch.
Utilisez le wget
commande pour extraire la clé publique :
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
La sortie doit afficher OK
si tout s'est passé comme il se doit.
Ensuite, utilisez cette commande pour ajouter le référentiel à votre système.
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Dans la commande ci-dessus, nous avons utilisé 7.x puisqu'il s'agit de la dernière version d'Elasticsearch au moment de la rédaction de ce guide.
Installer Elasticsearch
Enfin, il est temps d'installer Elasticsearch.
Mettez à jour l'index du package une fois de plus avant de continuer.
sudo apt update
Lancez ensuite l'installation :
sudo apt install elasticsearch
Le paquet fait environ 300 Mo. Laissez le système télécharger l'archive et terminer l'installation.
Démarrer le service Elasticsearch
Une fois l'installation terminée, Elasticsearch ne s'exécute pas tant que vous ne l'avez pas démarré. De plus, lorsque vous redémarrez la machine, vous devez relancer le service Elasticsearch car il ne démarre pas automatiquement.
Pour qu'Elasticsearch se recharge automatiquement au redémarrage du système, utilisez les commandes suivantes :
Tout d'abord, rechargez la configuration systemd :
sudo systemctl daemon-reload
Ensuite, activez le service Elasticsearch avec :
sudo systemctl enable elasticsearch.service
Et enfin, une fois le service activé, démarrez Elasticsearch :
sudo systemctl start elasticsearch.service
Laissez le processus se terminer. Cela peut prendre quelques instants. Il n'y aura pas de réponse spécifique du terminal.
Désormais, Elasticsearch démarrera chaque fois que vous allumerez ou redémarrerez le système.
Si vous apportez des modifications aux fichiers de configuration ou si vous devez redémarrer Elasticsearch pour une raison quelconque, utilisez :
sudo systemctl restart elasticsearch.service
Lorsque vous devez arrêter le service, utilisez la commande suivante :
sudo systemctl stop elasticsearch.service
Vérifier l'état d'Elasticsearch
Une fois que vous avez fini d'utiliser les commandes pour démarrer, redémarrer et arrêter Elasticsearch, vous pouvez également vérifier l'état du service.
Pour ce faire, saisissez :
service elasticsearch status
La sortie affiche l'état du service, des tâches et d'autres informations.
Configurer Elasticsearch
Elasticsearch est préconfiguré pour une utilisation de base. Si vous n'utilisez qu'un seul nœud dans votre configuration, vous n'avez pas trop besoin de reconfigurer l'outil.
Pour apporter des modifications à la configuration Elasticsearch par défaut , modifiez le elasticsearch.yml dossier. Le fichier se trouve dans /etc/elasticsearch répertoire.
La configuration de la journalisation se trouve dans /var/log/elasticsearch/logging.yml dossier. Vous pouvez laisser les valeurs par défaut pour la journalisation pour le moment et y revenir plus tard si nécessaire.
Autoriser l'accès à distance
La configuration par défaut ne permet pas l'accès à votre machine par d'autres hôtes. Pour autoriser l'accès à distance, utilisez un éditeur de texte de votre choix et ouvrez elasticsearch.yml fichier.
Nous utiliserons vim :
sudo vim /etc/elasticsearch/elasticsearch.yml
Faites défiler jusqu'au Réseau section. Trouvez la ligne qui dit #network.host
.
Décommentez la ligne (supprimez le signe dièse (#)), définissez l'adresse IP sur 0.0.0.0
, et ajoutez ces lignes :
transport.host: localhost
transport.tcp.port: 9300
http.port: 9200
La section devrait ressembler à ceci :
Quittez et enregistrez les modifications. Si vous travaillez dans vim , saisissez :wq
.
Cette configuration permet aux hôtes distants d'accéder à cette machine.
Utiliser UFW pour sécuriser Elasticsearch (facultatif)
Si vous autorisez l'accès à distance à Elasticsearch, nous vous conseillons vivement d'utiliser l'outil UFW, comme mesure de sécurité minimale.
Le pare-feu non compliqué (UFW) est intégré à Linux et désactivé par défaut. Activez UFW et créez quelques règles pour limiter l'exposition de votre réseau.
Avant d'activer UFW, ajoutez les règles nécessaires. Pour l'accès à distance via SSH, vous devez autoriser l'accès sur le port 22 (ou le port personnalisé si vous avez modifié la configuration SSH par défaut).
Dans le terminal, tapez :
sudo ufw allow 22
Ensuite, vous devez autoriser l'accès sur le port 9200 pour votre machine distante. Elasticsearch écoute sur ce port les requêtes entrantes.
Créez la règle avec cette commande :
sudo ufw allow from external_IP to any port 9200
Modifier external_IP
avec l'IP de la machine distante qui sera utilisée pour accéder à Elasticsearch.
Enfin, activez l'outil UFW :
sudo ufw enable
Voici l'exemple de sortie pour les commandes ci-dessus :
Pour vous assurer que vous avez correctement ajouté les règles, vérifiez l'état d'UFW.
sudo ufw status
Cette commande affiche à la fois l'état et les détails des règles que vous avez créées.
Tester Elasticsearch
Maintenant que le service Elasticsearch est actif, que la machine est accessible à distance et que vous avez activé UFW, vous pouvez utiliser curl
pour tester si l'outil fonctionne.
Le port d'écoute par défaut pour Elasticsearch est 9200 . Ainsi, vous pouvez envoyer une requête HTTP sur l'hôte local et voir si vous obtenez une réponse.
Pour cela, saisissez :
curl localhost:9200
La sortie devrait ressembler à celle ci-dessus. Vous verrez les informations de version et d'autres champs avec la date, le hachage, etc.