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:
- Inputs: Defineixen les fonts de dades.
- Filters: Transformen les dades.
- 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ó
-
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
-
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.
-
Crear el fitxer de configuració:
nano simple-pipeline.conf
-
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 filtredate
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:
Exemples Pràctics
Exemple 1: Ingesta de Dades de Registres d'Apache
-
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 } }
-
Executar el pipeline:
bin/logstash -f apache-pipeline.conf
Exemple 2: Ingesta de Dades de JSON
-
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 } }
-
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.
Curs d'Elasticsearch
Mòdul 1: Introducció a Elasticsearch
- Què és Elasticsearch?
- Instal·lant Elasticsearch
- Conceptes Bàsics: Nodes, Clústers i Índexs
- Arquitectura d'Elasticsearch
Mòdul 2: Començant amb Elasticsearch
Mòdul 3: Tècniques Avançades de Cerca
Mòdul 4: Modelatge de Dades i Gestió d'Índexs
Mòdul 5: Rendiment i Escalabilitat
- Optimitzant el Rendiment de la Cerca
- Escalant Elasticsearch
- Monitorització i Manteniment
- Còpia de Seguretat i Restauració
Mòdul 6: Seguretat i Control d'Accés
- Assegurant Elasticsearch
- Autenticació i Autorització d'Usuaris
- Control d'Accés Basat en Rols
- Auditoria i Compliment
Mòdul 7: Integracions i Ecosistema
- Elasticsearch amb Logstash
- Elasticsearch amb Kibana
- Elasticsearch amb Beats
- Elasticsearch amb Altres Eines