
Elasticsearch est un moteur de recherche et d'analyse en texte intégral distribué open source. Il prend en charge les opérations RESTful et vous permet de stocker, rechercher et analyser de gros volumes de données en temps réel. Elasticsearch est l'un des moteurs de recherche les plus populaires alimentant des applications qui ont des exigences de recherche complexes telles que les grands magasins de commerce électronique et les applications analytiques.
Ce tutoriel couvre l'installation d'Elasticsearch sur CentOS 8.
Installation de Java #
Elasticsearch est une application Java, la première étape consiste donc à installer Java.
Exécutez la commande suivante en tant qu'utilisateur racine ou utilisateur avec privilèges sudo pour installer le package OpenJDK :
sudo dnf install java-11-openjdk-devel
Vérifiez l'installation de Java en imprimant la version de Java :
java -version
Le résultat devrait ressembler à ceci :
openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)
Installation d'Elasticsearch #
Elasticsearch n'est pas disponible dans les référentiels CentOS 8 standard. Nous allons l'installer à partir du référentiel Elasticsearch RPM.
Importez le GPG du référentiel en utilisant le rpm
commande :
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Ouvrez votre éditeur de texte et créez le fichier de référentiel le /etc/yum.repos.d
répertoire :
sudo nano /etc/yum.repos.d/elasticsearch.repo
Collez le contenu suivant dans le fichier :
/etc/yum.repos.d/elasticsearch.repo[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Enregistrez le fichier et fermez votre éditeur de texte.
Au moment de la rédaction de cet article, la dernière version d'Elasticsearch est7.6
. Si vous souhaitez installer une version précédente d'Elasticsearch, modifiez 7.x
dans la commande ci-dessus avec la version dont vous avez besoin. Maintenant que le référentiel est activé, installez le package Elasticsearch en tapant :
sudo dnf install elasticsearch
Une fois le processus d'installation terminé, démarrez et activez le service :
sudo systemctl enable elasticsearch.service --now
Pour vérifier qu'Elasticsearch est en cours d'exécution, utilisez curl
pour envoyer une requête HTTP au port 9200 sur localhost :
curl -X GET "localhost:9200/"
La sortie ressemblera à ceci :
{
"name" : "centos8.localdomain",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "V_mfjn2PRJqX3PlZb_VD7w",
"version" : {
"number" : "7.6.0",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "7f634e9f44834fbc12724506cc1da681b0c3b1e3",
"build_date" : "2020-02-06T00:09:00.449973Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Cela peut prendre 5 à 10 secondes pour que le service démarre. Si vous voyez curl: (7) Failed to connect to localhost port 9200: Connection refused
, attendez quelques secondes et réessayez.
Pour afficher les messages enregistrés par le service Elasticsearch, utilisez la commande suivante :
sudo journalctl -u elasticsearch
À ce stade, vous avez installé Elasticsearch sur votre serveur CentOS.
Configuration d'Elasticsearch #
Les données Elasticsearch sont stockées dans /var/lib/elasticsearch
répertoire, les fichiers de configuration sont situés dans /etc/elasticsearch
.
Par défaut, Elasticsearch est configuré pour écouter uniquement sur localhost. Si le client qui se connecte à la base de données s'exécute également sur le même hôte et que vous configurez un cluster à nœud unique, vous n'avez pas besoin de modifier le fichier de configuration par défaut.
Numéro d'accès à distance
Par défaut, Elasticsearch n'implémente pas l'authentification, il est donc accessible à toute personne pouvant accéder à l'API HTTP. Si vous souhaitez autoriser l'accès à distance à votre serveur Elasticsearch, vous devrez configurer votre pare-feu et autoriser l'accès au port Elasticsearch 9200 uniquement à partir de clients de confiance.
Par exemple, pour autoriser les connexions uniquement à partir de 192.168.121.80
, saisissez la commande suivante :
Exécutez la commande suivante pour autoriser l'évaluation à partir de l'adresse IP de confiance distante sur le port 9200
:
N'oubliez pas de changersudo firewall-cmd --new-zone=elasticsearch --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=elasticsearch --add-source=192.168.121.80/32 --permanent
sudo firewall-cmd --zone=elasticsearch --add-port=9200/tcp --permanent
sudo firewall-cmd --reload
192.168.121.80
avec votre adresse IP distante. Plus tard, si vous souhaitez autoriser l'accès à partir d'une autre adresse IP, utilisez :
sudo firewall-cmd --zone=elasticsearch --add-source=<IP_ADDRESS> --permanent
sudo firewall-cmd --reload
Une fois le pare-feu configuré, l'étape suivante consiste à modifier la configuration d'Elasticsearch et à autoriser Elasticsearch à écouter les connexions externes.
Pour ce faire, ouvrez le elasticsearch.yml
fichier de configuration :
sudo nano /etc/elasticsearch/elasticsearch.yml
Recherchez la ligne qui contient network.host
, décommentez-le et remplacez la valeur par 0.0.0.0
:
network.host: 0.0.0.0
Si vous avez plusieurs interfaces réseau sur votre machine, spécifiez l'adresse IP de l'interface pour forcer Elasticsearch à n'écouter que l'interface donnée.
Redémarrez le service Elasticsearch pour que les modifications prennent effet :
sudo systemctl restart elasticsearch
C'est ça. Vous pouvez maintenant vous connecter au serveur Elasticsearch depuis l'emplacement distant.