Elasticsearch è un motore di ricerca e di analisi open source che consente di memorizzare, cercare e analizzare i dati in tempo reale. Elasticsearch utilizza un'architettura distribuita ed è costruito su Apache Lucene, ed è caratterizzato da elevate prestazioni, scalabilità e usabilità. Elasticsearch è ampiamente utilizzato per la ricerca, l'analisi e l'analisi dei log.
Cosa può fare Elasticsearch?
Ha le seguenti funzionalità:
- Memorizzazione e ricerca dei dati: Elasticsearch consente di memorizzare e indicizzare una varietà di tipi di dati, tra cui testo, numeri, dati geospaziali e tipi di dati personalizzabili.
- Ricerca full-text: Elasticsearch offre una ricerca full-text con supporto per query complesse come frasi di ricerca, query Wildcard, ricerca Fuzzy e altro ancora.
- Architettura distribuita: Elasticsearch utilizza un'architettura distribuita che consente di scalare e gestire grandi quantità di dati.
- APIS: Elasticsearch offre diverse API per la gestione e l'indicizzazione dei dati, tra cui API REST e API Java.
- Aggregazioni di dati: Elasticsearch supporta le aggregazioni che consentono di analizzare i dati ed estrarre informazioni di sintesi come media, somma, minimo e massimo.
- Soluzione di scripting di ricerca: Elasticsearch viene utilizzato per lo scripting di ricerca in un gran numero di applicazioni e sistemi, tra cui portali di ricerca, sistemi di monitoraggio, sistemi di controllo delle versioni e altri.
- Funzionalità di scalabilità: Elasticsearch offre funzionalità di scalabilità e multitasking per garantire alta disponibilità e prestazioni in sistemi di grandi dimensioni.
Processo di installazione
Le istruzioni per l'installazione di Elasticsearch sono più o meno le stesse per le diverse versioni di Ubuntu. Innanzitutto, è necessario aggiornare l'elenco dei pacchetti:
sudo apt update
Installare il pacchetto OpenJDK 11, necessario per il funzionamento di Elasticsearch:
sudo apt install openjdk-11-jdk
Aggiungere la chiave e il repository Elasticsearch ad APT:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
Nota: nell'URL può essere specificata una versione diversa di Elasticsearch invece di "7.x".
Aggiornare l'elenco dei pacchetti e installare Elasticsearch:
sudo apt update
sudo apt install elasticsearch
Configurare Elasticsearch modificando il file di configurazione /etc/elasticsearch/elasticsearch/elasticsearch.yml:
sudo nano /etc/elasticsearch/elasticsearch.yml
Vediamo alcune delle impostazioni più importanti:
- cluster.name: il nome del cluster Elasticsearch
- node.name: il nome del nodo Elasticsearch
- network.host: indirizzo IP o hostname dell'host su cui verrà eseguito Elasticsearch
- http.port: porta dell'API HTTP di Elasticsearch (l'impostazione predefinita è 9200)
- memory.locked: true per consentire a Elasticsearch di bloccare la memoria nell'area della pagina, riducendo così la probabilità di commutazione del contesto e migliorando le prestazioni.
Avviare Elasticsearch e configurare l'autorun:
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Verificare che Elasticsearch sia in esecuzione inviando una richiesta alla sua API:
curl http://localhost:9200/
Dovrebbe essere visualizzata una risposta con informazioni sullo stato e sulla versione di Elasticsearch, come ad esempio:
{
"name" : "my-elasticsearch-node",
"cluster_name" : "my-elasticsearch-cluster",
"cluster_uuid" : "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
"version" : {
"number" : "7.15.1",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "83c34f456ae29d60e94d886e455e6a3409bba9ed",
"build_date" : "2021-10-07T21:56:19.031608185Z",
"build_snapshot" : false,
"lucene_version" : "8.9.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
L'installazione di Elasticsearch su Ubuntu dovrebbe essere completata con successo.