GNU/Linux >> Linux Esercitazione >  >> Ubuntu

ELK Stack Tutorial:inizia con Elasticsearch, Logstash, Kibana e Beats

Introduzione

Impila elastica , precedentemente noto come ELK impila , è una popolare suite di strumenti per l'acquisizione, la visualizzazione e la gestione dei file di registro. Come software open source, puoi scaricarlo e usarlo gratuitamente (sebbene siano disponibili anche versioni a pagamento e in hosting su cloud).

Questo tutorial introduce l'utilizzo e le funzionalità di base di ELK Stack.

Prerequisiti

  • Un sistema con Elasticsearch installato

Cos'è ELK Stack?

ELK sta per Elasticsearch, Logstash e Kibana. Nelle versioni precedenti, i componenti principali di ELK Stack erano:

  • Ricerca elastica – Il componente principale di ELK. Funziona come un database ricercabile per i file di registro.
  • Archiviazione – Una pipeline per recuperare i dati. Può essere configurato per recuperare dati da molte fonti diverse e quindi inviarli a Elasticsearch.
  • Kibana – Uno strumento di visualizzazione. Utilizza un'interfaccia browser web per organizzare e visualizzare i dati.

Pacchetti software aggiuntivi chiamati Beats sono una nuova aggiunta. Si tratta di applicazioni di raccolta dati più piccole, specializzate per attività individuali. Esistono molte diverse applicazioni Beats per scopi diversi. Ad esempio, Filebeat viene utilizzato per raccogliere file di registro, mentre Packetbeat viene utilizzato per analizzare il traffico di rete.

A causa dell'acronimo ELK in rapida crescita, Elastic Stack divenne l'opzione più soddisfacente e scalabile per il nome. Tuttavia, ELK ed Elastic Stack sono usati in modo intercambiabile.

Perché usare ELK Stack?

Lo stack ELK crea un ambiente di analisi dei dati flessibile e affidabile. Le organizzazioni, in particolare quelle con infrastrutture basate su cloud, traggono vantaggio dall'implementazione dello stack elastico per affrontare i seguenti problemi:

  • Lavorare su vari server e applicazioni crea grandi quantità di dati di registro, che non sono leggibili dall'uomo. Lo stack ELK funge da potente piattaforma centralizzata per la raccolta e gestione delle informazioni non strutturate , trasformandolo in asset utili nel processo decisionale.
  • Lo stack ELK con funzionalità di base è open source, il che lo rende un economico soluzione sia per startup che per aziende affermate.
  • Lo stack elastico fornisce una solida piattaforma per il monitoraggio delle prestazioni e della sicurezza, garantendo il tempo di attività massimo e conformità alle normative .

Lo stack elastico risolve il divario del settore con i dati di registro. Il software può analizzare in modo affidabile i dati provenienti da più origini in un database centralizzato scalabile, consentendo analisi sia storiche che in tempo reale.

Come funziona lo stack elastico?

Lo stack elastico segue alcuni passaggi logici, tutti configurabili.

1. Un computer o un server crea file di registro. Tutti i computer dispongono di file di registro che documentano gli eventi sul sistema in un formato di difficile lettura. Alcuni sistemi, come i cluster di server, generano enormi quantità di file di registro.

Tuttavia, Elastic Stack è progettato per aiutare a gestire quantità scalabili di dati.

2. I vari file di informazioni disponibili vengono raccolti da un Beats applicazione. Battiti diversi raggiungi diverse parti del server, leggi i file e spediscili.

Alcuni utenti potrebbero saltare del tutto Beats e utilizzare direttamente Logstash. Altri possono collegare Beats direttamente a Elasticsearch.

3. Archiviazione è configurato per raggiungere e raccogliere dati dai diversi Beat applicazioni (o direttamente da varie fonti).

Nelle configurazioni più grandi, Logstash può filtrare i dati da più sistemi e raccogliere le informazioni in un'unica posizione.

4. Ricerca elastica viene utilizzato come database scalabile e ricercabile per archiviare i dati. Ricerca elastica è il magazzino in cui Logstash o Battiti pipe tutti i dati.

5. Infine, Kibana fornisce un'interfaccia intuitiva per la revisione dei dati che sono stati raccolti.

È altamente configurabile, quindi puoi regolare le metriche in base alle tue esigenze. Kibana fornisce anche grafici e altri strumenti per visualizzare e interpretare i modelli nei dati.

Applicazioni di supporto dello stack ELK

Ulteriori applicazioni di terze parti migliorano l'Elastic Stack, offrendo possibilità di utilizzo più ampie. Alcune applicazioni esterne supportate dallo stack ELK sono:

  • Apache Kafka

Kafka è una piattaforma di distribuzione di streaming in tempo reale. Ciò significa che può leggere più origini dati contemporaneamente. Kafka funge da buffer di dati e aiuta a prevenire la perdita o l'interruzione dei dati durante lo streaming rapido dei file.

  • Redis

Redis è un database di valori-chiave NoSQL con incredibili velocità di lettura/scrittura e vari tipi di dati. Quando viene aggiunto allo stack elastico, Redis funge spesso da buffer per i picchi del flusso di dati, assicurando che nessun dato venga perso.

  • Hadoop

