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 | 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 |
|
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 | 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 |
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