GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer Elasticsearch sur CentOS 8 / RHEL 8

Elasticsearch est un moteur de recherche open source basé sur Apache Lucene, qui propose un moteur de recherche en texte intégral distribué en temps réel avec une interface Web HTTP et des documents JSON sans schéma.

Elasticsearch est développé en Java. La version open source d'Elasticsearch est publiée sous la licence Apache 2.0 et la version commerciale est publiée sous la licence Elastic. Actuellement, c'est le moteur de recherche d'entreprise le plus populaire suivi d'Apache Solr.

Cet article vous aidera à installer Elasticsearch sur CentOS 8 / RHEL 8.

Prérequis

Elasticsearch est construit à l'aide de Java et le package comprend une version groupée d'OpenJDK, ce qui signifie que vous n'avez pas besoin d'installer Java séparément pour l'installation d'Elasticsearch. L'OpenJDK fourni se trouve dans le répertoire JDK du répertoire d'accueil d'Elasticsearch /usr/share/elasticsearch.

Installer Java

Pour utiliser votre propre version de Java, installez la version LTS de Java et définissez la variable d'environnement JAVA_HOME sur votre système.

LIRE :Comment installer Java sur CentOS 8 / RHEL 8

Vérifiez la version de Java installée sur le système.

java -version

Sortie :

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

Définissez JAVA_HOME avec la commande ci-dessous.

export JAVA_HOME=<JAVA_PATH>
Après avoir installé Elasticsearch sur votre système, définissez JAVA_HOME dans le fichier /etc/sysconfig/elasticsearch pour permettre à Elasticsearch d'utiliser la version Java personnalisée.

Configurer le référentiel Elasticsearch

Elastic propose un package binaire pré-construit (rpm) pour RHEL et ses dérivés. Téléchargez et installez la clé de signature publique d'Elastic.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Version gratuite

Ce forfait est libre d'utilisation. Il contient des fonctionnalités commerciales open source, gratuites et payantes. Lorsque vous installez un package, vous recevez une licence de base. Vous pouvez visiter la page d'abonnement pour lister toutes les fonctionnalités incluses dans les versions gratuites et commerciales.

Vous pouvez démarrer un essai de 30 jours pour essayer toutes les fonctionnalités payantes. A l'issue de la période d'essai, les fonctionnalités commerciales fonctionnent en mode dégradé. Vous pouvez revenir à une licence de base, prolonger la période d'essai ou acheter un abonnement.

cat << EOF > /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
EOF

Version open source

Ce package est gratuit et ne contient que des fonctionnalités disponibles sous la licence Apache 2.0.

cat << EOF > /etc/yum.repos.d/elasticsearch.repo 
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

Installer Elasticsearch

Installez Elasticsearch (v7.x) à l'aide de la commande suivante.

Version gratuite

yum install -y elasticsearch

Version open source

yum install -y elasticsearch-oss

Activez Elasticsearch pour qu'il démarre automatiquement au démarrage du système.

systemctl daemon-reload

systemctl enable elasticsearch

systemctl start elasticsearch

Une fois que vous avez démarré le service Elasticsearch, attendez au moins une minute pour le laisser démarrer complètement. Sinon, les tests échoueront.

Elastisearch devrait maintenant écouter sur le port 9200 pour traiter les requêtes HTTP. Utilisez curl pour obtenir la réponse.

curl -X GET 'http://localhost:9200'

Vous devriez obtenir une réponse comme ci-dessous.

