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

Vector : les transforms en détail (remap et VRL, route, filter, réduction et métriques)

Transformer les événements dans Vector : remap et le langage VRL (analyse, enrichissement, gestio...

Vector : les sinks en détail (destinations, lots, tampons et réessais)

Envoyer les événements de Vector : sinks Loki, Elasticsearch, S3, Kafka, OpenTelemetry, Prometheu...

Grafana Alloy : Collecte et Transformation de Télémétrie

Apprenez à utiliser Grafana Alloy pour collecter, transformer et acheminer logs, métriques et tra...

CI/CD de bout en bout (1/5) : principes et anatomie d'un pipeline

Comprendre la CI/CD de bout en bout : intégration continue, livraison continue et déploiement con...

Collecteurs de logs légers : Fluent Bit, Vector et les autres

Pourquoi un collecteur de logs, ce qui distingue les agents légers (Fluent Bit, Vector) des colle...

OpenTelemetry Collector : les Processors (transformer, filtrer et protéger la télémétrie)

Maîtriser les processors du Collector OpenTelemetry : batch, memory_limiter, attributes, resource...

Bindplane : gérer ses pipelines de télémétrie OpenTelemetry

Comprendre Bindplane : plan de contrôle des collecteurs OpenTelemetry via OpAMP, BDOT Collector, ...

OpenTelemetry Collector, Grafana Alloy et Bindplane : comparer trois approches des pipelines de télémétrie

Comparatif détaillé de trois façons de gérer des pipelines de télémétrie : l'OpenTelemetry Collec...

Bonnes pratiques Bindplane

Check-list pour exploiter Bindplane : organisation par labels et fleets, réduction mesurée, masqu...

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!