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.

  • ๐Ÿงฉ Ruoli dello stack: Elasticsearch memorizza e indicizza i dati, Logstash elabora e registra i log, e Kibana visualizza i risultati.
  • ๐Ÿ”Ž elasticsearch: Un motore di ricerca NoSQL basato su Lucene che indicizza dati eterogenei e restituisce risultati full-text quasi in tempo reale tramite un'API REST.
  • ๏ธ Logstash: Una pipeline che acquisisce, filtra e trasforma i log provenienti da diverse fonti prima di inserirli in Elasticsearch.
  • ๐Ÿ“Š Kibana: Una dashboard web che trasforma i dati indicizzati in grafici, mappe e diagrammi interattivi per una rapida consultazione.
  • ๐Ÿ“ฆ Stack elastico: I dispositivi di invio dati Beats, grazie alla loro leggerezza, raccolgono i dati in periferia, il che ha portato Elastic a rinominare ELK in Elastic Stack.
  • ๐Ÿข Uso in produzione: NetflixLinkedIn e Medium utilizzano ELK su grandi cluster per la registrazione dei log, la sicurezza e il monitoraggio.
  • ๏ธ ELK contro Splunk: ELK รจ gratuito e open source, mentre Splunk รจ una piattaforma commerciale con elaborazione piรน veloce e integrazioni piรน ampie.

Architettura dello stack ELK che mostra come Kibana, LogstashElasticsearch e altri servizi collaborano per la registrazione e l'analisi centralizzate dei log.

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.

Diagramma dell'architettura dello stack ELK che mostra LogstashFlusso di dati di Elasticsearch e Kibana

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.

Architettura ELK Stack con aggiunta di Beats per la raccolta dati

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.

LinkedIn

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.

DOMANDE FREQUENTI

I Beats sono data shipper leggeri e open-source installati come agenti sui server. Filebeat inoltra i file di log e Metricbeat raccoglie le metriche di sistema. Inviano i dati direttamente a Elasticsearch o tramite LogstashL'aggiunta di Beats per la raccolta dati ha portato Elastic a rinominare l'ELK Stack in Elastic Stack.

ELK sta per Elasticsearch, Logstashe Kibana. Quando Elastic ha aggiunto Beats, la sua famiglia di data shipper leggeri, il prodotto combinato รจ stato rinominato Elastic Stack. Elastic Stack descrive quindi gli stessi tre strumenti piรน Beats e funzionalitร  aggiuntive come la sicurezza e l'apprendimento automatico.

Sรฌ. Elasticsearch, LogstashElasticsearch e Kibana sono scaricabili gratuitamente. Dal 2024, Elastic offre Elasticsearch e Kibana con la licenza open-source AGPLv3, oltre alla SSPL e alla licenza Elastic. Funzionalitร  avanzate come il machine learning e gli avvisi richiedono un abbonamento a pagamento.

Elasticsearch รจ un database NoSQL orientato ai documenti e flessibile in termini di schema, basato su Apache Lucene e interrogabile tramite un'API REST. A differenza dei database relazionali, che utilizzano tabelle, righe e query SQL fisse con transazioni ACID, Elasticsearch รจ ottimizzato per la ricerca full-text e l'analisi quasi in tempo reale, piuttosto che per una rigorosa coerenza transazionale.

I nodi di produzione in genere necessitano di almeno 16 GB di RAM, con l'heap della JVM impostato a circa il 50% della memoria e mantenuto al di sotto di circa 30 GB. Le piccole configurazioni di test o standalone funzionano con meno. Beats e Logstash necessitano di molte meno risorse rispetto a Elasticsearch.

Grok รจ un Logstash Plugin di filtro che analizza le righe di log non strutturate in campi strutturati e denominati utilizzando modelli riutilizzabili basati su espressioni regolari. รˆ ampiamente utilizzato pertracEstrarre timestamp, indirizzi IP e codici di stato dai log del server web e dell'applicazione prima di indicizzarli in Elasticsearch.

Elasticsearch include funzionalitร  di machine learning integrate che modellano il comportamento normale dei log e segnalano automaticamente le anomalie. Queste funzionalitร  AIOps raggruppano i messaggi simili, rilevano volumi insoliti e velocizzano l'analisi delle cause principali, riducendo il tempo medio di risoluzione. Gli ingegneri dovrebbero comunque esaminare gli eventi segnalati prima di intervenire.

Sรฌ. Strumenti come ChatGPT and Copilota GitHub puรฒ bozza Logstash รˆ possibile configurare pattern Grok, Elasticsearch Query DSL e impostazioni di Kibana tramite un breve prompt. รˆ sempre consigliabile testare le pipeline generate, poichรฉ l'IA potrebbe fare riferimento a nomi di campi obsoleti o a una sintassi deprecata.

Riassumi questo post con: