Logstash - Complementos

Logstash ofrece varios complementos para las tres etapas de su canalización (entrada, filtro y salida). Estos complementos ayudan al usuario a capturar registros de varias fuentes como servidores web, bases de datos, protocolos de red, etc.

Después de la captura, Logstash puede analizar y transformar los datos en información significativa según lo requiera el usuario. Por último, Logstash puede enviar o almacenar esa información significativa a varias fuentes de destino como Elasticsearch, AWS Cloudwatch, etc.

Complementos de entrada

Los complementos de entrada en Logstash ayudan al usuario a extraer y recibir registros de varias fuentes. La sintaxis para usar el complemento de entrada es la siguiente:

Input {
   Plugin name {
      Setting 1……
      Setting 2……..
   }
}

Puede descargar el complemento de entrada usando el siguiente comando:

>Logstash-plugin install Logstash-input-<plugin name>

La utilidad Logstash-plugin está presente en el bin folderdel directorio de instalación de Logstash. La siguiente tabla tiene una lista de los complementos de entrada que ofrece Logstash.

No Señor. Nombre y descripción del complemento
1

beats

Para obtener los datos de registro o eventos de elastic beats framework.

2

cloudwatch

Para extraer eventos de CloudWatch, una oferta de API de Amazon Web Services.

3

couchdb_changes

Eventos de _chages URI de couchdb enviados usando este complemento.

4

drupal_dblog

Para extraer los datos de registro del perro guardián de drupal con DBLog habilitado.

5

Elasticsearch

Para recuperar los resultados de las consultas realizadas en el clúster de Elasticsearch.

6

eventlog

Para obtener los eventos del registro de eventos de Windows.

7

exec

Para obtener la salida del comando de shell como entrada en Logstash.

8

file

Para obtener los eventos de un archivo de entrada. Esto es útil cuando Logstash está instalado localmente con la fuente de entrada y tiene acceso a los registros de la fuente de entrada.

9

generator

Se utiliza con fines de prueba, lo que crea eventos aleatorios.

10

github

Captura eventos del webhook de GitHub.

11

graphite

Para obtener datos de métricas de la herramienta de monitoreo de grafito.

12

heartbeat

También se usa para pruebas y produce eventos similares a los latidos del corazón.

13

http

Para recopilar eventos de registro en dos protocolos de red, que son http y https.

14

http_poller

Se utiliza para decodificar la salida de la API HTTP a un evento.

15

jdbc

Convierte las transacciones JDBC en un evento en Logstash.

dieciséis

jmx

Para extraer las métricas de aplicaciones java remotas usando JMX.

17

log4j

Capture eventos del objeto socketAppender de Log4j sobre el socket TCP.

18

rss

A la salida de las herramientas de la línea de comandos como un evento de entrada en Logstash.

19

tcp

Captura eventos a través del socket TCP.

20

twitter

Recopile eventos de la API de transmisión de Twitter.

21

unix

Recopile eventos a través del socket UNIX.

22

websocket

Capture eventos a través del protocolo websocket.

23

xmpp

Lee eventos sobre protocolos Jabber / xmpp.

Configuración del complemento

Todos los complementos tienen su configuración específica, lo que ayuda a especificar los campos importantes como Puerto, Ruta, etc., en un complemento. Discutiremos la configuración de algunos de los complementos de entrada.

Archivo

Este complemento de entrada se utiliza para extraer eventos directamente del registro o archivos de texto presentes en la fuente de entrada. Funciona de manera similar al comando tail en UNIX y guarda el último cursor leído y lee solo los nuevos datos agregados del archivo de entrada, pero se puede cambiar usando la configuración star_position. A continuación se muestran las configuraciones de este complemento de entrada.

