Tutorial ELK Stack: cos'è Kibana, Logstash & Ricerca elastica?

Cos'è lo stack ELK?

Le Pila di alci è una raccolta di tre prodotti open source: Elasticsearch, Logstashe Kibana. Lo stack ELK fornisce la registrazione centralizzata per identificare i problemi con server o applicazioni. Ti consente di cercare tutti i registri in un unico posto. Aiuta anche a trovare problemi in più server connettendo i log durante un intervallo di tempo specifico.

  • E sta per ElasticSearch: utilizzato per archiviare i log
  • L sta per LogStash: utilizzato sia per la spedizione che per l'elaborazione e l'archiviazione dei registri
  • K sta per Kibana: è a strumento di visualizzazione (un'interfaccia web) che è ospitata tramite Nginx o Apache

ElasticSearch, LogStash e Kibana sono tutti sviluppati, gestiti e mantenuti dalla società Elastic.

ELK Stack è progettato per consentire agli utenti di acquisire dati da qualsiasi fonte, in qualsiasi formato, e di cercare, analizzare e visualizzare tali dati in tempo reale.

Pila di alci Architectura

In questo tutorial sullo stack ELK, impareremo l'architettura ELK:

Ecco la semplice architettura dello stack ELK

Pila di alci Architectura
Pila di alci Architectura
  • logs: Vengono identificati i log del server che devono essere analizzati
  • Logstash: Raccogliere dati di log ed eventi. Analizza e trasforma persino i dati
  • Ricerca elastica: I dati trasformati da Logstash is Archivia, cerca e indicizza.
  • Kibana: Kibana utilizza Elasticsearch DB per esplorare, visualizzare e condividere

Tuttavia, è necessario un ulteriore componente ovvero la raccolta dati chiamata Beats. Ciò ha portato Elastic a rinominare ELK come Elastic Stack.

Pila di alci Architecnologia con Beats

Quando si gestiscono grandi quantità di dati, potrebbe essere necessario Kafka, RabbitMQ per il buffering e la resilienza. Per la sicurezza, può essere utilizzato nginx.

Pila di alci Architectura

Ora in questo tutorial sullo stack elastico, Analizziamo in profondità tutti questi prodotti open source:

Cos'è Elasticsearch?

Elasticsearch è un Database NoSQL. Si basa sul motore di ricerca Lucene ed è costruito con API RESTful. Offre un'implementazione semplice, la massima affidabilità e una facile gestione. Offre inoltre query avanzate per eseguire analisi dettagliate e archivia tutti i dati a livello centrale. È utile per eseguire una ricerca rapida dei documenti.

Elasticsearch consente inoltre di archiviare, ricercare e analizzare grandi volumi di dati. Viene utilizzato principalmente come motore sottostante per alimentare le applicazioni che hanno completato i requisiti di ricerca. È stato adottato nelle piattaforme dei motori di ricerca per le moderne applicazioni web e mobili. Oltre a una ricerca rapida, lo strumento offre anche analisi complesse e molte funzionalità avanzate.

Funzionalità della ricerca elastica

  • Il server di ricerca open source è scritto utilizzando Java
  • Utilizzato per indicizzare qualsiasi tipo di dati eterogenei
  • Dispone di un'interfaccia web API REST con output JSON
  • Ricerca full-text
  • Ricerca in tempo quasi reale (NRT).
  • Archivio documenti JSON frammentato e replicato ricercabile
  • Archivio di documenti distribuito senza schemi, basato su REST e JSON
  • Supporto multilingue e geolocalizzazione

Vantaggi di Elasticsearch

  • Archivia dati senza schema e crea anche uno schema per i tuoi dati
  • Manipola il tuo record di dati per record con l'aiuto delle API multi-documento
  • Esegui filtri ed esegui query sui dati per ottenere approfondimenti
  • Basato su Apache Lucene e fornisce API RESTful
  • Fornisce scalabilità orizzontale, affidabilità e funzionalità multitenant per l'utilizzo in tempo reale dell'indicizzazione per velocizzare la ricerca
  • Ti aiuta a ridimensionare verticalmente e orizzontalmente

Termini importanti utilizzati in Elastic Search

Ora in questo tutorial ELK, impariamo i termini chiave utilizzati in ElasticSearch:

Termine Impiego
Cluster Un cluster è una raccolta di nodi che insieme contengono dati e forniscono funzionalità di indicizzazione e ricerca congiunte.
Nodo Un nodo è un'istanza elasticsearch. Viene creato all'avvio di un'istanza elasticsearch.
Indice Un indice è una raccolta di documenti che hanno caratteristiche simili. ad esempio, dati del cliente, catalogo prodotti. È molto utile durante l'esecuzione di operazioni di indicizzazione, ricerca, aggiornamento ed eliminazione. Ti consente di definire tanti indici in un singolo cluster.
funzionalità di È l'unità base di informazione che può essere indicizzata. È espresso nella coppia JSON (chiave: valore). '{“utente”: “nullcon”}'. Ad ogni singolo Documento è associato un tipo ed un id univoco.
Coccio Ogni indice può essere suddiviso in diversi frammenti per poter distribuire i dati. Il frammento è la parte atomica di un indice, che può essere distribuita sul cluster se si desidera aggiungere più nodi.

Che cos'è la Logstash?

Logstash è lo strumento della pipeline di raccolta dati. Raccoglie input di dati e li inserisce in Elasticsearch. Raccoglie tutti i tipi di dati da diverse fonti e li rende disponibili per un ulteriore utilizzo.

Logstash può unificare i dati provenienti da fonti disparate e normalizzarli nelle destinazioni desiderate. Ti consente di ripulire e democratizzare tutti i tuoi dati per l'analisi e la visualizzazione dei casi d'uso.

Si compone di tre componenti:

  • Ingresso: passaggio dei log per elaborarli in un formato comprensibile dalla macchina
  • Filtri: È un insieme di condizioni per eseguire una particolare azione o evento
  • Uscita: decisore per l'evento o il registro elaborato

Caratteristiche principali dell'app Logstash

Ora, in questo tutorial di LogStash, impariamo le funzionalità di LogStash:

  • Gli eventi vengono passati attraverso ciascuna fase utilizzando code interne
  • Consente input diversi per i log
  • Filtraggio/analisi dei log

Vantaggio di Logstash

  • Le offerte centralizzano il trattamento dei dati
  • Analizza un'ampia varietà di dati ed eventi strutturati/non strutturati
  • ELK LogStash offre plugin per connettersi a vari tipi di fonti di input e piattaforme

Cos'è Kibana?

Kibana è una visualizzazione dati che completa lo stack ELK. Questo strumento è utilizzato per visualizzare i documenti Elasticsearch e aiuta gli sviluppatori ad avere una rapida panoramica. La dashboard di Kibana offre vari diagrammi interattivi, dati geospaziali e grafici per visualizzare quire complesse.

Può essere utilizzato per cercare, visualizzare e interagire con i dati archiviati nelle directory Elasticsearch. Kibana ti aiuta a raggiungere prestazioni avanzate analisi dei dati e visualizza i tuoi dati in una varietà di tabelle, grafici e mappe.

In Kibana esistono diversi metodi per eseguire ricerche sui tuoi dati.

Ecco i tipi di ricerca più comuni:

Tipo di ricerca Impiego
Ricerche di testo libere Viene utilizzato per cercare una stringa specifica
Ricerche a livello di campo Viene utilizzato per cercare una stringa all'interno di un campo specifico
Affermazioni logiche Viene utilizzato per combinare le ricerche in un'affermazione logica.
Ricerche di prossimità Viene utilizzato per cercare termini in prossimità di specifici caratteri.

Ora in questo tutorial di Kibana, impariamo le caratteristiche importanti di Kibana:

Caratteristiche di Kinbana:

  • Potente dashboard front-end in grado di visualizzare le informazioni indicizzate dal cluster elastico
  • Consente la ricerca in tempo reale delle informazioni indicizzate
  • Puoi cercare, visualizzare e interagire con i dati archiviati in Elasticsearch
  • Esegui query sui dati e visualizza i risultati in grafici, tabelle e mappe
  • Dashboard configurabile per suddividere e analizzare i log di Logstash in Elasticsearch
  • In grado di fornire dati storici sotto forma di grafici, diagrammi, ecc.
  • Dashboard in tempo reale facilmente configurabili
  • Kibana ElasticSearch consente la ricerca in tempo reale delle informazioni indicizzate

Vantaggi e svantaggi di Kinbana

  • Visualizzazione semplice
  • Completamente integrato con Elasticsearch
  • Strumento di visualizzazione
  • Offre funzionalità di analisi, creazione di grafici, riepilogo e debug in tempo reale
  • Fornisce un'interfaccia istintiva e facile da usare
  • Consente la condivisione di istantanee dei log ricercati
  • Consente di salvare la dashboard e gestire più dashboard

Perché l'analisi dei log?

Nelle infrastrutture dell'ambiente basato su cloud, le prestazioni e l'isolamento sono molto importanti. Le prestazioni delle macchine virtuali nel cloud possono variare in base ai carichi specifici, agli ambienti e al numero di utenti attivi nel sistema. Pertanto, l'affidabilità e il guasto del nodo possono diventare un problema significativo.

Piattaforma di gestione dei registri può monitorare tutti i problemi sopra indicati nonché elaborare i log del sistema operativo, NGINX, log del server IIS per l'analisi del traffico web, log delle applicazioni e log su AWS (Amazon servizi web).

La gestione dei log aiuta gli ingegneri DevOps e gli amministratori di sistema a prendere decisioni aziendali migliori. Pertanto, l'analisi dei log tramite Elastic Stack o strumenti simili è importante.

ELK contro Splunk

Alce Splunk
Elk è uno strumento open source Splunk è uno strumento commerciale.
Lo stack di alci non offre Solaris Portabilità grazie a Kibana. Offerte Splunk Solaris Portabilità.
La velocità di elaborazione è strettamente limitata. Offre processi accurati e veloci.
ELK è uno stack tecnologico creato con la combinazione Elastic Search-Logstash-Kibana. Splunk è uno strumento proprietario. Fornisce soluzioni sia on-premise che cloud.
In ELK la ricerca, l'analisi e la visualizzazione saranno possibili solo dopo aver configurato lo stack ELK. Splunk è un pacchetto completo di gestione dei dati a tua disposizione.
Lo strumento ELK non supporta l'integrazione con altri strumenti. Splunk è uno strumento utile per impostare integrazioni con altri strumenti.

Portfolio

Netflix

Netflix fa molto affidamento sullo stack ELK. L'azienda utilizza lo stack ELK per monitorare e analizzare il registro di sicurezza delle operazioni del servizio clienti. Consente loro di indicizzare, archiviare e cercare documenti da più di quindici cluster che comprendono quasi 800 nodi.

LinkedIn

Il famoso sito di social media marketing LinkedIn utilizza lo stack ELK per monitorare prestazioni e sicurezza. Il team IT ha integrato ELK con Kafka per supportare il carico in tempo reale. La loro attività ELK comprende più di 100 cluster in sei diversi data center.

Tripwire

Tripwire è un sistema mondiale di gestione degli eventi di informazioni sulla sicurezza. L'azienda utilizza ELK per supportare l'analisi dei registri dei pacchetti di informazioni.

Medio

Medium è una famosa piattaforma di pubblicazione di blog. Usano lo stack ELK per eseguire il debug dei problemi di produzione. L'azienda utilizza anche ELK per il rilevamento DynamoDB hotpot. Inoltre, utilizzando questo stack, l’azienda può supportare 25 milioni di lettori unici e migliaia di post pubblicati ogni settimana.

Vantaggi e svantaggi dello stack ELK

Vantaggi

  • ELK funziona meglio quando i log di varie app di un'azienda convergono in un'unica istanza ELK
  • Fornisce informazioni straordinarie per questa singola istanza ed elimina anche la necessità di accedere a centinaia di origini dati di registro diverse
  • Installazione rapida in sede
  • Facile da distribuire Scala verticalmente e orizzontalmente
  • Elastic offre una serie di client linguistici che include Ruby. Python. PHP, Perl, .NET, Javae JavaScript e altro
  • Disponibilità di librerie per diversi linguaggi di programmazione e scripting

Svantaggi

  • Diversi componenti nello stack possono diventare difficili da gestire quando si passa a una configurazione complessa
  • Non c'è niente come tentativi ed errori. Pertanto, più fai, più impari lungo il percorso

Sommario

  • La registrazione centralizzata può essere utile quando si tenta di identificare problemi con server o applicazioni
  • Lo stack del server ELK è utile per risolvere i problemi relativi al sistema di registrazione centralizzato
  • Lo stack ELK è una raccolta di tre strumenti open source Elasticsearch, Logstash Kibana
  • Elasticsearch è un database NoSQL
  • Logstash è lo strumento della pipeline di raccolta dati
  • Kibana è una visualizzazione dei dati che completa lo stack ELK
  • Nelle infrastrutture dell'ambiente basato su cloud, le prestazioni e l'isolamento sono molto importanti
  • Nella velocità di elaborazione dello stack ELK è strettamente limitata mentre Splunk offre processi accurati e veloci
  • Netflix, LinkedIn, Tripware e Medium utilizzano tutti lo stack ELK per la propria attività
  • ELK Syslog funziona meglio quando i registri di varie app di un'azienda convergono in un'unica istanza ELK
  • Diversi componenti nello stack possono diventare difficili da gestire quando si passa a una configurazione complessa

Segnala il nostro Domande e risposte all'intervista ElasticSearch per candidati più freschi ed esperti.