Logstash - Raccolta dei registri

I registri da diversi server o origini dati vengono raccolti utilizzando spedizionieri. Un mittente è un'istanza di Logstash installata nel server, che accede ai log del server e li invia a una posizione di output specifica.

Invia principalmente l'output a Elasticsearch per l'archiviazione. Logstash riceve input dalle seguenti fonti:

  • STDIN
  • Syslog
  • Files
  • TCP/UDP
  • Registro eventi di Microsoft Windows
  • Websocket
  • Zeromq
  • Estensioni personalizzate

Raccolta dei registri utilizzando il server Apache Tomcat 7

In questo esempio, raccogliamo i log del server Apache Tomcat 7 installato in Windows utilizzando il plug-in di input dei file e li inviamo all'altro log.

logstash.conf

Qui, Logstash è configurato per accedere al registro di accesso di Apache Tomcat 7 installato localmente. Un pattern regex viene utilizzato nell'impostazione del percorso del plug-in del file per ottenere i dati dal file di registro. Questo contiene "accesso" nel suo nome e aggiunge un tipo di apache, che aiuta a differenziare gli eventi di apache dagli altri in una sorgente di destinazione centralizzata. Infine, gli eventi di output verranno visualizzati in output.log.

input {
   file {
      path => "C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/*access*"
      type => "apache"
   }
} 
output {
   file {
      path => "C:/tpwork/logstash/bin/log/output.log"
   }
}

Esegui Logstash

Possiamo eseguire Logstash utilizzando il seguente comando.

C:\logstash\bin> logstash –f  Logstash.conf

Registro di Apache Tomcat

Accedi al server Apache Tomcat e alle sue app Web (http://localhost:8080) per generare log. I dati aggiornati nei log vengono letti da Logstash in tempo reale e conservati in output.log come specificato nel file di configurazione.

Apache Tomcat genera un nuovo file di registro degli accessi in base alla data e registra lì gli eventi di accesso. Nel nostro caso, era localhost_access_log.2016-12-24.txt nel filelogs directory di Apache Tomcat.

0:0:0:0:0:0:0:1 - - [
   25/Dec/2016:18:37:00 +0800] "GET / HTTP/1.1" 200 11418
0:0:0:0:0:0:0:1 - munish [
   25/Dec/2016:18:37:02 +0800] "GET /manager/html HTTP/1.1" 200 17472
0:0:0:0:0:0:0:1 - - [
   25/Dec/2016:18:37:08 +0800] "GET /docs/ HTTP/1.1" 200 19373
0:0:0:0:0:0:0:1 - - [
   25/Dec/2016:18:37:10 +0800] "GET /docs/introduction.html HTTP/1.1" 200 15399

output.log

È possibile vedere negli eventi di output, viene aggiunto un campo tipo e l'evento è presente nel campo messaggio.

{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   localhost_access_log.2016-12-25.txt",
   "@timestamp":"2016-12-25T10:37:00.363Z","@version":"1","host":"Dell-PC",
   "message":"0:0:0:0:0:0:0:1 - - [25/Dec/2016:18:37:00 +0800] \"GET /
   HTTP/1.1\" 200 11418\r","type":"apache","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   localhost_access_log.2016-12-25.txt","@timestamp":"2016-12-25T10:37:10.407Z",
   "@version":"1","host":"Dell-PC",
   "message":"0:0:0:0:0:0:0:1 - munish [25/Dec/2016:18:37:02 +0800] \"GET /
   manager/html HTTP/1.1\" 200 17472\r","type":"apache","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   localhost_access_log.2016-12-25.txt","@timestamp":"2016-12-25T10:37:10.407Z",
   "@version":"1","host":"Dell-PC",
   "message":"0:0:0:0:0:0:0:1 - - [25/Dec/2016:18:37:08 +0800] \"GET /docs/
   HTTP/1.1\" 200 19373\r","type":"apache","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   localhost_access_log.2016-12-25.txt","@timestamp":"2016-12-25T10:37:20.436Z",
   "@version":"1","host":"Dell-PC",
   "message":"0:0:0:0:0:0:0:1 - - [25/Dec/2016:18:37:10 +0800] \"GET /docs/
   introduction.html HTTP/1.1\" 200 15399\r","type":"apache","tags":[]
}

Raccolta dei registri utilizzando il plug-in STDIN

In questa sezione, discuteremo un altro esempio di raccolta di log utilizzando il STDIN Plugin.

logstash.conf

È un esempio molto semplice, dove Logstash sta leggendo gli eventi inseriti dall'utente in uno standard input. Nel nostro caso, è il prompt dei comandi, che memorizza gli eventi nel file output.log.

input {
   stdin{}
}
output {
   file {
      path => "C:/tpwork/logstash/bin/log/output.log"
   }
}

Esegui Logstash

Possiamo eseguire Logstash utilizzando il seguente comando.

C:\logstash\bin> logstash –f  Logstash.conf

Scrivi il seguente testo nel prompt dei comandi:

L'utente ha inserito le seguenti due righe. Logstash separa gli eventi in base all'impostazione del delimitatore e il suo valore per impostazione predefinita è "\ n". L'utente può modificare modificando il valore del delimitatore nel plugin del file.

Tutorialspoint.com welcomes you
Simply easy learning

output.log

Il blocco di codice seguente mostra i dati del registro di output.

{
   "@timestamp":"2016-12-25T11:41:16.518Z","@version":"1","host":"Dell-PC",
   "message":"tutrialspoint.com welcomes you\r","tags":[]
}
{
   "@timestamp":"2016-12-25T11:41:53.396Z","@version":"1","host":"Dell-PC",
   "message":"simply easy learning\r","tags":[]
}