Hadoop è un enorme sistema di archiviazione dati di elaborazione batch. L'indicizzazione dei dati da Hadoop nel motore Elasticsearch in tempo reale crea una piattaforma bidirezionale interattiva per il rilevamento e la visualizzazione dei dati.

Il supporto Hadoop viene fornito tramite il connettore Elasticsearch-Hadoop, che offre supporto completo per Spark, Streaming, Hive, Storm, MapReduce e altri strumenti.

  • RabbitMQ

RabbitMQ è una piattaforma di messaggistica. Gli utenti di Elastic Stack utilizzano questo software per creare una coda stabile e bufferizzata di file di registro.

  • Nginx

Nginx è meglio conosciuto come un server web che può anche essere configurato come proxy inverso. Può essere utilizzato per gestire il traffico di rete o per creare un buffer di sicurezza tra il tuo server e Internet.

ELK impila vantaggi e svantaggi

Lo stack elastico presenta alcuni vantaggi e svantaggi.

Vantaggi

  • Lo stack elastico e i componenti possono essere provati e utilizzati gratuitamente.
  • ELK offre numerose opzioni di hosting, in locale o distribuite come servizio gestito.
  • La capacità di centralizzare la registrazione da complessi ambienti cloud consente ricerche avanzate e la creazione di correlazioni da più origini su un'unica piattaforma.
  • L'analisi e la visualizzazione in tempo reale riducono il tempo necessario per scoprire informazioni dettagliate, consentendo un monitoraggio continuo.
  • Supporto client per più linguaggi di programmazione, inclusi JavaScript, Python, Perl, Go, ecc.

Svantaggi

  • La distribuzione dello stack è un processo complesso e dipende dai requisiti. Dai un'occhiata al nostro tutorial per la distribuzione dello stack elastico su Kubernetes.
  • La crescita e la manutenzione dello stack ELK sono costose e richiedono elaborazione e archiviazione dei dati in base al volume dei dati e al tempo di archiviazione.
  • Stabilità e tempo di attività diventano problematici man mano che i volumi di dati crescono a causa di limiti di indicizzazione inesistenti.
  • La conservazione e l'archiviazione dei dati richiedono più nodi, potenza di calcolo e risorse in generale.

Panoramica di Elasticsearch

Elasticsearch è il cuore dell'Elastic Stack. Ha due compiti principali:

  • Archiviazione e indicizzazione dei dati.
  • Motore di ricerca per recuperare i dati.