Nombre de configuración Valor por defecto Descripción
Agregue campo {} Agregue un nuevo campo al evento de entrada.
close_older 3600 Se cierran los archivos que tengan un tiempo de última lectura (en segundos) superior al especificado en este complemento.
códec "llanura" Se utiliza para decodificar los datos antes de ingresar a la canalización de Logstash.
delimitador "\norte" Se utiliza para especificar un nuevo delimitador de línea.
descubrir_intervalo 15 Es el intervalo de tiempo (en segundos) entre el descubrimiento de nuevos archivos en la ruta especificada.
enable_metric cierto Se utiliza para habilitar o deshabilitar la generación de informes y la recopilación de métricas para el complemento especificado.
excluir Se utiliza para especificar el nombre de archivo o patrones, que deben excluirse del complemento de entrada.
Carné de identidad Para especificar una identidad única para esa instancia de complemento.
max_open_files Especifica el número máximo de archivos de entrada de Logstash en cualquier momento.
camino Especifique la ruta de los archivos y puede contener los patrones para el nombre del archivo.
Posición de salida "fin" Puede cambiar a "comienzo", si lo desea; inicialmente, Logstash debería comenzar a leer los archivos desde el principio y no solo el nuevo evento de registro.
intervalo_inicio 1 Especifica el intervalo de tiempo en segundos, después del cual Logstash busca los archivos modificados.
etiquetas Para agregar cualquier información adicional, como Logstash, agrega "_grokparsefailure" en las etiquetas, cuando cualquier evento de registro no cumple con el filtro grok especificado.
tipo Este es un campo especial, que puede agregar a un evento de entrada y es útil en filtros y kibana.

Elasticsearch

Este complemento en particular se utiliza para leer los resultados de las consultas de búsqueda en un clúster de Elasticsearch. Lo siguiente tiene la configuración utilizada en este complemento:

Nombre de configuración Valor por defecto Descripción
Agregue campo {} Al igual que en el complemento de archivo, se usa para agregar un campo en el evento de entrada.
ca_file Se utiliza para especificar la ruta del archivo de la autoridad de certificación SSL.
códec "llanura" Se utiliza para decodificar los eventos de entrada de Elasticsearch antes de ingresar en la canalización de Logstash.
docinfo "falso" Puede cambiarlo a verdadero, si desea extraer la información adicional como índice, tipo e identificación del motor Elasticsearch.
docinfo_fields ["_index", "_type", "_id"] Puede eliminar cualquier campo que no desee en su entrada de Logstash.
enable_metric cierto Se utiliza para habilitar o deshabilitar la generación de informes y la recopilación de métricas para esa instancia de complemento.
Hospedadores Se utiliza para especificar las direcciones de todos los motores de búsqueda elástica, que serán la fuente de entrada de esa instancia de Logstash. La sintaxis es host: puerto o IP: puerto.
Carné de identidad Se utiliza para dar un número de identidad único a esa instancia de complemento de entrada específica.
índice "logstash- *" Se utiliza para especificar el nombre del índice o un patrón, que Logstash supervisará por Logstash para la entrada.
contraseña Para fines de autenticación.
consulta "{\" ordenar \ ": [\" _ doc \ "]}" Consulta de ejecución.
ssl falso Habilite o deshabilite la capa de conexión segura.
etiquetas Para agregar cualquier información adicional en eventos de entrada.
tipo Se utiliza para clasificar los formularios de entrada de modo que sea fácil buscar todos los eventos de entrada en etapas posteriores.
usuario Para fines auténticos.

registro de eventos

Este complemento de entrada lee datos de la API win32 de los servidores de Windows. Las siguientes son las configuraciones de este complemento:

Nombre de configuración Valor por defecto Descripción
Agregue campo {} Igual que en el complemento de archivo, se usa para agregar un campo en el evento de entrada
códec "llanura" Se utiliza para decodificar los eventos de entrada de Windows; antes de entrar en la canalización de Logstash
archivo de registro ["Aplicación", "Seguridad", "Sistema"] Eventos necesarios en el archivo de registro de entrada
intervalo 1000 Está en milisegundos y define el intervalo entre dos comprobaciones consecutivas de nuevos registros de eventos.
etiquetas Para agregar información adicional en eventos de entrada
tipo Se utiliza para clasificar la entrada de un complemento específico a un tipo dado, de modo que sea fácil buscar todos los eventos de entrada en etapas posteriores.

