Logstash in Docker

Logstash In Docker



Logstash è una pipeline di elaborazione dati open source che consente di raccogliere, elaborare e inoltrare i dati di registro da varie fonti.

In questo tutorial ti guideremo attraverso il processo di esecuzione di Logstash in un contenitore Docker con configurazione di base.

Requisiti:

Prima di iniziare con il tutorial, assicurati di avere quanto segue:







  1. Docker installato sul computer host (si consiglia la versione 23 e successive)
  2. Docker Compose installato sul tuo computer

Soddisfatti i requisiti indicati, possiamo procedere con il tutorial.



Imposta il file di configurazione Logstash

Logstash utilizza i file di configurazione per definire il modo in cui i dati vengono acquisiti, filtrati e inviati all'output. Esistono diverse opzioni che puoi configurare come puoi fare riferimento alla documentazione ufficiale.



Per il nostro esempio, ci concentriamo sulla configurazione di base che inserisce i dati da un file di registro, li filtra per i record corrispondenti e restituisce i dati in un file.





Crea un file chiamato 'logstash.conf' e aggiungi la configurazione come segue:

ingresso {
file {
percorso => '/var/log/apache/access.log'

posizione_iniziale => 'inizio'

sincedb_percorso => '/dev/null'

ignora_più vecchio => 0
}
}

filtro {
se [messaggio] =~ 'ERRORE' {
grok {
corrispondenza => { 'Messaggio' => '%{COMBINEDAPACHELOG}' }
}
}
}

produzione {
file {
percorso => '/var/log/apache/error_logs.log'
}
}

Il file precedente definisce la configurazione come mostrato di seguito:

  1. Sezione di input: la sezione di input utilizza il plug-in di input file per leggere il file di registro di Apache situato in /var/log/apache/access.log.
    • Impostiamo quindi la posizione iniziale all'inizio che consente a Logstash di leggere l'intero file dall'inizio.
    • Sincedb_path – Questo parametro ci consente di disabilitare il tracciamento sincedb di Logstash impostando il valore su /dev/null. Ciò garantisce che Logstash legga sempre dall'inizio del file.
    • Ignore_older: impostando il valore di questo parametro su 0 si consente a Logstash di elaborare tutte le voci del file di registro.
  2. Sezione filtro – Nella sezione filtro definiamo il modello di filtro per verificare se il messaggio di registro contiene la parola ERRORE. È possibile modificare le condizioni affinché i blocchi filtro filtrino corrispondenze più precise nel file.
    • Se la condizione è soddisfatta, utilizziamo il filtro grok per analizzare la riga di registro di Apache utilizzando il modello COMBINEDAPACHELOG che è un modello integrato in Logstash per analizzare i registri di Apache.
  3. Sezione di output – Questa sezione ci consente di definire il formato di output per le voci corrispondenti.
    • Nel nostro caso, li scriviamo nel file /var/log/apache/error_logs.log utilizzando il parametro path.

Questo dovrebbe fornirci una configurazione di base di Logstash che ci consenta di dimostrare alcuni funzionamenti di base di Logstash.

Per ulteriori informazioni sulla creazione e la configurazione delle pipeline Logstash, consultare la seguente risorsa di documentazione fornita:

https://www.elastic.co/guide/en/logstash/current/configuration.html

Crea il Dockerfile

Una volta definite le configurazioni di Logstash, possiamo procedere e imparare come eseguire il contenitore. All'interno della stessa directory del file 'logstash.conf', crea un nuovo file chiamato 'Dockerfile'.

Modifica questo file e aggiungi le voci come segue:

DA docker.elastic.co/logstash/logstash:8.9.2

COPIA logstash.conf /usr/share/logstash/pipeline/logstash.conf

Nell'esempio fornito, definiamo l'immagine di base come immagine ufficiale di Logstash utilizzando la versione 8.9.2.

Copiamo quindi il file 'logstash.conf' che abbiamo creato in /usr/share/logstash/pipeline/logstash.conf nell'immagine.

Costruisci l'immagine Docker

Successivamente, vai alla directory che contiene il file di configurazione Dockerfile e Logstash. Esegui il comando seguente per creare l'immagine:

$ compilazione della finestra mobile -T immagine-logstash-personalizzata .

Esegui il contenitore Logstash

Ora che abbiamo creato l'immagine Docker, possiamo eseguire un contenitore Logstash utilizzando il comando 'esegui' Docker come segue:

$ esecuzione della finestra mobile -D --nome logstash-server immagine-logstash-personalizzata

Questo dovrebbe eseguire il contenitore Logstash utilizzando l'immagine che abbiamo creato nel passaggio precedente.

Verificare i log del contenitore Logstash

Per verificare che Logstash funzioni correttamente, puoi controllare i log del contenitore utilizzando il seguente comando:

$ registri della finestra mobile < nome_contenitore >

Produzione:

Conclusione

In questo tutorial hai imparato come configurare rapidamente un server Logstash che viene eseguito come Docker utilizzando un file di configurazione personalizzato. Si consiglia di verificare la documentazione sui parametri dell'immagine e sulle opzioni di configurazione.