Introduzione
Elasticsearch è una piattaforma utilizzata per ricerche full-text in tempo reale nelle applicazioni in cui è necessario analizzare una grande quantità di dati. In combinazione con altri strumenti, come Kibana, Logstash, X-Pack, ecc., Elasticsearch può aggregare e monitorare i Big Data su vasta scala.
Con il suo supporto API RESTful , puoi gestire facilmente i tuoi dati utilizzando il metodo HTTP comune. Grazie alla sua velocità e facilità d'uso, è diventato adatto anche per compiti più complessi gestiti da Hadoop e Spark.
In questo tutorial, ti mostreremo come preparare tutto e come installare Elasticsearch su Ubuntu 18.04 . I passaggi di installazione dovrebbero funzionare anche per altre distribuzioni Linux.
Prerequisiti
- Un sistema basato su Ubuntu (questa guida utilizza Ubuntu 18.04)
- Accesso a un terminale oa una riga di comando
- Un utente con autorizzazioni sudo per installare i pacchetti
Installa le dipendenze necessarie
Poiché Elasticsearch viene eseguito su Java, è necessario installare il Java Development Kit (JDK) .
Puoi controllare se Java è installato e la versione sulla tua macchina Ubuntu con:
java -version
L'output mostra la versione installata di Java.
Se non hai installato Java, riceverai il messaggio bash standard:bash:/usr/bin/java:nessun file o directory di questo tipo . Ricorda che, in anticipo, hai la possibilità di utilizzare un comando bash per verificare se esiste un file o una directory.
Prima di continuare con l'installazione, aggiorna l'indice del pacchetto:
sudo apt update
Per installare JDK predefinito, esegui il seguente comando:
sudo apt install openjdk-8-jdk
Al termine del processo, esegui java -version
comando di nuovo. L'output mostra la seguente versione nel nostro caso:
Per consentire l'accesso ai tuoi repository tramite HTTPS, devi installare un pacchetto di trasporto APT:
sudo apt install apt-transport-https
L'output sopra mostra la parte finale al termine del processo.
Installa e scarica Elasticsearch su Ubuntu
Dopo aver confermato Java e apt-transport-https
installato correttamente, procedi con i passaggi per installare Elasticsearch.
Aggiungi repository Elasticsearch
Innanzitutto, aggiorna la chiave GPG per il repository Elasticsearch.
Usa il wget
comando per estrarre la chiave pubblica:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
L'output dovrebbe visualizzare OK
se tutto è andato come dovrebbe.
Quindi, usa questo comando per aggiungere il repository al tuo sistema.
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Nel comando sopra, abbiamo usato 7.x poiché questa è l'ultima versione di Elasticsearch al momento della stesura di questa guida.
Installa Elasticsearch
Infine, è il momento di installare Elasticsearch.
Aggiorna l'indice del pacchetto ancora una volta prima di procedere.
sudo apt update
Quindi, esegui l'installazione:
sudo apt install elasticsearch
Il pacchetto è di circa 300 MB. Lascia che il sistema scarichi l'archivio e termini l'installazione.
Avvia il servizio Elasticsearch
Al termine dell'installazione, Elasticsearch non viene eseguito finché non viene avviato. Inoltre, quando si riavvia la macchina, è necessario eseguire nuovamente il servizio Elasticsearch poiché non si avvia automaticamente.
Per fare in modo che Elasticsearch si ricarichi automaticamente al riavvio del sistema, utilizzare i seguenti comandi:
Per prima cosa, ricarica la configurazione di systemd:
sudo systemctl daemon-reload
Quindi, abilita il servizio Elasticsearch con:
sudo systemctl enable elasticsearch.service
Infine, dopo aver abilitato il servizio, avvia Elasticsearch:
sudo systemctl start elasticsearch.service
Lascia che il processo venga completato. Potrebbero volerci alcuni istanti. Non ci sarà una risposta specifica dal terminale.
Ora, Elasticsearch si avvierà ogni volta che accendi o riavvii il sistema.
Se apporti modifiche ai file di configurazione o devi riavviare Elasticsearch per qualsiasi motivo, utilizza:
sudo systemctl restart elasticsearch.service
Quando è necessario interrompere il servizio, utilizzare il comando seguente:
sudo systemctl stop elasticsearch.service
Controlla lo stato di Elasticsearch
Una volta terminato di utilizzare i comandi per avviare, riavviare e arrestare Elasticsearch, puoi anche controllare lo stato del servizio.
Per farlo, inserisci:
service elasticsearch status
L'output mostra lo stato del servizio, le attività e altre informazioni.
Configura Elasticsearch
Elasticsearch viene fornito preconfigurato per l'utilizzo di base. Se utilizzi un solo nodo nella tua configurazione, non devi riconfigurare troppo lo strumento.
Per apportare modifiche alla configurazione di Elasticsearch predefinita , modifica elasticsearch.yml file. Il file si trova in /etc/elasticsearch directory.
La configurazione per la registrazione si trova in /var/log/elasticsearch/logging.yml file. Puoi lasciare le impostazioni predefinite per la registrazione per ora e tornarci in seguito, se necessario.
Consenti accesso remoto
La configurazione predefinita non consente l'accesso alla macchina da parte di altri host. Per consentire l'accesso remoto, utilizza un editor di testo a tua scelta e apri il elasticsearch.yml file.
Useremo vim :
sudo vim /etc/elasticsearch/elasticsearch.yml
Scorri verso il basso fino alla Rete sezione. Trova la riga che dice #network.host
.
Decommenta la riga (rimuovi il cancelletto (#)), imposta l'indirizzo IP su 0.0.0.0
e aggiungi queste righe:
transport.host: localhost
transport.tcp.port: 9300
http.port: 9200
La sezione dovrebbe assomigliare a questa:
Esci e salva le modifiche. Se lavori in vim , digita :wq
.
Questa configurazione consente agli host remoti di accedere a questa macchina.
Utilizza UFW per proteggere Elasticsearch (opzionale)
Se consenti l'accesso remoto a Elasticsearch, ti consigliamo vivamente di utilizzare lo strumento UFW, come misura minima di sicurezza.
L'Uncomplicated Firewall (UFW) è integrato in Linux e disabilitato per impostazione predefinita. Abilita UFW e crea alcune regole per limitare l'esposizione della tua rete.
Prima di abilitare UFW, aggiungi le regole necessarie. Per l'accesso remoto tramite SSH, devi consentire l'accesso sulla porta 22 (o sulla porta personalizzata se hai modificato la configurazione SSH predefinita).
Nel terminale, digita:
sudo ufw allow 22
Quindi, devi consentire l'accesso sulla porta 9200 per la tua macchina remota. Elasticsearch è in ascolto su quella porta per le richieste in arrivo.
Crea la regola con questo comando:
sudo ufw allow from external_IP to any port 9200
Modifica external_IP
con l'IP della macchina remota che verrà utilizzata per accedere a Elasticsearch.
Infine, abilita lo strumento UFW:
sudo ufw enable
Ecco l'esempio di output per i comandi precedenti:
Per assicurarti di aver aggiunto correttamente le regole, controlla lo stato di UFW.
sudo ufw status
Questo comando mostra sia lo stato che i dettagli delle regole che hai creato.
Testa Elasticsearch
Ora che il servizio Elasticsearch è attivo, la macchina è accessibile da remoto e hai abilitato UFW, puoi utilizzare curl
per verificare se lo strumento funziona.
La porta di ascolto predefinita per Elasticsearch è 9200 . Quindi, puoi inviare una richiesta HTTP sull'host locale e vedere se ricevi una risposta.
Per farlo, inserisci:
curl localhost:9200
L'output dovrebbe essere simile a quello sopra. Vedrai le informazioni sulla versione e altri campi con la data, l'hash, ecc.