Introducció

En aquest tema, explorarem com integrar Elasticsearch amb Logstash, una eina poderosa per a la ingesta, transformació i enviament de dades a Elasticsearch. Logstash és part de la suite Elastic Stack (anteriorment coneguda com ELK Stack), que inclou Elasticsearch, Logstash i Kibana. Aquesta integració permet processar grans volums de dades de diverses fonts i indexar-les a Elasticsearch per a una cerca i anàlisi eficients.

Objectius

  • Entendre què és Logstash i com funciona.
  • Aprendre a instal·lar i configurar Logstash.
  • Configurar un pipeline bàsic de Logstash per enviar dades a Elasticsearch.
  • Explorar exemples pràctics d'ús de Logstash amb Elasticsearch.

Què és Logstash?

Logstash és una eina de processament de dades en temps real que permet la ingesta, transformació i enviament de dades des de diverses fonts a diverses destinacions, incloent Elasticsearch. Logstash utilitza una arquitectura basada en pipelines que consta de tres components principals:

  1. Inputs: Defineixen les fonts de dades.
  2. Filters: Transformen les dades.
  3. Outputs: Defineixen les destinacions de les dades processades.

Instal·lant Logstash

Requisits Prèvis

  • Java 8 o superior.
  • Elasticsearch instal·lat i en funcionament.

Passos d'Instal·lació

  1. Descarregar Logstash:

    wget https://artifacts.elastic.co/downloads/logstash/logstash-7.10.0.tar.gz
    tar -xzf logstash-7.10.0.tar.gz
    cd logstash-7.10.0
    
  2. Verificar la Instal·lació:

    bin/logstash --version
    

Configurant Logstash

Creant un Pipeline Bàsic

Un pipeline de Logstash es defineix en un fitxer de configuració. A continuació, es mostra un exemple bàsic de pipeline que llegeix dades d'un fitxer, les transforma i les envia a Elasticsearch.

  1. Crear el fitxer de configuració:

    nano simple-pipeline.conf
    
  2. Definir el pipeline:

    input {
      file {
        path => "/path/to/your/logfile.log"
        start_position => "beginning"
      }
    }
    
    filter {
      grok {
        match => { "message" => "%{COMBINEDAPACHELOG}" }
      }
      date {
        match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
      }
    }
    
    output {
      elasticsearch {
        hosts => ["localhost:9200"]
        index => "weblogs"
      }
      stdout { codec => rubydebug }
    }
    

Explicació del Pipeline

  • Input: Llegeix dades d'un fitxer de registre.
  • Filter: Utilitza el filtre grok per analitzar les línies del fitxer de registre i el filtre date per convertir la data a un format comprensible per Elasticsearch.
  • Output: Envia les dades processades a Elasticsearch i també les imprimeix a la consola per a la seva verificació.

Executant el Pipeline

Per executar el pipeline, utilitza la següent comanda:

bin/logstash -f simple-pipeline.conf

Exemples Pràctics

Exemple 1: Ingesta de Dades de Registres d'Apache

  1. Fitxer de configuració:

    input {
      file {
        path => "/var/log/apache2/access.log"
        start_position => "beginning"
      }
    }
    
    filter {
      grok {
        match => { "message" => "%{COMBINEDAPACHELOG}" }
      }
      date {
        match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
      }
    }
    
    output {
      elasticsearch {
        hosts => ["localhost:9200"]
        index => "apache-logs"
      }
      stdout { codec => rubydebug }
    }
    
  2. Executar el pipeline:

    bin/logstash -f apache-pipeline.conf
    

Exemple 2: Ingesta de Dades de JSON

  1. Fitxer de configuració:

    input {
      file {
        path => "/path/to/your/jsonfile.json"
        start_position => "beginning"
        codec => "json"
      }
    }
    
    filter {
      mutate {
        remove_field => ["@version", "host"]
      }
    }
    
    output {
      elasticsearch {
        hosts => ["localhost:9200"]
        index => "json-data"
      }
      stdout { codec => rubydebug }
    }
    
  2. Executar el pipeline:

    bin/logstash -f json-pipeline.conf
    

Errors Comuns i Consells

  • Error de Permisos: Assegura't que Logstash té permisos per llegir els fitxers de registre.
  • Configuració Incorrecta: Verifica que la configuració del pipeline sigui correcta i que els camins dels fitxers siguin vàlids.
  • Problemes de Connexió: Assegura't que Elasticsearch està en funcionament i que Logstash pot connectar-s'hi.

Resum

En aquest tema, hem après què és Logstash i com es pot utilitzar per processar i enviar dades a Elasticsearch. Hem vist com instal·lar i configurar Logstash, crear pipelines bàsics i executar-los. També hem explorat exemples pràctics d'ús de Logstash amb Elasticsearch. Amb aquests coneixements, estàs preparat per començar a integrar Logstash en els teus projectes de dades amb Elasticsearch.


A continuació, passarem a explorar com integrar Elasticsearch amb Kibana en el següent tema.

© Copyright 2024. Tots els drets reservats