Gorjeo

Este complemento de entrada se utiliza para recopilar el feed de Twitter desde su API de transmisión. La siguiente tabla describe la configuración de este complemento.

Nombre de configuración Valor por defecto Descripción
Agregue campo {} Igual que en el complemento de archivo, se usa para agregar un campo en el evento de entrada
códec "llanura" Se utiliza para decodificar los eventos de entrada de Windows; antes de entrar en la canalización de Logstash
consumidor_clave Contiene la clave de consumidor de la aplicación de Twitter. Para obtener más información, visitehttps://dev.twitter.com/apps/new
consumidor_secreto Contiene la clave secreta del consumidor de la aplicación de Twitter. Para obtener más información, visitehttps://dev.twitter.com/apps/new
enable_metric cierto Se utiliza para habilitar o deshabilitar la generación de informes y la recopilación de métricas para esa instancia de complemento.
sigue

Especifica los identificadores de usuario separados por comas y LogStash verifica el estado de estos usuarios en Twitter.

Para obtener más información, visite

https://dev.twitter.com

full_tweet falso Puede cambiarlo a verdadero, si desea que Logstash lea el retorno completo del objeto de la API de Twitter
carné de identidad Se utiliza para dar un número de identidad único a esa instancia de complemento de entrada específica.
ignore_retweets Falso Puede cambiar establecerlo como verdadero para ignorar los retweets en la entrada de Twitter.
palabras clave Es una serie de palabras clave, que se deben rastrear en el feed de entrada de Twitter.
idioma Define el idioma de los tweets que necesita LogStash desde el feed de Twitter de entrada. Esta es una matriz de identificadores, que define un idioma específico en Twitter.
ubicaciones Para filtrar los tweets del feed de entrada de acuerdo con la ubicación especificada. Esta es una matriz, que contiene la longitud y latitud de la ubicación.
oauth_token Es un archivo obligatorio que contiene el token oauth del usuario. Para obtener más información, visite el siguiente enlacehttps://dev.twitter.com/apps
oauth_token_secret Es un archivo obligatorio que contiene el token secreto de oauth del usuario. Para obtener más información, visite el siguiente enlacehttps://dev.twitter.com/apps
etiquetas Para agregar información adicional en eventos de entrada
tipo Se utiliza para clasificar la entrada de un complemento específico a un tipo dado, de modo que sea fácil buscar todos los eventos de entrada en etapas posteriores.

TCP

TCP se utiliza para obtener los eventos a través del socket TCP; puede leer de las conexiones del usuario o del servidor, que se especifica en la configuración del modo. La siguiente tabla describe la configuración de este complemento:

Nombre de configuración Valor por defecto Descripción
Agregue campo {} Igual que en el complemento de archivo, se usa para agregar un campo en el evento de entrada
códec "llanura" Se utiliza para decodificar los eventos de entrada de Windows; antes de entrar en la canalización de Logstash
enable_metric cierto Se utiliza para habilitar o deshabilitar la generación de informes y la recopilación de métricas para esa instancia de complemento.
anfitrión "0.0.0.0" La dirección del sistema operativo del servidor del que depende el cliente
carné de identidad Contiene la clave de consumidor de la aplicación de Twitter.
modo "servidor" Se utiliza para especificar que la fuente de entrada es servidor o cliente.
Puerto Define el número de puerto
ssl_cert Se utiliza para especificar la ruta del certificado SSL.
ssl_enable falso Activar o desactivar SSL
ssl_key Para especificar la ruta del archivo de claves SSL
etiquetas Para agregar información adicional en eventos de entrada
tipo Se utiliza para clasificar la entrada de un complemento específico a un tipo dado, de modo que sea fácil buscar todos los eventos de entrada en etapas posteriores.

Logstash - Complementos de salida

Logstash admite varias fuentes de salida y en diferentes tecnologías como base de datos, archivo, correo electrónico, salida estándar, etc.

La sintaxis para usar el complemento de salida es la siguiente:

