Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
logstash-filter-aggregate
Par Fabien Baligand
Fabien Baligand
 Passionné de technos java et web
 Passionné de logs
 Développeur OpenSource sur GitHub :
 github.com/...
logstash-filter-aggregate
Objectif :
Agréger les informations
dispersées dans plusieurs lignes de log,
dans un seul docume...
Exemple
INFO - 12345 - TASK_START - start
INFO - 12345 - SQL - sqlQuery1 - 12
INFO - 12345 - SQL - sqlQuery2 - 34
INFO - 1...
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']...
Configuration logstash (2/3)
if [logger] == "SQL" {
aggregate {
task_id => "%{taskid}"
code => "map['sql_duration'] +=
eve...
Configuration logstash (3/3)
if [logger] == "TASK_END" {
aggregate {
task_id => "%{taskid}"
code => "event['sql_duration']...
DEMO
logstash-filter-aggregate
Usages :
 Répartition temps appels externes /
traitement applicatif
 Agrégation des erreurs
 ...
Création de plugin logstash
Compliqué ?
Création de plugin logstash
Comment on fait ? (1/3)
logstash-filter-yourplugin
logstash-filter-yourplugin.gemspec
lib
 ...
Création de plugin logstash
Comment on fait ? (2/3)
class LogStash::Filters::YourFilter
< LogStash::Filters::Base
public d...
Création de plugin logstash
Comment on fait ? (3/3)
Gem::Specification.new do |s|
s.name = 'logstash-filter-yourfilter'
s....
Publication officielle de plugin logstash
Pourquoi ?
 Intégration dans le compte officiel github :
logstash-plugins
 Int...
Publication officielle de plugin logstash
Comment ?
1. Issue sur github.com/elastic/logstash
Demande de création de repos...
Questions
Prochain SlideShare
Chargement dans…5
×

Plugin logstash-filter-aggregate (meetup Elastic FR)

1 267 vues

Publié le

Présentation du plugin logstash-filter-aggregate, permettant d'agréger les informations
dispersées dans plusieurs lignes de log,
dans un seul document logstash.
Présenté lors du Meetup Elastic FR du 21 septembre.

Publié dans : Données & analyses
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Plugin logstash-filter-aggregate (meetup Elastic FR)

  1. 1. logstash-filter-aggregate Par Fabien Baligand
  2. 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. 3. logstash-filter-aggregate Objectif : Agréger les informations dispersées dans plusieurs lignes de log, dans un seul document logstash
  4. 4. Exemple INFO - 12345 - TASK_START - start INFO - 12345 - SQL - sqlQuery1 - 12 INFO - 12345 - SQL - sqlQuery2 - 34 INFO - 12345 - TASK_END - end
  5. 5. Résultat attendu { "message" => "INFO - 12345 - TASK_END - end", "sql_duration" => 46 }
  6. 6. Configuration logstash (1/3) if [logger] == "TASK_START" { aggregate { task_id => "%{taskid}" code => "map['sql_duration'] = 0" } } INFO - 12345 - TASK_START - start
  7. 7. Configuration logstash (2/3) if [logger] == "SQL" { aggregate { task_id => "%{taskid}" code => "map['sql_duration'] += event['duration']" } } INFO - 12345 - SQL - sqlQuery1 - 12
  8. 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
  9. 9. DEMO
  10. 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. 11. Création de plugin logstash Compliqué ?
  12. 12. Création de plugin logstash Comment on fait ? (1/3) logstash-filter-yourplugin logstash-filter-yourplugin.gemspec lib  logstash  filters  yourplugin.rb
  13. 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. 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. 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. 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
  17. 17. Questions

×