RousselTMLEARNING

TP · Logstash: del descubrimiento a la experiencia

Mi primer pipeline

Lo que vas a aprender en este TP
  • Instalar Logstash
  • Construir un pipeline
  • usar el input file
  • Combinar diferentes filtros
  • usar el output file
  • usar condiciones
  • usar variables

Introducción #

Lo que vas a aprender en esta sección
  • Instalar Logstash
  • Construir un pipeline
  • usar el input file
  • Combinar diferentes filtros
  • usar el output file
  • usar condiciones
  • usar variables

Este taller tiene como objetivo enseñarle a construir un pipeline sencillo que permita leer un archivo de log, procesarlo y escribir su salida en un nuevo archivo

Requisitos previos #

Debe disponer de una máquina Linux con Logstash instalado. Si no dispone de una máquina o entorno de prueba, le invitamos a realizar primero el taller de instalación de Logstash. Si está realizando el taller sobre el entorno de pruebas, puede pedirle a Vagrant que instale Logstash:
export DEPLOY_LOGSTASH=true; vagrant up

Configuración de las entradas #

Debe crear un archivo en /etc/logstash/conf.d llamado "0-input-file-nginx-access.conf".
ATENCIÓN: en este taller le hemos indicado el nombre del archivo de configuración (0-input-file-nginx-access.conf), pero en la empresa deberá definir su propia convención de nombres adaptada a su contexto.
  1. Lectura de un archivo

    En este archivo, debe añadir la configuración de logstash para leer el contenido del archivo "/var/log/rousseltm/nginx-access.log". Si usa nuestro entorno de pruebas Vagrant, los archivos de log ya estarán presentes en la VM en la carpeta /var/log/rousseltm. En caso contrario, deberá copiarlos manualmente: .
    Debe añadir un type para este archivo con el valor 'nginx_access'.

Configuración de los filtros #

Debe crear un segundo archivo llamado "100-filter-nginx-access.conf".

  1. Extracción de datos

    Debe identificar el filtro más adecuado para un archivo plano y establecer la configuración que permita extraer los campos del archivo de log leído previamente, sabiendo que este archivo tiene un único formato de log

  2. Cambio de tipo

    Queremos convertir el campo "http_code" a entero. De hecho, suele haber operaciones aritméticas sobre este campo al hacer visualizaciones (paneles, alertas...). Por ejemplo, mostrar todos los códigos entre 200 y 205.

  3. Ajuste de fecha

    Como habrá notado en el archivo de log proporcionado, los logs no están ordenados. Si no ajusta el campo '@timestamp', tendrá los logs ordenados por aparición en el archivo en lugar de por fecha de generación de la línea de log.

  4. Eliminación de un campo

    Queremos eliminar los campos
    • event.original
    • message: ya que hemos extraído la información que nos interesa
    . Habrá que usar métodos diferentes para eliminarlos.
    ATENCIÓN: es una buena práctica para ganar espacio de almacenamiento y rendimiento.
    En otros talleres veremos que solo habrá que eliminar 'message' cuando no haya errores de filtro.

Configuración de las salidas #

Debe crear un archivo en /etc/logstash/conf.d llamado "200-output-file-nginx-access.conf".

  1. Escritura en un archivo

    En este archivo, deberá añadir la configuración de logstash para que escriba nuestro log procesado en el archivo "/var/log/rousseltm/parsed/TYPE.json"

Nivel de dificultad : ●●○○○ (2/5)

Mi seguimiento

  • ⏱ Duración estimada : ≈ 42 min

Inicia sesión para seguir tu progreso y tomar notas. Iniciar sesión

💬 Hacer una pregunta

Glossaire de la formation

Observabilidad

La capacidad de conocer el estado interno de un sistema a partir de los datos que emite.Estos datos se clasifican en 3 pilares: logs (registros)métric...

Elastic Common Schema (ECS)

Una especificación de código abierto que permite estructurar sus datos de manera homogénea en el ecosistema Elastic.

