Elasticsearch est un moteur d'analyse distribué open source basé sur Apache Lucene. Il prend des données non structurées de différents emplacements et les stocke selon le mappage spécifié par l'utilisateur et les indexe. Il prend en charge les opérations RESTful et vous permet de rechercher et d'analyser d'énormes volumes de données en temps réel.
Dans ce tutoriel, nous allons vous montrer comment installer Elasticsearch sur Ubuntu 20.04.
Prérequis
- Un serveur exécutant le serveur Ubuntu 20.04.
- Un mot de passe root est configuré sur le serveur.
Mise en route
Avant de commencer, vous devrez mettre à jour votre système avec la dernière version. Vous pouvez le mettre à jour avec la commande suivante :
apt-get update -y
Une fois votre système mis à jour, installez les autres packages requis avec la commande suivante :
apt-get install curl gnupg2 apt-transport-https unzip -y
Une fois tous les packages installés, vous pouvez passer à l'étape suivante.
Installer Elasticsearch
Par défaut, le package Elasticsearch n'est pas disponible dans le référentiel par défaut d'Ubuntu. Vous devrez donc ajouter le référentiel Elasticsearch à votre système. Tout d'abord, importez la clé GPG avec la commande suivante :
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
Ensuite, ajoutez le référentiel Elasticsearch avec la commande suivante :
sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
Une fois le référentiel ajouté, mettez à jour le cache du référentiel et installez Elasticsearch avec la commande suivante :
apt-get update -y
apt-get install elasticsearch -y
Une fois l'installation terminée, démarrez le service Elasticsearch et activez-le pour qu'il démarre au redémarrage du système :
systemctl start elasticsearch
systemctl enable elasticsearch
Vous pouvez maintenant vérifier l'état du service Elasticsearch avec la commande suivante :
systemctl status elasticsearch
Vous devriez obtenir le résultat suivant :
? elasticsearch.service - Elasticsearch Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2021-01-09 11:13:09 UTC; 5s ago Docs: https://www.elastic.co Main PID: 5110 (java) Tasks: 65 (limit: 2353) Memory: 1.2G CGroup: /system.slice/elasticsearch.service ??5110 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl> ??5304 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller Jan 09 11:12:50 ubuntu2004 systemd[1]: Starting Elasticsearch... Jan 09 11:13:09 ubuntu2004 systemd[1]: Started Elasticsearch.
Vérifier Elasticsearch
Par défaut, Elasticsearch écoute sur le port 9200. Vous pouvez le vérifier à l'aide de la commande suivante :
ss -antpl | grep 9200
Vous devriez obtenir le résultat suivant :
LISTEN 0 4096 [::ffff:127.0.0.1]:9200 *:* users:(("java",pid=5110,fd=257)) LISTEN 0 4096 [::1]:9200 [::]:* users:(("java",pid=5110,fd=255))
Vous pouvez également vérifier Elasticsearch à l'aide de la commande ci-dessous :
curl -X GET "localhost:9200/"
Vous devriez obtenir la réponse suivante :
{ "name" : "ubuntu2004", "cluster_name" : "elasticsearch", "cluster_uuid" : "mToloP2UQGilY7nUCeBnjg", "version" : { "number" : "7.10.1", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa", "build_date" : "2020-12-05T01:00:33.671820Z", "build_snapshot" : false, "lucene_version" : "8.7.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
Configurer Elasticsearch
Le fichier de configuration principal d'Elasticsearch se trouve dans /etc/elasticsearch/elasticsearch.yml. Vous pouvez définir le nom et le port de votre cluster et autoriser la connexion à distance en modifiant ce fichier.
Ouvrez le fichier elasticsearch.yml dans votre éditeur nano :
nano /etc/elasticsearch/elasticsearch.yml
Modifiez les lignes suivantes :
cluster.name: my-cluster network.host: 172.16.0.10 discovery.seed_hosts: 172.16.0.10
Enregistrez et fermez le fichier puis redémarrez le service Elasticsearch pour appliquer la configuration :
systemctl restart elasticsearch
À ce stade, Elasticsearch est configuré pour accepter la connexion de l'hôte distant. Vous pouvez maintenant passer à l'étape suivante.
Configurer le pare-feu UFW
Par défaut, UFW est installé dans Ubuntu 20.04. S'il n'est pas installé, vous pouvez l'installer avec la commande suivante :
apt-get install ufw -y
Une fois l'UFW installé, autorisez la connexion SSH et le port Elasticsearch pour l'hôte distant (172.16.0.100) avec la commande suivante :
ufw allow ssh
ufw allow from 172.16.0.100 to any port 9200
Ensuite, activez le pare-feu UFW avec la commande suivante :
ufw enable
Ensuite, vérifiez l'état des règles de pare-feu UFW avec la commande suivante :
ufw status
Vous devriez obtenir le résultat suivant :
Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 9200 ALLOW 172.16.0.100 22/tcp (v6) ALLOW Anywhere (v6)
Conclusion
Toutes nos félicitations! vous avez installé avec succès Elasticsearch et l'avez configuré pour une connexion à distance sur le serveur Ubuntu 20.04. Vous pouvez désormais intégrer Elasticsearch à votre application. N'hésitez pas à me demander si vous avez des questions.