output {
   Plugin name {
      Setting 1……
      Setting 2……..
   }
}

Puede descargar el complemento de salida mediante el siguiente comando:

>logstash-plugin install logstash-output-<plugin name>

los Logstash-plugin utilityestá presente en la carpeta bin del directorio de instalación de Logstash. La siguiente tabla describe los complementos de salida que ofrece Logstash.

No Señor. Nombre y descripción del complemento
1

CloudWatch

Este complemento se utiliza para enviar datos métricos agregados a CloudWatch de los servicios web de Amazon.

2

csv

Se utiliza para escribir los eventos de salida separados por comas.

3

Elasticsearch

Se utiliza para almacenar los registros de salida en el índice Elasticsearch.

4

email

Se utiliza para enviar un correo electrónico de notificación cuando se genera la salida. El usuario puede agregar información sobre la salida en el correo electrónico.

5

exec

Se utiliza para ejecutar un comando, que coincide con el evento de salida.

6

ganglia

Retorna las métricas al gmond de Gangila.

7

gelf

Se utiliza para producir resultados para Graylog2 en formato GELF.

8

google_bigquery

Envía los eventos a Google BigQuery.

9

google_cloud_storage

Almacena los eventos de salida en Google Cloud Storage.

10

graphite

Se utiliza para almacenar los eventos de salida en Graphite.

11

graphtastic

Se utiliza para escribir las métricas de salida en Windows.

12

hipchat

Se utiliza para almacenar los eventos de registro de salida en HipChat.

13

http

Se utiliza para enviar los eventos de registro de salida a puntos finales http o https.

14

influxdb

Se utiliza para almacenar el evento de salida en InfluxDB.

15

irc

Se utiliza para escribir los eventos de salida en irc.

dieciséis

mongodb

Almacena los datos de salida en MongoDB.

17

nagios

Se utiliza para notificar a Nagios con los resultados de la verificación pasiva.

18

nagios_nsca

Se utiliza para notificar a Nagios con los resultados de la verificación pasiva sobre el protocolo NSCA.

19

opentsdb

Almacena los eventos de salida de Logstash en OpenTSDB.

20

pipe

Transmite los eventos de salida a la entrada estándar de otro programa.

21

rackspace

Se utiliza para enviar los eventos de registro de salida al servicio de cola de Rackspace Cloud.

22

redis

Utiliza el comando rpush para enviar los datos de registro de salida a la cola de Redis.

23

riak

Se utiliza para almacenar los eventos de salida en el par clave / valor distribuido de Riak.

24

s3

Almacena los datos de registro de salida en Amazon Simple Storage Service.

25

sns

Se utiliza para enviar los eventos de salida al servicio de notificación simple de Amazon.

26

solr_http

Indexa y almacena los datos de registro de salida en Solr.

27

sps

Se utiliza para enviar los eventos a Simple Queue Service de AWS.

28

statsd

Se utiliza para enviar los datos de métricas al demonio de red statsd.

29

stdout

Se utiliza para mostrar los eventos de salida en la salida estándar de CLI como símbolo del sistema.

30

syslog

Se utiliza para enviar los eventos de salida al servidor syslog.

31

tcp

Se utiliza para enviar los eventos de salida al socket TCP.

32

udp

Se utiliza para enviar los eventos de salida a través de UDP.

33

websocket

Se utiliza para enviar los eventos de salida a través del protocolo WebSocket.

34

xmpp

Se utiliza para enviar los eventos de salida a través del protocolo XMPP.

Todos los complementos tienen su configuración específica, lo que ayuda a especificar los campos importantes como Puerto, Ruta, etc., en un complemento. Discutiremos la configuración de algunos de los complementos de salida.

Elasticsearch

El complemento de salida de Elasticsearch permite a Logstash almacenar la salida en los clústeres específicos del motor de Elasticsearch. Esta es una de las opciones más famosas de los usuarios porque viene en el paquete de ELK Stack y, por lo tanto, proporciona soluciones integrales para Devops. La siguiente tabla describe la configuración de este complemento de salida.

