Elasticsearch è un motore di ricerca e analisi full-text distribuito open source. Supporta le operazioni RESTful e consente di archiviare, cercare e analizzare grandi volumi di dati in tempo reale. Elasticsearch è uno dei motori di ricerca più popolari che alimenta le applicazioni che hanno requisiti di ricerca complessi come i grandi negozi di e-commerce e le applicazioni analitiche.
Questa guida spiega come installare Elasticsearch su Ubuntu 20.04.
Installazione di Elasticsearch #
L'installazione di Elasticsearch su Ubuntu è abbastanza semplice. Abiliteremo il repository Elasticsearch, importeremo la chiave GPG del repository e installeremo il server Elasticsearch.
Il pacchetto Elasticsearch viene fornito con una versione in bundle di OpenJDK, quindi non è necessario installare Java.
Innanzitutto, aggiorna l'indice dei pacchetti e installa le dipendenze necessarie per aggiungere un nuovo repository HTTPS:
sudo apt update
sudo apt install apt-transport-https ca-certificates wget
Importa la chiave GPG del repository:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Il comando sopra dovrebbe restituire OK
, il che significa che la chiave è stata importata correttamente e i pacchetti da questo repository saranno considerati attendibili.
Successivamente, aggiungi il repository Elasticsearch al sistema emettendo:
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
Se desideri installare una versione precedente di Elasticsearch, modifica 7.x
nel comando sopra con la versione che ti serve. Una volta abilitato il repository, installa Elasticsearch digitando:
sudo apt update
sudo apt install elasticsearch
Il servizio Elasticsearch non si avvierà automaticamente al termine del processo di installazione. Per avviare il servizio e abilitare il servizio, esegui:
sudo systemctl enable --now elasticsearch.service
Per verificare che Elasticsearch sia in esecuzione, utilizza curl
per inviare una richiesta HTTP alla porta 9200
su localhost:
curl -X GET "localhost:9200/"
Dovresti vedere qualcosa di simile a questo:
{
"name" : "vagrant",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "IJqDxPfXSrmFQ27KbXbRIg",
"version" : {
"number" : "7.8.0",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
"build_date" : "2020-06-14T19:35:50.234439Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
L'avvio del servizio potrebbe richiedere 5-10 secondi. Se vedi curl: (7) Failed to connect to localhost port 9200: Connection refused
, attendi qualche secondo e riprova.
Per visualizzare i messaggi registrati dal servizio Elasticsearch, utilizzare il seguente comando:
sudo journalctl -u elasticsearch
Questo è tutto. Elasticsearch è stato installato sul tuo server Ubuntu.
Configurazione di Elasticsearch #
I dati di Elasticsearch sono archiviati in /var/lib/elasticsearch
directory. I file di configurazione si trovano in /etc/elasticsearch
e le opzioni di avvio di Java possono essere configurate in /etc/default/elasticsearch
file.
Per impostazione predefinita, Elasticsearch è configurato per l'ascolto solo su localhost. Se anche il client che si connette al database è in esecuzione sullo stesso host e stai configurando un cluster a nodo singolo, non è necessario modificare il file di configurazione predefinito.
Accesso remoto #
Out of box Elasticsearch, non implementa l'autenticazione, quindi può accedervi chiunque possa accedere all'API HTTP.
Per consentire l'accesso remoto al tuo server Elasticsearch, dovrai configurare il tuo firewall e aprire la porta TCP 6379.
In genere, si desidera consentire l'accesso al server Redis solo da un indirizzo IP o un intervallo IP specifico. Ad esempio, per consentire connessioni solo dal 192.168.121.0/24
subnet, eseguiresti il seguente comando:
sudo ufw allow proto tcp from 192.168.121.0/24 to any port 6379
Una volta configurato il firewall, il passaggio successivo consiste nel modificare la configurazione di Elasticsearch e consentire a Elasticsearch di ascoltare le connessioni esterne.
Per farlo, apri elasticsearch.yml
file di configurazione:
sudo nano /etc/elasticsearch/elasticsearch.yml
Cerca la riga che contiene network.host
, decommentalo e cambia il valore in 0.0.0.0
:
network.host: 0.0.0.0
Se hai più interfacce di rete sulla tua macchina, specifica l'indirizzo IP dell'interfaccia per forzare Elasticsearch ad ascoltare solo l'interfaccia data.
Riavvia il servizio Elasticsearch per rendere effettive le modifiche:
sudo systemctl restart elasticsearch
Questo è tutto. Ora puoi connetterti al server Elasticsearch dalla tua posizione remota.