Logstash

Motor de recopilación de datos que permite procesar, enriquecer y transformar registros y otros eventos antes de indexarlos.

Access Log (Registro de acceso)

Archivo de registro que guarda las solicitudes procesadas por un servidor web (Apache, Nginx, Lighttpd, etc.). Permite rastrear la actividad del servi...

Client IP (IP del Cliente)

La dirección IP del usuario que realiza la solicitud hacia el servidor web. Cuando un usuario pasa por un Load Balancer o un proxy (ej: Cloudflare), l...

Timestamp (Marca de tiempo)

La fecha y la hora exactas en las que el servidor recibió la solicitud.Configuración: %t en Apache, $time_local o $time_iso8601 en Nginx.

Request (Solicitud)

La línea de solicitud inicial del cliente. Generalmente incluye el método HTTP (ej: GET), la URL solicitada y la versión del protocolo HTTP.Configurac...

Status Code (Código de estado)

El código de estado HTTP final devuelto por el servidor al cliente (ej: 200 para un éxito, 404 para recurso no encontrado).Configuración: %>s en Apach...

Size (Tamaño)

El volumen de datos devuelto al cliente, medido en bytes (generalmente sin los encabezados HTTP).Configuración: %b u %O en Apache, $body_bytes_sent en...

Referrer (Referente)

La URL de la página web desde la que el cliente hizo clic o siguió un enlace para acceder al recurso actual.Configuración: %{Referer}i en Apache, $htt...

User-Agent

La información de identificación proporcionada por el cliente sobre su navegador, su sistema operativo y su dispositivo. Su estructura estándar a menu...

Response Time (Tiempo de respuesta)

El tiempo total que tarda el servidor en procesar la solicitud y devolver la respuesta al cliente.Configuración: %D (microsegundos) o %T (segundos) en...

Artículos recomendados

Bonnes pratiques Logstash : pipelines, performances, fiabilité et supervision

Bonnes pratiques Logstash : pipelines multiples, dissect plutôt que grok, conditionnels, persiste...

Fluent Bit : les inputs (entrées) du pipeline en détail

Tout sur les inputs de Fluent Bit : rôle des tags, lecture de fichiers avec tail (positions, rota...

Fluent Bit : pipeline, configuration et plugins essentiels

Les concepts de Fluent Bit (inputs, parsers, filters, tags et match, buffer, outputs), la configu...

Fluent Bit : parsers et filters, structurer et transformer les logs

Structurer et transformer les logs dans Fluent Bit : parsers (json, regex, logfmt, ltsv), parsers...

Fluent Bit : les outputs (sorties), routage et fiabilité de l'envoi

Envoyer les données de Fluent Bit : routage par Match et Match_Regex, sorties Loki, Elasticsearch...

Ingestion Elasticsearch : Bulk API, ingest pipelines, enrich et reindex

Ingérer et transformer des données dans Elasticsearch : Bulk API, ingest pipelines et processeurs...

Query DSL et agrégations avancées Elasticsearch, avec ES|QL

Écrire des requêtes Elasticsearch avancées : bool, filter et score, nested, function_score et per...

Grafana Alloy et les logs : collecter et envoyer vers Loki

Découvrez comment configurer Grafana Alloy pour lire des fichiers de logs, journald ou des flux r...

Vector : les sources en détail

Les sources de Vector : fichiers, logs Kubernetes, journald, syslog, sockets, HTTP, OpenTelemetry...

Apoyar

♥ APOYAR

Apoya RousselTM Learning

Los cursos, artículos, prácticas y certificados siguen siendo gratuitos y sin publicidad intrusiva. Una contribución libre, por el importe que elijas, financia el alojamiento, los entornos de prácticas y nuevos contenidos.

Contribuir con PayPal Importe libre · tarjeta o cuenta PayPalMás información
QR code PayPal
O escanea este código QR con tu teléfono

¡Gracias, cada contribución cuenta!