Introduzione

Elasticsearch è un motore di ricerca e analisi full-text distribuito open source. Supporta operazioni RESTful e consente di archiviare, cercare e analizzare grandi volumi di dati in tempo reale. Elasticsearch è uno dei più popolari motori di ricerca che alimentano applicazioni che presentano requisiti di ricerca complessi come grandi negozi di e-commerce e applicazioni analitiche.

Questa guida spiega come installare Elasticsearch su Ubuntu 20.04 LTS Focal Fossa.

Se desideri creare ElasticSearch su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Installare 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 generare OK, il che significa che la chiave è stata importata con successo, e i pacchetti da questo repository saranno considerati affidabili.

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 il valore 7.x nel comando sopra con la versione di cui hai bisogno.

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 l'esecuzione del servizio:

sudo systemctl enable --now elasticsearch.service

Per verificare che Elasticsearch sia in esecuzione, utilizzare curl per inviare una richiesta HTTP alla porta 9200 su localhost:

curl -X GET "localhost:9200/"

Dovresti vedere qualcosa di simile a questo:

{
  "name" : "TEST-SERVER-1",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "Kzkl_i3CQe2kFxmibT0sEw",
  "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"
}

Potrebbero essere necessari 5-10 secondi per l'avvio del servizio. 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 comando seguente:

sudo journalctl -u elasticsearch

Questo è tutto. Elasticsearch è stato installato sul tuo server Ubuntu.

Configurare Elasticsearch

I dati di Elasticsearch sono memorizzati nella directory /var/lib/elasticsearch. I file di configurazione si trovano in /etc/elasticsearch e le opzioni di avvio di Java possono essere configurate nel file /etc/default/elasticsearch.

Per impostazione predefinita, Elasticsearch è configurato per l'ascolto solo su localhost. Se anche il client che si collega al database è in esecuzione sullo stesso host e si sta configurando un cluster a nodo singolo, non è necessario modificare il file di configurazione predefinito.

Accesso remoto

Elasticsearch di default non implementa l'autenticazione, quindi può accedervi da chiunque possa accedere all'API HTTP.

Per consentire l'accesso remoto al server Elasticsearch, è necessario configurare il firewall e aprire la porta TCP 6379.

In genere, si desidera consentire l'accesso al server di ElasticSearch solo da un indirizzo IP o intervallo IP specifico. Ad esempio, per consentire connessioni solo dalla sottorete 192.168.121.0/24, eseguire il comando seguente:

sudo ufw allow proto tcp from 192.168.121.0/24 to any port 6379

Una volta configurato il firewall, il passaggio successivo è modificare la configurazione di Elasticsearch e consentire a Elasticsearch di ascoltare le connessioni esterne.

Per fare ciò, apri il file di configurazione elasticsearch.yml:

sudo nano /etc/elasticsearch/elasticsearch.yml

Cerca la riga che contiene network.host, decommentala e modifica il valore in 0.0.0.0:

network.host: 0.0.0.0
/etc/elasticsearch/elasticsearch.yml

Cerca la riga discovery.seed_hosts, decommentala e modifica il valore in questo modo, per una prima e semplice configurazione:

discovery.seed_hosts: []
/etc/elasticsearch/elasticsearch.yml

Per maggiori informazioni riguardo il parametro discovery.seed_hosts leggere la documentazione ufficiale.

Se sul tuo computer sono presenti più interfacce di rete, specifica l'indirizzo IP dell'interfaccia per forzare Elasticsearch ad ascoltare solo l'interfaccia fornita.

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.

Conclusione

Ti abbiamo mostrato come installare Elasticsearch su Ubuntu 20.04 LTS Focal Fossa.

Per ulteriori informazioni su Elasticsearch, visitare la pagina della documentazione ufficiale.