Nombre de configuración Valor por defecto Descripción
acción índice Se utiliza para definir la acción realizada en el motor Elasticsearch. Otros valores para esta configuración son eliminar, crear, actualizar, etc.
cacert Contiene la ruta del archivo con .cer o .pem para la validación del certificado del servidor.
códec "llanura" Se utiliza para codificar los datos de registro de salida antes de enviarlos a la fuente de destino.
doc_as_upset falso Esta configuración se utiliza en caso de una acción de actualización. Crea un documento en el motor Elasticsearch, si la identificación del documento no se especifica en el complemento de salida.
Tipo de Documento Se utiliza para almacenar el mismo tipo de eventos en el mismo tipo de documento. Si no se especifica, el tipo de evento se usa para el mismo.
flush_size 500 Se utiliza para mejorar el rendimiento de la carga masiva en Elasticsearch.
Hospedadores [“127.0.0.1”] Es una matriz de direcciones de destino para datos de registro de salida.
idle_flush_time 1 Define el límite de tiempo (segundo) entre las dos descargas, Logstash fuerza la descarga después del límite de tiempo especificado en esta configuración
índice "logstash -% {+ AAAA.MM.dd}" Se utiliza para especificar el índice del motor Elasticsearch.
manage_temlpate cierto Se utiliza para aplicar la plantilla predeterminada en Elasticsearch.
padre nulo Se utiliza para especificar la identificación del documento principal en Elasticsearch.
contraseña Se utiliza para autenticar la solicitud en un clúster seguro en Elasticsearch.
camino Se utiliza para especificar la ruta HTTP de Elasticsearch.
tubería nulo Se utiliza para establecer la canalización de ingesta, el usuario desea ejecutar para un evento
apoderado Se utiliza para especificar el proxy HTTP.
retry_initial_interval 2 Se utiliza para establecer el intervalo de tiempo inicial (segundos) entre reintentos masivos. Se duplica después de cada reintento hasta que llega a retry_max_interval
retry_max_interval 64 Se utiliza para establecer el intervalo de tiempo máximo para retry_initial_interval
retry_on_conflict 1 Es el número de reintentos de Elasticsearch para actualizar un documento.
ssl Para habilitar o deshabilitar SSL / TLS protegido para Elasticsearch
modelo Contiene la ruta de la plantilla personalizada en Elasticsearch
Nombre de la plantilla "logstash" Esto se usa para nombrar la plantilla en Elasticsearch
se acabó el tiempo 60 Es el tiempo de espera para las solicitudes de red a Elasticsearch.
reafirmar "" Actualiza el documento o si document_id no existe, crea un nuevo documento en Elasticsearch
usuario Contiene el usuario para autenticar la solicitud de Logstash en un clúster Elasticsearch seguro

Email

El complemento de salida de correo electrónico se utiliza para notificar al usuario cuando Logstash genera una salida. La siguiente tabla describe la configuración de este complemento.

Nombre de configuración Valor por defecto Descripción
habla a "Localhost" Es la dirección del servidor de correo
archivos adjuntos [] Contiene los nombres y ubicaciones de los archivos adjuntos.
cuerpo "" Contiene el cuerpo del correo electrónico y debe ser texto sin formato.
cc Contiene las direcciones de correo electrónico separadas por comas para el cc del correo electrónico.
códec "llanura" Se utiliza para codificar los datos de registro de salida antes de enviarlos a la fuente de destino.
tipo de contenido "texto / html; juego de caracteres = UTF-8" Se utiliza para el tipo de contenido del correo electrónico.
depurar falso Se utiliza para ejecutar la retransmisión de correo en modo de depuración.
dominio "localhost" Se utiliza para configurar el dominio para enviar los mensajes de correo electrónico.
desde "[email protected]" Se utiliza para especificar la dirección de correo electrónico del remitente.
htmlbody "" Se utiliza para especificar el cuerpo del correo electrónico en formato html.
contraseña Se utiliza para autenticarse con el servidor de correo.
Puerto 25 Se utiliza para definir el puerto para comunicarse con el servidor de correo.
responder a Se utiliza para especificar la identificación de correo electrónico para el campo de respuesta del correo electrónico.
tema "" Contiene la línea de asunto del correo electrónico.
use_tls falso Activar o desactivar TSL para la comunicación con el servidor de correo
nombre de usuario Contiene el nombre de usuario para la autenticación con el servidor.
vía "Smtp" Define los métodos de envío de correo electrónico por Logstash

