GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare Elasticsearch su CentOS 8 / RHEL 8

Elasticsearch è un motore di ricerca open source basato su Apache Lucene, offre un motore di ricerca full-text distribuito in tempo reale con un'interfaccia web HTTP e documenti JSON senza schema.

Elasticsearch è sviluppato in Java. La versione open source di Elasticsearch è rilasciata con la licenza Apache 2.0 e la versione commerciale è rilasciata con la licenza Elastic. Attualmente, è il motore di ricerca aziendale più popolare seguito da Apache Solr.

Questo post ti aiuterà a installare Elasticsearch su CentOS 8 / RHEL 8.

Prerequisiti

Elasticsearch è creato utilizzando Java e il pacchetto include una versione in bundle di OpenJDK, il che significa che non è necessario installare Java separatamente per l'installazione di Elasticsearch. L'OpenJDK in bundle si trova all'interno della directory JDK della home directory di Elasticsearch /usr/share/elasticsearch.

Installa Java

Per utilizzare la tua versione di Java, installa la versione LTS di Java e imposta la variabile di ambiente JAVA_HOME sul tuo sistema.

LEGGI :Come installare Java su CentOS 8 / RHEL 8

Verifica la versione di Java installata sul sistema.

java -version

Risultato:

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)

Imposta JAVA_HOME con il comando seguente.

export JAVA_HOME=<JAVA_PATH>
Dopo aver installato Elasticsearch sul tuo sistema, imposta JAVA_HOME nel file /etc/sysconfig/elasticsearch per consentire a Elasticsearch di utilizzare la versione Java personalizzata.

Imposta il repository Elasticsearch

Elastic offre un pacchetto binario (rpm) predefinito per RHEL e i suoi derivati. Scarica e installa la chiave di firma pubblica di Elastic.

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

Versione gratuita

Questo pacchetto è gratuito. Contiene funzionalità commerciali open source, gratuite ea pagamento. Quando installi un pacchetto, riceverai una licenza di base. Puoi visitare la pagina di abbonamento per elencare tutte le funzionalità incluse nelle versioni gratuite e commerciali.

Puoi iniziare una prova di 30 giorni per provare tutte le funzionalità a pagamento. Al termine del periodo di prova, le funzionalità commerciali operano in modalità degradata. Puoi ripristinare la licenza in una licenza di base, estendere la versione di prova o acquistare un abbonamento.

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

Versione open source

Questo pacchetto è gratuito e contiene solo funzionalità disponibili con la licenza 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

Installa Elasticsearch

Installa Elasticsearch (v7.x) utilizzando il comando seguente.

Versione gratuita

yum install -y elasticsearch

Versione open source

yum install -y elasticsearch-oss

Abilita Elasticsearch per l'avvio automatico durante l'avvio del sistema.

systemctl daemon-reload

systemctl enable elasticsearch

systemctl start elasticsearch

Una volta avviato il servizio Elasticsearch, attendi almeno un minuto per avviarlo completamente. In caso contrario, il test avrà esito negativo.

Ora Elastisearch dovrebbe essere in ascolto sulla porta 9200 per l'elaborazione delle richieste HTTP. Usa curl per ottenere la risposta.

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

Dovresti ricevere una risposta come quella di seguito.

{
  "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"
}

Configura Elasticsearch

I file di configurazione di Elasticsearch si trovano nella directory /etc/elasticsearch/. elasticsearch.yml è il file di configurazione principale di Elasticsearch e contiene le impostazioni predefinite per l'esecuzione del cluster di sviluppo. I log di Elasticsearch sono archiviati nella directory /var/log/elasticsearch.

Nome cluster

L'impostazione cluster.name viene utilizzata per rilevare e unire automaticamente il nodo con altri nodi. Se un gruppo di nodi Elasticsearch sulla stessa rete ha lo stesso nome cluster, si scopriranno a vicenda e formeranno un cluster.

Modifica il nome cluster predefinito del nodo Elasticsearch per evitare l'unione automatica con altri nodi sulla stessa rete. Assicurati di utilizzare un nome cluster univoco.

Modifica il file elasticsearch.yml.

vi /etc/elasticsearch/elasticsearch.yml

Sostituisci els-cluster con il nome del tuo cluster Elasticsearch.

cluster.name: els-cluster

Nome nodo

Il node.name è come un nome host per il server Elasticsearch, generato dinamicamente durante l'avvio del servizio. È possibile impostare il nome del nodo aggiornando la riga sottostante. Sostituisci els-cluster-node01 con il nome del tuo nodo Elasticsearch.

