Logstash: entradas compatibles

Logstash admite una amplia gama de registros de diferentes fuentes. Está trabajando con fuentes famosas como se explica a continuación.

Recopilar registros de métricas

Los eventos del sistema y otras actividades de tiempo se registran en métricas. Logstash puede acceder al registro desde las métricas del sistema y procesarlas mediante filtros. Esto ayuda a mostrar al usuario la transmisión en vivo de los eventos de manera personalizada. Las métricas se vacían de acuerdo conflush_interval settingdel filtro de métricas y por defecto; está establecido en 5 segundos.

Estamos rastreando las métricas de prueba generadas por Logstash, recopilando y analizando los eventos que se ejecutan a través de Logstash y mostrando la transmisión en vivo en el símbolo del sistema.

logstash.conf

Esta configuración contiene un complemento de generador, que Logstash ofrece para las métricas de prueba y establece la configuración de tipo en "generado" para el análisis. En la fase de filtrado, solo procesamos las líneas con un tipo generado usando la instrucción 'if'. Luego, el complemento de métricas cuenta el campo especificado en la configuración del medidor. El complemento de métricas vacía el recuento después de cada 5 segundos especificado en elflush_interval.

Por último, envíe los eventos de filtro a una salida estándar como el símbolo del sistema utilizando el codec pluginpara formatear. El complemento Codec utiliza el valor de [ eventos ] [ rate_1m ] para generar los eventos por segundo en una ventana deslizante de 1 minuto.

input {
   generator {
     	type => "generated"
   }
}
filter {
   if [type] == "generated" {
      metrics {
         meter => "events"
         add_tag => "metric"
      }
   }
}
output {
   # only emit events with the 'metric' tag
   if "metric" in [tags] {
      stdout {
         codec => line { format => "rate: %{[events][rate_1m]}"
      }
   }
}

Ejecutar Logstash

Podemos ejecutar Logstash usando el siguiente comando.

>logsaths –f logstash.conf

stdout (símbolo del sistema)

rate: 1308.4
rate: 1308.4
rate: 1368.654529135342
rate: 1416.4796003951449
rate: 1464.974293984808
rate: 1523.3119444107458
rate: 1564.1602979542715
rate: 1610.6496496890895
rate: 1645.2184750334154
rate: 1688.7768007612485
rate: 1714.652283095914
rate: 1752.5150680019278
rate: 1785.9432934744932
rate: 1806.912181962126
rate: 1836.0070454626025
rate: 1849.5669494173826
rate: 1871.3814756851832
rate: 1883.3443123790712
rate: 1906.4879113216743
rate: 1925.9420717997118
rate: 1934.166137658981
rate: 1954.3176526556897
rate: 1957.0107444542625

Recopilar registros del servidor web

Los servidores web generan una gran cantidad de registros sobre el acceso de los usuarios y los errores. Logstash ayuda a extraer los registros de diferentes servidores mediante complementos de entrada y a guardarlos en una ubicación centralizada.

Estamos extrayendo los datos del stderr logs del servidor Apache Tomcat local y guardándolo en el output.log.

logstash.conf

Este archivo de configuración de Logstash indica a Logstash que lea los registros de errores de Apache y agregue una etiqueta denominada "apache-error". Simplemente podemos enviarlo al archivo output.log usando el complemento de salida del archivo.

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

Ejecutar Logstash

Podemos ejecutar Logstash usando el siguiente comando.

>Logstash –f Logstash.conf

Muestra de registro de entrada

Esta es la muestra stderr log, que se genera cuando ocurren los eventos del servidor en Apache Tomcat.

C: \ Archivos de programa \ Apache Software Foundation \ Tomcat 7.0 \ logs \ tomcat7-stderr.2016-12-25.log

Dec 25, 2016 7:05:14 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-9999"]
Dec 25, 2016 7:05:14 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Dec 25, 2016 7:05:14 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 823 ms

output.log

{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z",
   "@version":"1","host":"Dell-PC",
   "message":"Dec 25, 2016 7:05:14 PM org.apache.coyote.AbstractProtocol start\r",
   "type":"apache-error","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z",
   "@version":"1","host":"Dell-PC",
   "message":"INFO: Starting ProtocolHandler [
      \"ajp-bio-8009\"]\r","type":"apache-error","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z",
   "@version":"1","host":"Dell-PC",
   "message":"Dec 25, 2016 7:05:14 PM org.apache.catalina.startup.Catalina start\r",
   "type":"apache-error","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z",
   "@version":"1","host":"Dell-PC",
   "message":"INFO: Server startup in 823 ms\r","type":"apache-error","tags":[]
}

Recopilar registros de fuentes de datos

Para empezar, entendamos cómo configurar MySQL para el registro. Agregue las siguientes líneas enmy.ini file del servidor de base de datos MySQL en [mysqld].

En Windows, está presente dentro del directorio de instalación de MySQL, que está en -

C:\wamp\bin\mysql\mysql5.7.11

En UNIX, puede encontrarlo en - /etc/mysql/my.cnf

general_log_file   = "C:/wamp/logs/queries.log"
general_log = 1

logstash.conf

En este archivo de configuración, el complemento de archivo se usa para leer el registro de MySQL y escribirlo en ouput.log.

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

queries.log

Este es el registro generado por las consultas ejecutadas en la base de datos MySQL.

2016-12-25T13:05:36.854619Z   2 Query		select * from test1_users
2016-12-25T13:05:51.822475Z    2 Query	select count(*) from users
2016-12-25T13:05:59.998942Z    2 Query         select count(*) from test1_users

output.log

{
   "path":"C:/wamp/logs/queries.log","@timestamp":"2016-12-25T13:05:37.905Z",
   "@version":"1","host":"Dell-PC",
   "message":"2016-12-25T13:05:36.854619Z    2 Query\tselect * from test1_users",
   "tags":[]
}
{
   "path":"C:/wamp/logs/queries.log","@timestamp":"2016-12-25T13:05:51.938Z",
   "@version":"1","host":"Dell-PC",
   "message":"2016-12-25T13:05:51.822475Z    2 Query\tselect count(*) from users",
   "tags":[]
}
{
   "path":"C:/wamp/logs/queries.log","@timestamp":"2016-12-25T13:06:00.950Z",
   "@version":"1","host":"Dell-PC",
   "message":"2016-12-25T13:05:59.998942Z    2 Query\tselect count(*) from test1_users",
   "tags":[]
}