{
  "name" : "centos8.itzgeek.local",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "s6PwCJnoS7e7Pb3QMzkINg",
  "version" : {
    "number" : "7.4.0",
    "build_flavor" : "oss",
    "build_type" : "rpm",
    "build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
    "build_date" : "2019-09-27T08:36:48.569419Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Configurer Elasticsearch

Les fichiers de configuration Elasticsearch se trouvent dans le répertoire /etc/elasticsearch/. elasticsearch.yml est le fichier de configuration principal d'Elasticsearch, et il contient les paramètres par défaut pour l'exécution du cluster de développement. Les journaux Elasticsearch sont stockés dans le répertoire /var/log/elasticsearch.

Nom du cluster

Le paramètre cluster.name est utilisé pour découvrir et joindre automatiquement le nœud avec d'autres nœuds. Si un groupe de nœuds Elasticsearch sur le même réseau a le même nom de cluster, ils se découvriront et formeront un cluster.

Modifiez le nom de cluster par défaut du nœud Elasticsearch pour éviter la jonction automatique avec d'autres nœuds sur le même réseau. Assurez-vous d'utiliser un nom de cluster unique.

Modifiez le fichier elasticsearch.yml.

vi /etc/elasticsearch/elasticsearch.yml

Remplacez els-cluster par le nom de votre cluster Elasticsearch.

cluster.name: els-cluster

Nom du nœud

Le node.name est comme un nom d'hôte pour le serveur Elasticsearch, généré dynamiquement lors du démarrage du service. Vous pouvez définir le nom du nœud en mettant à jour la ligne ci-dessous. Remplacez els-cluster-node01 par le nom de votre nœud Elasticsearch.

node.name: els-cluster-node01

Adresse d'écoute

Elasticsearch se lie à localhost (127.0.0.1) et écoute le port numéro 9200 pour le trafic HTTP par défaut. Il utilise le numéro de port 9300 - 9400 pour la communication entre les nœuds du cluster.

Pour former un cluster Elasticsearch multinœud ou utiliser le nœud Elasticsearch pour une utilisation en production afin de permettre aux applications d'accéder au nœud Elasticsearch, vous devez configurer Elasticsearch pour qu'il écoute l'adresse IP du système.

### Listening on particular IPv4 ###

network.host: 192.168.0.10

OU

### Listen on All IP Address ###

network.host: 0.0.0.0

Vous devez également mettre à jour les paramètres ci-dessous avec l'adresse IP de votre système.

discovery.seed_hosts: ["192.168.0.10"]

Redémarrez le service Elasticsearch.

systemctl restart elasticsearch

Une fois que vous avez redémarré le service Elasticsearch, attendez au moins une minute pour permettre à Elasticsearch de démarrer complètement.

Vérifiez si Elasticsearch écoute sur le port 9200 sur toutes les adresses IP ou une adresse IP particulière avec la commande netstat.

LIRE : Commande netstat introuvable sur CentOS 8 / RHEL 8

 netstat -antup | grep -i 9200

Sortie :

tcp6       0      0 :::9200                 :::*                    LISTEN      2143/java

Vérifiez que le nom du nœud et le nom du cluster ont été définis correctement à l'aide de curl.

curl -X GET 'http://192.168.0.10:9200'

Vous devriez obtenir une réponse comme ci-dessous.

{
  "name" : "els-cluster-node01",
  "cluster_name" : "els-cluster",
  "cluster_uuid" : "s6PwCJnoS7e7Pb3QMzkINg",
  "version" : {
    "number" : "7.4.0",
    "build_flavor" : "oss",
    "build_type" : "rpm",
    "build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
    "build_date" : "2019-09-27T08:36:48.569419Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Travailler avec Elasticsearch

Ajoutons quelques données à Elasticsearch. Vous pouvez utiliser la commande curl pour lire, ajouter, supprimer et mettre à jour les données dans Elasticsearch sur le port 9200 à l'aide d'une API RESTful.

Les documents sont stockés au format suivant

Elasticsearch ⇒ Indices ⇒ Types ⇒ Documents ⇒ Champs

Indice : Pluriel d'un index, où les données d'Elasticsearch sont stockées.

Type : Il contient plusieurs documents, et c'est comme le type de données.

Documents : Il contient les champs de données.

Champs : Données réelles.

Ajouter des données

Utilisez la commande curl suivante pour ajouter des données à notre Elasticsearch.

curl -XPUT 'http://localhost:9200/itzgeek/howtos/1' -H 'Content-Type: application/json' -d '
{ 
    "Title" : "Install Elasticsearch On RHEL 8", 
    "Date"  : "May 2019", 
    "Tag"   : "RHEL"
}'

Vous devriez obtenir la réponse suivante avec "result":"created."

{"_index":"itzgeek","_type":"howtos","_id":"1","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}

Où,

itzgeek : L'index du cluster Elasticsearch.

tuto : Le type de document

1 : L'identifiant de l'entrée sous les howtos et l'index itzgeek.

Lire les données

Utilisez la commande suivante pour interroger les données sur Elasticsearch.

curl -X GET 'http://localhost:9200/itzgeek/howtos/1'

Ajoutez ?pretty=true à la commande ci-dessus pour obtenir une sortie formatée.

curl -X GET 'http://localhost:9200/itzgeek/howtos/1?pretty=true'

La sortie ressemblera à ci-dessous.

{
  "_index" : "itzgeek",
  "_type" : "howtos",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 0,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "Title" : "Install Elasticsearch On RHEL 8",
    "Date" : "May 2019",
    "Tag" : "RHEL"
  }
}

Mettre à jour les données

Utilisez la commande suivante pour mettre à jour les données.

curl -XPUT 'http://localhost:9200/itzgeek/howtos/1' -H 'Content-Type: application/json' -d '
{ 
    "Title" : "Install Elasticsearch On RHEL 8", 
    "Date"  : "May 2019", 
    "Tag"   : "RHEL"
}'

Il n'y aura aucun changement dans l'index, le type et le document. Mais, les champs auront des données modifiées.

La réponse devrait ressembler à celle ci-dessous, contenir "_version":2 et "result":"updated" ce qui signifie que le document a été mis à jour.

{"_index":"itzgeek","_type":"howtos","_id":"1","_version":2,"result":"updated","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":1,"_primary_term":1}

Supprimer des données

Utilisez la commande suivante pour supprimer le document.

curl -X DELETE 'http://localhost:9200/itzgeek/howtos/1'

La réponse ressemblera à ci-dessous. Si le document est trouvé, vous obtiendrez "result":"supprimé".

{"_index":"itzgeek","_type":"howtos","_id":"1","_version":3,"result":"deleted","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":2,"_primary_term":1}

Si le document n'est pas trouvé, vous obtiendrez "result":"not_found".

{"_index":"itzgeek","_type":"howtos","_id":"1","_version":4,"result":"not_found","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":3,"_primary_term":1}

Conclusion

J'espère que vous avez appris à installer Elasticsearch sur CentOS 8 / RHEL 8 et à ajouter, lire, supprimer et mettre à jour des données dans Elasticsearch. Vous pouvez également configurer un cluster Elasticsearch à plusieurs nœuds pour gérer une grande quantité de données.


Cent OS
  1. Comment installer Gradle sur CentOS 8/7 et RHEL 8/7

  2. Comment installer Oracle Java 12/11/8 sur CentOS 6/RHEL 6

  3. Comment installer Graylog2 sur CentOS 7 / RHEL 7

  4. Comment installer Elasticsearch sur CentOS 8 / RHEL 8

  5. Comment installer Elasticsearch sur CentOS/RHEL 8

Comment installer Java sur RHEL 8 / CentOS 8 Linux

Comment installer Java sur CentOS 7

Comment installer Elasticsearch sur CentOS 7

Comment installer Elasticsearch sur CentOS 8

Comment installer Graylog sur CentOS 8 / RHEL 8

Comment installer Graylog 3.0 sur CentOS 7 / RHEL 7