Tutorial sullo stack ELK: Kibana, Logstash & Elasticsearch
โก Riepilogo intelligente
ELK Stack combina tre strumenti open-source: Elasticsearch, Logstashe Kibana โ per raccogliere, archiviare, cercare e visualizzare i dati delle macchine, fornendo ai team di ingegneri un sistema centralizzato di registrazione e analisi in tempo reale per una risoluzione piรน rapida dei problemi su server e applicazioni.

ELK Stack รจ una delle soluzioni open-source piรน utilizzate per la registrazione centralizzata e l'analisi dei log. Questo tutorial su ELK Stack spiega cos'รจ Elasticsearch, Logstashe Kibana, come i tre strumenti si integrano tra loro e dove la piattaforma viene utilizzata nel mondo reale per il monitoraggio e l'osservabilitร .
Cos'รจ lo stack ELK?
Migliori Pila di alci รจ una raccolta di tre prodotti open source: Elasticsearch, Logstashe Kibana. Offre un sistema di registrazione centralizzato che aiuta a identificare i problemi di server o applicazioni, consentendo di cercare in tutti i log in un unico punto. Permette inoltre di correlare i log di piรน server all'interno di un intervallo di tempo specifico.
- E sta per Elasticsearch: utilizzato per l'archiviazione dei log.
- L sta per Logstash: utilizzato per la navepingelaborazione e memorizzazione dei registri.
- K sta per Kibana: un strumento di visualizzazione (un'interfaccia web) ospitata tramite Nginx o Apache.
Ricerca elastica, Logstash, e Kibana sono tutti sviluppati, gestiti e mantenuti da una societร chiamata Elastico.
L'ELK Stack, nel suo insieme, รจ progettato per consentire agli utenti di acquisire dati da qualsiasi fonte, in qualsiasi formato, e quindi di ricercarli, analizzarli e visualizzarli in tempo reale.
Pila di alci Architectura
Ora che sapete cos'รจ lo stack, questa sezione spiega l'architettura ELK e come i dati fluiscono tra i componenti.
La pipeline ELK segue una sequenza ben definita in cui ogni strumento ha un compito specifico:
- logs: Vengono identificati i log del server che devono essere analizzati.
- Logstash: Raccoglie i log e i dati degli eventi, quindi li analizza e li trasforma.
- elasticsearch: I dati trasformati da Logstash viene memorizzato, ricercato e indicizzato.
- Kibana: Utilizza il database Elasticsearch per esplorare, visualizzare e condividere informazioni.
Tuttavia, per la raccolta dei dati viene spesso aggiunto un quarto componente chiamato Beats. I Beats sono dei client leggeri installati sui server e la loro aggiunta ha portato Elastic a rinominare ELK in Elastic Stack.
Quando si gestiscono quantitร di dati molto elevate, รจ possibile aggiungere Kafka o RabbitMQ davanti alla pipeline per il buffering e la resilienza.
Per una maggiore sicurezza, รจ possibile posizionare un proxy inverso come Nginx davanti allo stack.
Tenendo presente l'architettura, le sezioni seguenti esaminano piรน nel dettaglio ciascun prodotto open source dello stack.
Cos'รจ Elasticsearch?
Elasticsearch รจ un Database NoSQL Basato sul motore di ricerca Lucene e realizzato con API RESTful, offre implementazione semplice, elevata affidabilitร e facile gestione, e archivia tutti i dati centralmente, consentendo di eseguire query avanzate e ricerche rapide di documenti.
Elasticsearch consente inoltre di archiviare, cercare e analizzare grandi volumi di dati. Viene spesso utilizzato come motore di base per applicazioni con esigenze di ricerca complesse.
Grazie alla possibilitร di aggiungere funzionalitร di analisi e numerose caratteristiche avanzate oltre alla velocitร di ricerca, Elasticsearch รจ stato ampiamente adottato nelle piattaforme di ricerca per le moderne applicazioni web e mobile.
Caratteristiche di Elasticsearch
Elasticsearch offre una vasta gamma di funzionalitร per l'indicizzazione e la ricerca dei dati:
- Un server di ricerca open-source scritto in Java.
- In grado di indicizzare qualsiasi tipo di dato eterogeneo.
- Fornisce un'interfaccia web API REST con output JSON.
- Ricerca a testo completo.
- Ricerca quasi in tempo reale (NRT).
- Un archivio di documenti JSON frammentato, replicato e ricercabile.
- Archivio di documenti distribuito, senza schema, basato su REST e JSON.
- Supporto multilingue e geolocalizzazione.
Vantaggi di Elasticsearch
- Archivia dati senza schema e puรฒ anche creare uno schema per i tuoi dati.
- Consente di manipolare i record uno per uno utilizzando le API multi-documento.
- Consente di filtrare e interrogare i dati per ottenere informazioni utili.
- Basato su Apache Lucene, fornisce un'API RESTful.
- Offre scalabilitร orizzontale, affidabilitร e funzionalitร multi-tenant per l'indicizzazione in tempo reale e una ricerca piรน rapida.
- Ti aiuta a crescere sia in verticale che in orizzontale.
La tabella seguente illustra i termini chiave che incontrerai lavorando con Elasticsearch:
| Termine | Impiego |
|---|---|
| Cluster | Un cluster รจ un insieme di nodi che, nel loro complesso, contengono i dati e forniscono funzionalitร combinate di indicizzazione e ricerca. |
| Nodo | Un nodo รจ una singola istanza di Elasticsearch. Viene creato all'avvio di un'istanza di Elasticsearch. |
| Indice | Un indice รจ una raccolta di documenti che condividono caratteristiche simili, come ad esempio i dati dei clienti o un catalogo prodotti. ร utile per operazioni di indicizzazione, ricerca, aggiornamento ed eliminazione, ed รจ possibile definire molti indici in un singolo cluster. |
| funzionalitร di | Un documento รจ l'unitร di informazione di base che puรฒ essere indicizzata. Viene espresso come una coppia chiave-valore JSON e a ogni documento รจ associato un tipo e un ID univoco. |
| Coccio | Ogni indice puรฒ essere suddiviso in piรน shard per distribuire i dati. Uno shard รจ la parte atomica di un indice e puรฒ essere distribuito nel cluster man mano che si aggiungono nodi. |
Cosa รจ Logstash?
Logstash รจ lo strumento di pipeline per la raccolta dei dati dello stack. Raccoglie gli input di dati e li alimenta in Elasticsearch, raccogliendo tutti i tipi di dati da diverse fonti e rendendoli disponibili per un ulteriore utilizzo.
Logstash ร in grado di unificare dati provenienti da fonti eterogenee e di normalizzarli nelle destinazioni prescelte. Ciรฒ consente di ripulire e democratizzare tutti i dati per un'ampia gamma di casi d'uso di analisi e visualizzazione.
Si compone di tre componenti:
- Ingresso: elabora i log e li converte in un formato leggibile dalla macchina.
- Filtri: un insieme di condizioni che eseguono una particolare azione su un evento.
- Produzione: il responsabile delle decisioni che instrada ciascun evento o registro elaborato.
Caratteristiche principali dell'app Logstash
Logstash include diverse funzionalitร che rendono flessibile l'elaborazione dei log:
- Gli eventi attraversano ciascuna fase utilizzando code interne.
- Consente diversi tipi di input per i tuoi log.
- Supporta il filtraggio e l'analisi dei log.
Vantaggi di Logstash
- Centralizza l'elaborazione dei dati.
- Analizza un'ampia varietร di dati ed eventi, sia strutturati che non strutturati.
- Offre plugin per connettersi a diverse tipologie di sorgenti di input e piattaforme.
Cos'รจ Kibana?
Kibana รจ lo strumento di visualizzazione dati che completa l'ELK Stack. Viene utilizzato per visualizzare i documenti di Elasticsearch e aiuta gli sviluppatori a ottenere rapidamente informazioni dettagliate sui propri dati tramite diagrammi interattivi, dati geospaziali e grafici che rendono comprensibili anche le query piรน complesse.
Puoi usare Kibana per cercare, visualizzare e interagire con i dati archiviati negli indici di Elasticsearch. Ti aiuta anche a eseguire analisi avanzate. analisi dei dati e presentare i dati in una varietร di tabelle, grafici e mappe.
Kibana supporta diversi metodi per la ricerca dei dati. I tipi di ricerca piรน comuni sono elencati di seguito:
| Tipo di ricerca | Impiego |
|---|---|
| Ricerche di testo libere | Utilizzato per la ricerca di una stringa specifica. |
| Ricerche a livello di campo | Utilizzato per cercare una stringa all'interno di un campo specifico. |
| Affermazioni logiche | Utilizzato per combinare le ricerche in un'affermazione logica. |
| Ricerche di prossimitร | Utilizzato per la ricerca di termini entro una specifica prossimitร di caratteri. |
Kibana offre inoltre una serie di potenti funzionalitร per l'esplorazione dei dati indicizzati:
- Una potente dashboard front-end che visualizza le informazioni indicizzate dal cluster Elasticsearch.
- Consente la ricerca in tempo reale di informazioni indicizzate.
- Consente di cercare, visualizzare e interagire con i dati archiviati in Elasticsearch.
- Esegue query sui dati e visualizza i risultati in grafici, tabelle e mappe.
- Una dashboard configurabile per analizzare e segmentare i dati. Logstash registri in Elasticsearch.
- Fornisce dati storici sotto forma di grafici, diagrammi e altro ancora.
- Offre dashboard in tempo reale facili da configurare.
Vantaggi e svantaggi di Kibana
Come ogni strumento, Kibana ha dei punti di forza ben precisi che ne spiegano la popolaritร :
- Visualizzazione semplice dei dati.
- Completamente integrato con Elasticsearch.
- Funge da strumento di visualizzazione dedicato.
- Offre analisi in tempo reale, creazione di grafici, riepilogo e debug.
- Offre un'interfaccia intuitiva e di facile utilizzo.
- Consente la condivisione di istantanee dei registri che sono stati oggetto di ricerca.
- Consente di salvare e gestire piรน dashboard.
Presenta inoltre alcune limitazioni da tenere presenti:
- Funziona esclusivamente con Elasticsearch come origine dati.
- La creazione e la configurazione di dashboard complesse possono richiedere un notevole impegno per essere apprese.
Perchรฉ l'analisi dei log?
Nelle infrastrutture basate sul cloud, le prestazioni e l'isolamento sono molto importanti.
Le prestazioni delle macchine virtuali nel cloud possono variare in base a carichi specifici, ambienti e numero di utenti attivi, pertanto l'affidabilitร e i guasti dei nodi possono diventare problemi significativi.
A piattaforma di gestione dei log puรฒ monitorare tutti questi problemi. Puรฒ anche elaborare i log del sistema operativo, i log del server web Nginx e IIS per l'analisi del traffico, i log delle applicazioni e i log generati su AWS (Amazon Servizi web).
In definitiva, la gestione dei log aiuta DevOps In questo modo, ingegneri e amministratori di sistema prendono decisioni migliori, basate sui dati. Ecco perchรฉ l'analisi dei log tramite Elastic Stack o strumenti simili รจ diventata essenziale.
ELK contro Splunk
Una domanda frequente รจ come si confronta l'ELK Stack con Splunk, una popolare alternativa commerciale. La tabella seguente riassume le principali differenze:
| ALCE | Splunk |
|---|---|
| ELK รจ uno strumento open-source. | Splunk รจ uno strumento commerciale. |
| ELK non offre Solaris portabilitร grazie a Kibana. | Offerte Splunk Solaris portabilitร . |
| La velocitร di elaborazione รจ strettamente limitata. | Offre un'elaborazione accurata e rapida. |
| ELK รจ uno stack tecnologico creato dalla combinazione di Elasticsearch, Logstashe Kibana. | Splunk รจ uno strumento proprietario che offre soluzioni sia on-premise che cloud. |
| In ELK, la ricerca, l'analisi e la visualizzazione sono possibili solo dopo che lo stack รจ stato configurato. | Splunk รจ una soluzione completa per la gestione dei dati, pronta all'uso. |
| ELK offre un'integrazione limitata con altri strumenti. | Splunk รจ utile per configurare integrazioni con altri strumenti. |
Casi di studio
Molte aziende rinomate si affidano a ELK Stack per gestire il logging e l'analisi su larga scala. Gli esempi seguenti mostrano come viene utilizzato in produzione.
Netflix
Netflix si affida fortemente all'ELK Stack per monitorare e analizzare i log di sicurezza delle sue operazioni di assistenza clienti. La piattaforma consente Netflix Indicizzare, archiviare e ricercare documenti su oltre quindici cluster composti da circa 800 nodi.
Il sito di networking professionale LinkedIn utilizza ELK Stack per monitorare prestazioni e sicurezza. Il suo team ha integrato ELK con Kafka per gestire il carico in tempo reale e l'operazione si estende su oltre 100 cluster in sei data center.
Tripwire
Tripwire, fornitore globale di soluzioni SIEM (Security Information and Event Management), utilizza lo stack ELK per supportare l'analisi dei log dei pacchetti di informazioni.
Medio
Medium, la popolare piattaforma di pubblicazione di blog, utilizza l'ELK Stack per eseguire il debug dei problemi di produzione e per rilevare DynamoDB punti di interesse. La suite di strumenti aiuta l'azienda a supportare 25 milioni di lettori unici e migliaia di nuovi post ogni settimana.
Vantaggi e svantaggi dello stack ELK
Vantaggi
ELK Stack offre diversi vantaggi che ne spiegano l'ampia diffusione:
- Funziona al meglio quando i log delle diverse applicazioni di un'azienda convergono in un'unica istanza ELK.
- Fornisce informazioni dettagliate a partire da un singolo evento ed elimina la necessitร di accedere a centinaia di fonti di dati separate.
- Installazione rapida in loco.
- Facile da implementare e scalabile sia in verticale che in orizzontale.
- Elastic offre numerosi client per diversi linguaggi, tra cui Ruby, PythonPHP, Perl, .NET, Javae JavaScript.
- Sono disponibili librerie per molti linguaggi di programmazione e scripting.
Svantaggi
Nonostante i suoi punti di forza, l'ELK Stack presenta alcuni svantaggi da tenere in considerazione:
- La gestione dei diversi componenti puรฒ diventare complessa man mano che si passa a una configurazione piรน elaborata.
- C'รจ una vera e propria curva di apprendimento, quindi aspettatevi di dover fare qualche tentativo ed errore man mano che acquisite esperienza.


