Elasticsearch è un motore di ricerca e analisi distribuito e open source per tutti i tipi di dati, inclusi testuali, numerici, geospaziali, strutturati e non strutturati. Elasticsearch è basato su Apache Lucene ed è stato rilasciato per la prima volta nel 2010 da Elasticsearch N.V. (ora noto come Elastic). Conosciuto per le sue semplici API REST, natura distribuita, velocità e scalabilità, Elasticsearch è il componente centrale di Elastic Stack, un insieme di strumenti open source per l’ingestione, l’arricchimento, l’archiviazione, l’analisi e la visualizzazione dei dati. Comunemente chiamato ELK Stack (dopo Elasticsearch, Logstash e Kibana), Elastic Stack ora include una ricca raccolta di agenti di spedizione leggeri noti come Beats per l’invio di dati a Elasticsearch.

elasticsearch logo

A cosa serve Elasticsearch?

La velocità e la scalabilità di Elasticsearch e la sua capacità di indicizzare molti tipi di contenuti ne consentono l’utilizzo in numerosi casi d’uso:

  • Ricerca per applicazione
  • Ricerca nel sito
  • Ricerca aziendale
  • Registrazione e analisi dei log
  • Metriche dell’infrastruttura e monitoraggio dei container
  • Monitoraggio delle prestazioni dell’applicazione
  • Analisi e visualizzazione di dati geospaziali
  • Analisi della sicurezza
  • Analisi aziendale

Come funziona Elasticsearch?

I dati grezzi fluiscono in Elasticsearch da una varietà di fonti, inclusi registri, metriche di sistema e applicazioni web. L’inserimento di dati è il processo mediante il quale questi dati non elaborati vengono analizzati, normalizzati e arricchiti prima di essere indicizzati in Elasticsearch. Una volta indicizzati in Elasticsearch, gli utenti possono eseguire query complesse sui propri dati e utilizzare aggregazioni per recuperare riepiloghi complessi dei propri dati. Da Kibana, gli utenti possono creare visualizzazioni potenti dei propri dati, condividere dashboard e gestire lo Stack elastico.

Che cos’è un indice Elasticsearch?

Un indice Elasticsearch è una raccolta di documenti correlati tra loro. Elasticsearch memorizza i dati come documenti JSON. Ogni documento mette in relazione una serie di chiavi (nomi di campi o proprietà) con i loro valori corrispondenti (stringhe, numeri, valori booleani, date, matrici di valori, geolocalizzazione o altri tipi di dati).

Elasticsearch utilizza una struttura di dati chiamata indice invertito, progettata per consentire ricerche full-text molto veloci. Un indice invertito elenca ogni parola univoca che appare in qualsiasi documento e identifica tutti i documenti in cui ogni parola compare.

Durante il processo di indicizzazione, Elasticsearch archivia i documenti e crea un indice invertito per rendere i dati del documento ricercabili in tempo quasi reale. L’indicizzazione viene avviata con l’API dell’indice, tramite la quale è possibile aggiungere o aggiornare un documento JSON in un indice specifico.

Gli altri tool di ELK Stack

Elastic Stack

A cosa serve Logstash?

Logstash, uno dei prodotti principali di Elastic Stack, viene utilizzato per aggregare ed elaborare i dati e inviarli a Elasticsearch. Logstash è una pipeline di elaborazione dati lato server open source che consente di importare dati da più origini contemporaneamente e arricchirli e trasformarli prima che vengano indicizzati in Elasticsearch.

A cosa serve Kibana?

Kibana è uno strumento di visualizzazione e gestione dei dati per Elasticsearch che fornisce istogrammi, grafici a linee, grafici a torta e mappe in tempo reale. Kibana include anche applicazioni avanzate come Canvas, che consente agli utenti di creare infografiche dinamiche personalizzate basate sui propri dati e Mappe elastiche per la visualizzazione di dati geospaziali.

Perché usare Elasticsearch?

Elasticsearch è veloce. Poiché Elasticsearch è basato su Lucene, eccelle nella ricerca full-text. Elasticsearch è anche una piattaforma di ricerca quasi in tempo reale, il che significa che la latenza dal momento in cui un documento viene indicizzato fino a quando non diventa ricercabile è molto breve, in genere un secondo. Di conseguenza, Elasticsearch è adatto per casi d’uso sensibili al tempo come analisi della sicurezza e monitoraggio dell’infrastruttura.

Elasticsearch è distribuito per natura. I documenti archiviati in Elasticsearch sono distribuiti su diversi contenitori noti come frammenti, che vengono duplicati per fornire copie ridondanti dei dati in caso di guasto hardware. La natura distribuita di Elasticsearch consente di ridimensionare a centinaia (o addirittura migliaia) di server e gestire petabyte di dati.

Elasticsearch viene fornito con una vasta gamma di funzionalità. Oltre alla sua velocità, scalabilità e resilienza, Elasticsearch ha una serie di potenti funzionalità integrate che rendono l’archiviazione e la ricerca dei dati ancora più efficienti, come i rollup dei dati e la gestione del ciclo di vita degli indici.

Lo stack elastico semplifica l’immissione, la visualizzazione e il reporting dei dati. L’integrazione con Beats e Logstash semplifica l’elaborazione dei dati prima dell’indicizzazione in Elasticsearch. E Kibana fornisce la visualizzazione in tempo reale dei dati di Elasticsearch e delle UI per accedere rapidamente ai dati di monitoraggio delle prestazioni delle applicazioni (APM), registri e metriche dell’infrastruttura.

 

Dumentazione ufficiale: https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html