node.name: els-cluster-node01

Indirizzo di ascolto

Elasticsearch si collega a localhost (127.0.0.1) e rimane in ascolto sulla porta numero 9200 per il traffico HTTP per impostazione predefinita. Utilizza il numero di porta 9300 – 9400 per la comunicazione tra i nodi all'interno del cluster.

Per formare un cluster Elasticsearch multinodo o portare il nodo Elasticsearch per l'uso in produzione per consentire alle applicazioni di accedere al nodo Elasticsearch, è necessario configurare Elasticsearch in modo che ascolti l'indirizzo IP del sistema.

### Listening on particular IPv4 ###

network.host: 192.168.0.10

O

### Listen on All IP Address ###

network.host: 0.0.0.0

Devi anche aggiornare le seguenti impostazioni con l'indirizzo IP del tuo sistema.

discovery.seed_hosts: ["192.168.0.10"]

Riavvia il servizio Elasticsearch.

systemctl restart elasticsearch

Dopo aver riavviato il servizio Elasticsearch, attendi almeno un minuto per avviare completamente Elasticsearch.

Verifica se Elasticsearch è in ascolto sulla porta 9200 su tutti gli indirizzi IP o su un particolare indirizzo IP con il comando netstat.

LEGGI: netstat Comando non trovato su CentOS 8 / RHEL 8

 netstat -antup | grep -i 9200

Risultato:

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

Verificare che sia il nome del nodo che il nome del cluster siano stati impostati correttamente utilizzando l'arricciatura.

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

Dovresti ricevere una risposta come quella di seguito.

{
  "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"
}

Lavora con Elasticsearch

Aggiungiamo alcuni dati a Elasticsearch. Puoi utilizzare il comando curl per leggere, aggiungere, eliminare e aggiornare i dati in Elasticsearch sulla porta 9200 utilizzando un'API RESTful.

I documenti vengono archiviati nel seguente formato

Ricerca elastica ⇒ Indici ⇒ Tipi ⇒ Documenti ⇒ Campi

Indici: Plurale di un indice, dove sono archiviati i dati di Elasticsearch.

Tipi: Contiene più documenti ed è come il tipo di dati.

Documenti: Contiene i campi dati.

Campi: Dati effettivi.

Aggiungi dati

Usa il seguente comando curl per aggiungere dati al nostro 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"
}'

Dovresti ottenere la seguente risposta con "risultato":"creato".

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

Dove,

itzgeek: L'indice del cluster Elasticsearch.

come fare: Il tipo di documento

1: L'id della voce in howtos e itzgeek index.

Leggi i dati

Usa il comando seguente per interrogare i dati su Elasticsearch.

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

Aggiungi ?pretty=true al comando precedente per ottenere un output formattato.

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

L'output apparirà come sotto.

{
  "_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"
  }
}

Aggiorna dati

Utilizzare il comando seguente per aggiornare i dati.

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"
}'

Non ci saranno modifiche nell'indice, nel tipo e nel documento. Tuttavia, i campi avranno dati modificati.

La risposta dovrebbe apparire come di seguito, contenere "_version":2 e "result":"updated" che significa che il documento è stato aggiornato.

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

Rimuovi dati

Utilizzare il comando seguente per eliminare il documento.

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

La risposta sarà simile a quella di seguito. Se il documento viene trovato otterrai “risultato”:”cancellato”.

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

Se il documento non viene trovato, otterrai "risultato":"non_trovato".

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

Conclusione

Spero che tu abbia imparato come installare Elasticsearch su CentOS 8 / RHEL 8 e aggiungere, leggere, eliminare e aggiornare i dati in Elasticsearch. Puoi anche configurare un cluster Elasticsearch a più nodi per gestire una grande quantità di dati.


Cent OS
  1. Come installare Gradle su CentOS 8/7 e RHEL 8/7

  2. Come installare Oracle Java 12/11/8 su CentOS 6/RHEL 6

  3. Come installare Oracle Java JDK 12/11/8 su CentOS 7/RHEL 7

  4. Come installare Elasticsearch su CentOS 8 / RHEL 8

  5. Come installare Elasticsearch su CentOS/RHEL 8

Come installare Java su RHEL 8 / CentOS 8 Linux

Come installare Java su CentOS 7

Come installare Elasticsearch su CentOS 7

Come installare Elasticsearch su CentOS 8

Come installare Graylog su CentOS 8 / RHEL 8

Come installare Graylog 3.0 su CentOS 7 / RHEL 7