Http

Esta configuración se utiliza para enviar los eventos de salida a través de http al destino. Este complemento tiene las siguientes configuraciones:

Nombre de configuración Valor por defecto Descripción
automatic_retries 1 Se utiliza para establecer el número de reintentos de solicitud http por logstash
cacert Contiene la ruta del archivo para la validación del certificado del servidor.
códec "llanura" Se utiliza para codificar los datos de registro de salida antes de enviarlos a la fuente de destino.
tipo de contenido Especifico el tipo de contenido de la solicitud http al servidor de destino
galletas cierto Se utiliza para habilitar o deshabilitar las cookies.
formato "json" Se utiliza para establecer el formato del cuerpo de la solicitud http
encabezados Contiene la información del encabezado http
http_method "" Se usa para especificar el método http usado en la solicitud por logstash y los valores pueden ser "poner", "publicar", "parche", "eliminar", "obtener", "encabezar"
pide tiempo fuera 60 Se utiliza para autenticarse con el servidor de correo.
url Es una configuración necesaria para que este complemento especifique el punto final http o https

stdout

El complemento de salida stdout se utiliza para escribir los eventos de salida en la salida estándar de la interfaz de línea de comandos. Es símbolo del sistema en Windows y terminal en UNIX. Este complemento tiene la siguiente configuración:

Nombre de configuración Valor por defecto Descripción
códec "llanura" Se utiliza para codificar los datos de registro de salida antes de enviarlos a la fuente de destino.
trabajadores 1 Se utiliza para especificar el número de trabajadores para la salida.

statsd

Es un demonio de red que se utiliza para enviar datos de matrices a través de UDP a los servicios de backend de destino. Es símbolo del sistema en Windows y terminal en UNIX. Este complemento tiene las siguientes configuraciones:

Nombre de configuración Valor por defecto Descripción
códec "llanura" Se utiliza para codificar los datos de registro de salida antes de enviarlos a la fuente de destino.
contar {} Se utiliza para definir el recuento que se utilizará en métricas.
decremento [] Se utiliza para especificar los nombres de las métricas decrecientes.
anfitrión "Localhost" Contiene la dirección del servidor statsd
incremento [] Se utiliza para especificar los nombres de las métricas de incremento.
Puerto 8125 Contiene el puerto del servidor statsd
sample_rate 1 Se utiliza especificar la frecuencia de muestreo de la métrica
remitente "%{anfitrión}" Especifica el nombre del remitente
conjunto {} Se usa para especificar una métrica establecida
sincronización {} Se utiliza para especificar una métrica de tiempo.
trabajadores 1 Se utiliza para especificar el número de trabajadores para la salida.

Complementos de filtro

Logstash admite varios complementos de filtro para analizar y transformar los registros de entrada a un formato más estructurado y fácil de consultar.

La sintaxis para usar el complemento de filtro es la siguiente:

filter {
   Plugin name {
      Setting 1……
      Setting 2……..
   }
}

Puede descargar el complemento de filtro usando el siguiente comando:

>logstash-plugin install logstash-filter-<plugin name>

La utilidad Logstash-plugin está presente en la carpeta bin del directorio de instalación de Logstash. La siguiente tabla describe los complementos de salida que ofrece Logstash.

No Señor. Nombre y descripción del complemento
1

aggregate

Este complemento recopila o agrega los datos de varios eventos del mismo tipo y los procesa en el evento final

2

alter

Permite al usuario alterar el campo de eventos de registro, que el filtro de mutación no maneja

3

anonymize

Se utiliza para reemplazar los valores de los campos con un hash consistente.

4

