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