of 17/17
logstash-filter- aggregate Par Fabien Baligand

Plugin logstash-filter-aggregate (meetup Elastic FR)

  • View
    975

  • Download
    0

Embed Size (px)

Text of Plugin logstash-filter-aggregate (meetup Elastic FR)

  • logstash-filter-aggregate Par Fabien Baligand

  • Fabien Baligand

    Passionn de technos java et webPassionn de logs

    Dveloppeur OpenSource sur GitHub :github.com/fbaligand/lognavigatorgithub.com/logstash-plugins/logstash-filter-aggregate

    Tech Lead chez Informatique CDC

  • logstash-filter-aggregate

    Objectif :

    Agrger les informations disperses dans plusieurs lignes de log, dans un seul document logstash

  • Exemple

    INFO - 12345 - TASK_START - startINFO - 12345 - SQL - sqlQuery1 - 12INFO - 12345 - SQL - sqlQuery2 - 34INFO - 12345 - TASK_END - end

  • Rsultat attendu{ "message" => "INFO - 12345 - TASK_END - end", "sql_duration" => 46}

  • Configuration logstash (1/3)if [logger] == "TASK_START" { aggregate { task_id => "%{taskid}" code => "map['sql_duration'] = 0" }}INFO - 12345 - TASK_START - start

  • Configuration logstash (2/3)if [logger] == "SQL" { aggregate { task_id => "%{taskid}" code => "map['sql_duration'] += event['duration']" }}INFO - 12345 - SQL - sqlQuery1 - 12

  • Configuration logstash (3/3)if [logger] == "TASK_END" { aggregate { task_id => "%{taskid}" code => "event['sql_duration'] = map['sql_duration']" end_of_task => true }}INFO - 12345 - TASK_END - end

  • DEMO

  • logstash-filter-aggregate

    Usages :

    Rpartition temps appels externes / traitement applicatif

    Agrgation des erreurs

    Rcupration dinformations de corrlation disperses

  • Cration de plugin logstashCompliqu ?

  • Cration de plugin logstash Comment on fait ? (1/3)

    logstash-filter-yourpluginlogstash-filter-yourplugin.gemspeclib logstash filters yourplugin.rb

  • Cration de plugin logstash Comment on fait ? (2/3)class LogStash::Filters::YourFilter < LogStash::Filters::Base

    public def filter(event) ... end

    endyourplugin.rb :

  • Cration de plugin logstash Comment on fait ? (3/3)Gem::Specification.new do |s| s.name = 'logstash-filter-yourfilter' s.version = '0.0.1' s.summary = "bla bla plugin" ...endlogstash-filter-yourplugin.gemspec :

  • Publication officielle de plugin logstash

    Pourquoi ?

    Intgration dans le compte officiel github : logstash-plugins

    Intgration dans la doc officielle de logstash

    Gagner en visibilit

  • Publication officielle de plugin logstash

    Comment ?

    Issue sur github.com/elastic/logstashDemande de cration de repository sur le compte logstash-pluginsFork du repository Dev du plugin + Tests unitairesPull Request

  • Questions