cipher

Se utiliza para cifrar los eventos de salida antes de almacenarlos en la fuente de destino.

5

clone

Se utiliza para crear duplicados de los eventos de salida en Logstash

6

collate

Fusiona los eventos de diferentes registros por su tiempo o recuento

7

csv

Este complemento analiza los datos de los registros de entrada de acuerdo con el separador

8

date

Analiza las fechas de los campos del evento y lo establece como una marca de tiempo para el evento.

9

dissect

Este complemento ayuda al usuario a extraer campos de datos no estructurados y facilita que grok filter los analice correctamente

10

drop

Se utiliza para eliminar todos los eventos del mismo tipo o cualquier otra similitud.

11

elapsed

Se utiliza para calcular el tiempo entre los eventos de inicio y finalización.

12

Elasticsearch

Se utiliza para copiar los campos de eventos de registro anteriores presentes en Elasticsearch al actual en Logstash

13

extractnumbers

Se utiliza para extraer el número de cadenas en el registro de eventos.

14

geoip

Agrega un campo en el evento, que contiene la latitud y longitud de la ubicación de la IP presente en el evento de registro.

15

grok

Es el complemento de filtro de uso común para analizar el evento y obtener los campos

dieciséis

i18n

Elimina los caracteres especiales de un evento archivado en el registro

17

json

Se utiliza para crear un objeto Json estructurado en un evento o en un campo específico de un evento.

18

kv

Este complemento es útil para emparejar pares clave-valor en los datos de registro

19

metrics

Se utiliza para agregar métricas como contar la duración del tiempo en cada evento.

20

multiline

También es uno de los complementos de filtro de uso común, que ayuda al usuario en caso de convertir datos de registro de varias líneas en un solo evento.

21

mutate

Este complemento se utiliza para cambiar el nombre, eliminar, reemplazar y modificar campos en sus eventos

22

range

Se utiliza para comprobar los valores numéricos de los campos en eventos con un rango esperado y la longitud de la cadena dentro de un rango.

23

ruby

Se utiliza para ejecutar código Ruby arbitrario.

24

sleep

Esto hace que Logstash duerma durante un período de tiempo específico

25

split

Se utiliza para dividir un campo de un evento y colocar todos los valores divididos en los clones de ese evento.

26

xml

Se utiliza para crear eventos mediante el emparejamiento de los datos XML presentes en los registros.

Complementos de códec

Los complementos de códec pueden ser parte de complementos de entrada o salida. Estos complementos se utilizan para cambiar o formatear la presentación de los datos de registro. Logstash ofrece múltiples complementos de códec y son los siguientes:

No Señor. Nombre y descripción del complemento
1

avro

Este complemento codifica, serializa eventos de Logstash en datos de avro o decodifica registros de avro en eventos de Logstash

2

cloudfront

Este complemento lee los datos codificados de AWS cloudfront

3

cloudtrail

Este complemento se utiliza para leer los datos de AWS cloudtrail

4

collectd

Esto lee datos del protocolo binario llamado recopilados a través de UDP

5

compress_spooler

Se utiliza para comprimir los eventos de registro en Logstash en lotes en cola.

6

dots

Se utiliza el seguimiento del rendimiento al establecer un punto para cada evento en stdout

7

es_bulk

Se utiliza para convertir los datos masivos de Elasticsearch en eventos de Logstash, incluidos los metadatos de Elasticsearch.

8

graphite

Este códec lee datos de grafito en eventos y cambia el evento en registros con formato de grafito

9

gzip_lines

Este complemento se usa para manejar datos codificados en gzip

10

json

Esto se usa para convertir un solo elemento en la matriz Json en un solo evento Logstash

11

json_lines

Se usa para manejar datos Json con delimitador de nueva línea

12

line

El complemento leerá y escribirá el evento en un solo evento en vivo, lo que significa que después del delimitador de nueva línea habrá un nuevo evento

13

multiline

Se utiliza para convertir datos de registro de varias líneas en un solo evento.

14

netflow

