SlideShare une entreprise Scribd logo
logstash-filter-aggregate
Par Fabien Baligand
Fabien Baligand
 Passionné de technos java et web
 Passionné de logs
 Développeur OpenSource sur GitHub :
 github.com/fbaligand/lognavigator
 github.com/logstash-plugins/logstash-filter-aggregate
 Tech Lead chez Informatique CDC
+FabienBaligand @fbaligand
logstash-filter-aggregate
Objectif :
Agréger les informations
dispersées dans plusieurs lignes de log,
dans un seul document logstash
Exemple
INFO - 12345 - TASK_START - start
INFO - 12345 - SQL - sqlQuery1 - 12
INFO - 12345 - SQL - sqlQuery2 - 34
INFO - 12345 - TASK_END - end
Résultat 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 :
 Répartition temps appels externes /
traitement applicatif
 Agrégation des erreurs
 Récupération d’informations de corrélation
dispersées
Création de plugin logstash
Compliqué ?
Création de plugin logstash
Comment on fait ? (1/3)
logstash-filter-yourplugin
logstash-filter-yourplugin.gemspec
lib
 logstash
 filters
 yourplugin.rb
Création de plugin logstash
Comment on fait ? (2/3)
class LogStash::Filters::YourFilter
< LogStash::Filters::Base
public def filter(event)
...
end
end
yourplugin.rb :
Création 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"
...
end
logstash-filter-yourplugin.gemspec :
Publication officielle de plugin logstash
Pourquoi ?
 Intégration dans le compte officiel github :
logstash-plugins
 Intégration dans la doc officielle de logstash
 Gagner en visibilité
Publication officielle de plugin logstash
Comment ?
1. Issue sur github.com/elastic/logstash
Demande de création de repository sur le
compte logstash-plugins
2. Fork du repository
3. Dev du plugin + Tests unitaires
4. Pull Request
Questions

Contenu connexe

PPT
Section EuropéEnne Original
PDF
Perfug Guide de survie du développeur dans une application Java qui rame
PDF
Formation GIT gratuite par ippon 2014
PDF
Logstash Editor: The vscode extension to boost your productivity!
PDF
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?
PDF
Classification de courriers postaux avec elasticsearch
PPT
Google+ To RSS As A Service
PPT
Environnements, Sources de propriétés et Profils avec Spring 3.1
Section EuropéEnne Original
Perfug Guide de survie du développeur dans une application Java qui rame
Formation GIT gratuite par ippon 2014
Logstash Editor: The vscode extension to boost your productivity!
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?
Classification de courriers postaux avec elasticsearch
Google+ To RSS As A Service
Environnements, Sources de propriétés et Profils avec Spring 3.1

Plus de Fabien Baligand (6)

PDF
Présentation de gplus to-twitter
PDF
Présentation de jQuery UI
PDF
Présentation de alfresco - l'outil de GED open-source java
PDF
Comment répondre aux besoins de log en production avec log4j
PDF
RestFul Evented Javascript avec sammyjs et jquery
PPT
Atmosphere Framework
Présentation de gplus to-twitter
Présentation de jQuery UI
Présentation de alfresco - l'outil de GED open-source java
Comment répondre aux besoins de log en production avec log4j
RestFul Evented Javascript avec sammyjs et jquery
Atmosphere Framework
Publicité

Plugin logstash-filter-aggregate (meetup Elastic FR)

  • 2. Fabien Baligand  Passionné de technos java et web  Passionné de logs  Développeur OpenSource sur GitHub :  github.com/fbaligand/lognavigator  github.com/logstash-plugins/logstash-filter-aggregate  Tech Lead chez Informatique CDC +FabienBaligand @fbaligand
  • 3. logstash-filter-aggregate Objectif : Agréger les informations dispersées dans plusieurs lignes de log, dans un seul document logstash
  • 4. Exemple INFO - 12345 - TASK_START - start INFO - 12345 - SQL - sqlQuery1 - 12 INFO - 12345 - SQL - sqlQuery2 - 34 INFO - 12345 - TASK_END - end
  • 5. Résultat attendu { "message" => "INFO - 12345 - TASK_END - end", "sql_duration" => 46 }
  • 6. Configuration logstash (1/3) if [logger] == "TASK_START" { aggregate { task_id => "%{taskid}" code => "map['sql_duration'] = 0" } } INFO - 12345 - TASK_START - start
  • 7. Configuration logstash (2/3) if [logger] == "SQL" { aggregate { task_id => "%{taskid}" code => "map['sql_duration'] += event['duration']" } } INFO - 12345 - SQL - sqlQuery1 - 12
  • 8. 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
  • 10. logstash-filter-aggregate Usages :  Répartition temps appels externes / traitement applicatif  Agrégation des erreurs  Récupération d’informations de corrélation dispersées
  • 11. Création de plugin logstash Compliqué ?
  • 12. Création de plugin logstash Comment on fait ? (1/3) logstash-filter-yourplugin logstash-filter-yourplugin.gemspec lib  logstash  filters  yourplugin.rb
  • 13. Création de plugin logstash Comment on fait ? (2/3) class LogStash::Filters::YourFilter < LogStash::Filters::Base public def filter(event) ... end end yourplugin.rb :
  • 14. Création 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" ... end logstash-filter-yourplugin.gemspec :
  • 15. Publication officielle de plugin logstash Pourquoi ?  Intégration dans le compte officiel github : logstash-plugins  Intégration dans la doc officielle de logstash  Gagner en visibilité
  • 16. Publication officielle de plugin logstash Comment ? 1. Issue sur github.com/elastic/logstash Demande de création de repository sur le compte logstash-plugins 2. Fork du repository 3. Dev du plugin + Tests unitaires 4. Pull Request