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.