Este complemento se utiliza para convertir datos de nertflow v5 / v9 en eventos de logstash

15

nmap

Analiza los datos de resultados de nmap en un formato XML

dieciséis

plain

Esto lee texto sin delimitadores

17

rubydebug

Este complemento escribirá los eventos de Logstash de salida utilizando la impresionante biblioteca de impresión Ruby

Cree su propio complemento

También puede crear sus propios complementos en Logstash, que se adapte a sus requisitos. La utilidad Logstash-plugin se utiliza para crear complementos personalizados. Aquí, crearemos un complemento de filtro, que agregará un mensaje personalizado en los eventos.

Generar la estructura base

Un usuario puede generar los archivos necesarios utilizando la opción de generar de la utilidad logstash-plugin o también está disponible en GitHub.

>logstash-plugin generate --type filter --name myfilter --path c:/tpwork/logstash/lib

Aquí, typeLa opción se usa para especificar que el complemento sea Entrada, Salida o Filtro. En este ejemplo, estamos creando un complemento de filtro llamadomyfilter. La opción de ruta se usa para especificar la ruta, donde desea que se cree su directorio de complementos. Después de ejecutar el comando mencionado anteriormente, verá que se crea una estructura de directorio.

Desarrollar el complemento

Puede encontrar el archivo de código del complemento en el \lib\logstash\filterscarpeta en el directorio del complemento. La extensión del archivo será.rb.

En nuestro caso, el archivo de código se ubicó dentro de la siguiente ruta:

C:\tpwork\logstash\lib\logstash-filter-myfilter\lib\logstash\filters\myfilter.rb

Cambiamos el mensaje a - predeterminado ⇒ "Hola, estás aprendiendo esto en tutorialspoint.com" y guardamos el archivo.

Instalar el complemento

Para instalar este complemento, es necesario modificar el Gemfile de Logstash. Puede encontrar este archivo en el directorio de instalación de Logstash. En nuestro caso, será enC:\tpwork\logstash. Edite este archivo usando cualquier editor de texto y agregue el siguiente texto en él.

gem "logstash-filter-myfilter",:path => "C:/tpwork/logstash/lib/logstash-filter-myfilter"

En el comando anterior, especificamos el nombre del complemento junto con dónde podemos encontrarlo para instalarlo. Luego, ejecute la utilidad Logstash-plugin para instalar este complemento.

>logstash-plugin install --no-verify

Pruebas

Aquí, estamos agregando myfilter en uno de los ejemplos anteriores -

logstash.conf

Este archivo de configuración de Logstash contiene myfilter en la sección de filtro después del complemento de filtro grok.

input {
   file {
      path => "C:/tpwork/logstash/bin/log/input1.log"
   } 
}
filter {
   grok {
      match => [
         "message", "%{LOGLEVEL:loglevel} - %{NOTSPACE:taskid} -
            %{NOTSPACE:logger} - %{WORD:label}( - %{INT:duration:int})?" ]
   }
   myfilter{}
}
output {
   file {
      path => "C:/tpwork/logstash/bin/log/output1.log"
      codec => rubydebug
   }
}

Run logstash

Podemos ejecutar Logstash usando el siguiente comando.

>logstash –f logsatsh.conf

input.log

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

INFO - 48566 - TRANSACTION_START - start

output.log

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

{
   "path" => "C:/tpwork/logstash/bin/log/input.log",
   "@timestamp" => 2017-01-07T06:25:25.484Z,
   "loglevel" => "INFO",
   "logger" => "TRANSACTION_END",
   "@version" => "1",
   "host" => "Dell-PC",
   "label" => "end",
   "message" => "Hi, You are learning this on tutorialspoint.com",
   "taskid" => "48566",
   "tags" => []
}

Publicarlo en Logstash

Un desarrollador también puede publicar su complemento personalizado en Logstash cargándolo en el github y siguiendo los pasos estandarizados definidos por Elasticsearch Company.

Consulte la siguiente URL para obtener más información sobre la publicación:

https://www.elastic.co/guide/en/logstash/current/contributing-to-logstash.html