Logstash: recopilación de registros

Los registros de diferentes servidores o fuentes de datos se recopilan mediante remitentes. Un remitente es una instancia de Logstash instalada en el servidor, que accede a los registros del servidor y envía a una ubicación de salida específica.

Principalmente envía la salida a Elasticsearch para su almacenamiento. Logstash toma información de las siguientes fuentes:

  • STDIN
  • Syslog
  • Files
  • TCP/UDP
  • Registros de eventos de Microsoft Windows
  • Websocket
  • Zeromq
  • Extensiones personalizadas

Recopilación de registros mediante el servidor Apache Tomcat 7

En este ejemplo, estamos recopilando registros de Apache Tomcat 7 Server instalado en Windows utilizando el complemento de entrada de archivos y enviándolos al otro registro.

logstash.conf

Aquí, Logstash está configurado para acceder al registro de acceso de Apache Tomcat 7 instalado localmente. Se utiliza un patrón de expresiones regulares en la configuración de la ruta del complemento de archivo para obtener los datos del archivo de registro. Este contiene "acceso" en su nombre y agrega un tipo de apache, lo que ayuda a diferenciar los eventos de apache de los demás en una fuente de destino centralizada. Finalmente, los eventos de salida se mostrarán en 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"
   }
}

Ejecutar Logstash

Podemos ejecutar Logstash usando el siguiente comando.

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

Registro de Apache Tomcat

Acceda al servidor Apache Tomcat y sus aplicaciones web (http://localhost:8080) para generar registros. Logstash lee los datos actualizados en los registros en tiempo real y los almacena en output.log como se especifica en el archivo de configuración.

Apache Tomcat genera un nuevo archivo de registro de acceso según la fecha y registra los eventos de acceso allí. En nuestro caso, fue localhost_access_log.2016-12-24.txt en ellogs directorio de 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

Puede ver en los eventos de salida, se agrega un campo de tipo y el evento está presente en el campo de mensaje.

{
   "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":[]
}

Recopilación de registros mediante el complemento STDIN

En esta sección, analizaremos otro ejemplo de recopilación de registros utilizando la STDIN Plugin.

logstash.conf

Es un ejemplo muy simple, donde Logstash está leyendo los eventos ingresados ​​por el usuario en una entrada estándar. En nuestro caso, es el símbolo del sistema, que almacena los eventos en el archivo output.log.

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

Ejecutar Logstash

Podemos ejecutar Logstash usando el siguiente comando.

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

Escriba el siguiente texto en el símbolo del sistema:

El usuario ingresó las siguientes dos líneas. Logstash separa los eventos por la configuración del delimitador y su valor predeterminado es '\ n'. El usuario puede cambiar cambiando el valor del delimitador en el complemento de archivo.

Tutorialspoint.com welcomes you
Simply easy learning

output.log

El siguiente bloque de código muestra los datos del registro de salida.

{
   "@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":[]
}