I dettagli tecnici di Elasticsearch includono:

  • Supporto robusto del linguaggio di programmazione per i client (Java, PHP, Ruby, C#, Python).
  • Utilizza un'API REST:le applicazioni scritte per Elasticsearch hanno un'eccellente compatibilità con le applicazioni Web.
  • Risultati reattivi:gli utenti vedono i dati quasi in tempo reale.
  • Architettura distribuita:Elasticsearch può essere eseguito e connettersi tra molti server diversi. L'Elastic Stack può scalare facilmente con la crescita dell'infrastruttura.
  • Indicizzazione invertita – Elasticsearch indicizza per parole chiave, proprio come l'indice di un libro. Ciò consente di velocizzare le query su set di dati di grandi dimensioni.
  • Shard:se i tuoi dati sono troppo grandi per il tuo server, Elasticsearch può suddividerli in sottoinsiemi chiamati Shard .
  • Non relazionale (NoSQL):Elasticsearch utilizza un database non relazionale per liberarsi dai vincoli dell'archiviazione dei dati strutturati/tabulari.
  • Apache Lucene – Questo è il motore di ricerca di base su cui si basa Elasticsearch.

Panoramica Logstash

Logstash è uno strumento per raccogliere e ordinare i dati da diverse fonti. Logstash può raggiungere un server remoto, raccogliere un set specifico di log e importarli in Elasticsearch.

Può ordinare, filtrare e organizzare i dati. Inoltre, include diverse configurazioni predefinite oppure puoi crearne di tue. Ciò è particolarmente utile per strutturare i dati in modo uniforme (o leggibile).

Caratteristiche tecniche Logstash:

  • Accetta un'ampia gamma di formati di dati e origini:aiuta a consolidare diversi set di dati in un'unica posizione centrale.
  • Manipola i dati in tempo reale:quando i dati vengono letti dalle sorgenti, Logstash li analizza e li ristruttura immediatamente.
  • Output flessibile:Logstash è creato per Elasticsearch, ma come molti progetti open source, può essere riconfigurato per l'esportazione in altre utility.
  • Supporto dei plug-in:è possibile aggiungere un'ampia gamma di componenti aggiuntivi per migliorare le funzionalità di Logstash.

Panoramica di Kibana

Puoi utilizzare Elasticsearch da una riga di comando semplicemente dopo averlo installato. Ma Kibana ti offre un'interfaccia grafica per generare e visualizzare i dati in modo più intuitivo.

Ecco alcuni dettagli tecnici:

  • Interfaccia dashboard:configura grafici, origini dati e metriche a colpo d'occhio.
  • Menu configurabili:crea visualizzazioni di dati e menu per navigare o esplorare rapidamente set di dati.
  • Plug-in:l'aggiunta di plug-in come Canvas ti consente di aggiungere viste strutturate e monitoraggio in tempo reale alla tua interfaccia grafica.

Scopri come utilizzare Kibana nella nostra guida Tutorial completo di Kibana per visualizzare e interrogare i dati.

Panoramica dei battiti

Beats funziona sul sistema che monitora. Raccoglie e spedisce i dati a una destinazione, come Logstash o Elasticsearch.

Puoi utilizzare Beats per importare i dati direttamente in Elasticsearch se stai eseguendo un set di dati più piccolo.

In alternativa, Beats può essere utilizzato per suddividere i dati in flussi gestibili, quindi analizzati in Logstash, per essere letti da Elasticsearch.

Per un singolo server, puoi installare Elasticsearch, Kibana e alcuni Beats. Ogni Beats raccoglie i dati e li invia a Elasticsearch. Potrai quindi visualizzare i risultati in Kibana.

In alternativa, puoi installare Beats su diversi server remoti, quindi configurare Logstash per raccogliere e analizzare i dati dai server. Tali dati vengono inviati a Elasticsearch e quindi diventano visibili in Kibana.

Batti Acquisizione dati Descrizione
Auditbeat Dati di controllo Una versione potenziata di Linux auditd. Può interagire direttamente con il tuo sistema Linux al posto dell'auditd processi. Se hai già delle regole auditd, Auditbeat leggerà la tua configurazione esistente.
Filebeat File di registro Legge e spedisce i file di registro del sistema. È utile per i registri del server, come eventi hardware o registri delle applicazioni.
Functionbeat Dati cloud Spedisce i dati dall'infrastruttura serverless o cloud. Se stai eseguendo un servizio ospitato nel cloud, utilizzalo per raccogliere i dati dal cloud ed esportarlo in Elasticsearch.
Battito cardiaco Disponibilità Visualizza il tempo di attività e il tempo di risposta. Usalo per tenere d'occhio i server critici o altri sistemi, per assicurarti che siano in esecuzione e disponibili.
Journalbeat Diari di sistema Inoltra, centralizza e spedisce i registri del diario di sistema.
Metricbeat Metriche Legge i dati delle metriche:utilizzo della CPU, memoria, utilizzo del disco, larghezza di banda della rete. Usalo come monitor di risorse di sistema sovralimentato.
Packetbeat Traffico di rete Analizza il traffico di rete. Usalo per monitorare la latenza e la reattività, o i modelli di utilizzo e di traffico.
Winlogbeat Registri eventi di Windows Invia i dati dal registro eventi di Windows. Tieni traccia di eventi di accesso, eventi di installazione e persino errori hardware o applicativi.

Casi d'uso dello stack ELK

Il monitoraggio dei log in tempo reale da varie risorse fornisce allo stack elastico molti casi d'uso creativi.

  • Monitoraggio della sicurezza e avvisi . Un sistema di monitoraggio e avviso del server è un'importante applicazione di sicurezza per lo stack ELK. Verificare la presenza di richieste insolite o rilevare gli attacchi al server con un sistema di avviso in tempo reale può aiutare a mitigare i danni non appena si verificano.
  • Soluzioni di e-commerce . Ricerche full-text, indicizzazione, aggregazioni e risposte rapide creano un'esperienza utente migliore. Il monitoraggio visivo delle tendenze e dei comportamenti di ricerca aiuta a migliorare l'analisi delle tendenze.
  • Raschiamento web . La capacità di raccogliere, indicizzare e cercare dati non strutturati da diverse fonti semplifica la raccolta e la visualizzazione delle informazioni raschiate sul Web.
  • Monitoraggio del traffico . Il monitoraggio dei dati sul traffico del sito Web aiuta a indicare che un server è sovraccarico. Implementa un'applicazione di bilanciamento del carico (come Nginx) per trasferire il traffico su altri server.
  • Rilevamento degli errori . Se stai distribuendo una nuova applicazione, puoi monitorare gli errori per tale applicazione. Questi possono aiutare a identificare rapidamente le aree per correggere i bug o migliorare la progettazione dell'applicazione.

Elastic Stack genera dati che puoi utilizzare per risolvere problemi e prendere decisioni aziendali valide.


Ubuntu
  1. Installazione dello stack ELK su Ubuntu 14.04

  2. Come installare Elasticsearch, Logstash e Kibana 4 su Ubuntu 14.04 / 15.04

  3. Un'introduzione al monitoraggio tramite ELK Stack

  4. Come iniziare con le traduzioni?

  5. Come iniziare con Juju?

Come installare Elasticsearch, Logstash e Kibana (ELK Stack) su Ubuntu 18.04 / Ubuntu 16.04

Come installare ELK Stack su Ubuntu 18.04

Tutorial Podman - Inizia con Podman

Come installare ELK Stack (Elasticsearch, Logstash e Kibana) su Ubuntu 20.04

Come installare ELK Stack su Ubuntu 18.04 LTS

Come installare Elasticsearch Logstash Kibana (stack elastico) su Ubuntu 18.04