SlideShare une entreprise Scribd logo

Plugin logstash-filter-aggregate (meetup Elastic FR)

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.

1  sur  17
Télécharger pour lire hors ligne
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
Publicité

Recommandé

Section EuropéEnne Original
Section EuropéEnne OriginalSection EuropéEnne Original
Section EuropéEnne OriginalSelfViatodos
 
Perfug Guide de survie du développeur dans une application Java qui rame
Perfug Guide de survie du développeur dans une application Java qui ramePerfug Guide de survie du développeur dans une application Java qui rame
Perfug Guide de survie du développeur dans une application Java qui ramebleporini
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Ippon
 
Gestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerGestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerMohamet Lamine DIOP
 
SQL Debug avec Django @ PyConFr 2015
SQL Debug avec Django @ PyConFr 2015SQL Debug avec Django @ PyConFr 2015
SQL Debug avec Django @ PyConFr 2015Rodolphe Quiédeville
 

Contenu connexe

Similaire à Plugin logstash-filter-aggregate (meetup Elastic FR)

Spark Streaming
Spark StreamingSpark Streaming
Spark StreamingPALO IT
 
Nouveautés de PostgreSQL 9.5
Nouveautés de PostgreSQL 9.5Nouveautés de PostgreSQL 9.5
Nouveautés de PostgreSQL 9.5slardiere
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réellesGeoffroy Arnoud
 
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Normandy JUG
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linuxKhalid ALLILI
 
Microbox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien RoyMicrobox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien Royekino
 
Aspect avec AspectJ
Aspect avec AspectJAspect avec AspectJ
Aspect avec AspectJsimeon
 
Mariadb pour les developpeurs - OSDC
Mariadb pour les developpeurs - OSDCMariadb pour les developpeurs - OSDC
Mariadb pour les developpeurs - OSDCChristophe Villeneuve
 
Python application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsPython application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsNicolas Mussat
 
Techniques de programmation avancée LabVIEW : gestion des données de la local...
Techniques de programmation avancée LabVIEW : gestion des données de la local...Techniques de programmation avancée LabVIEW : gestion des données de la local...
Techniques de programmation avancée LabVIEW : gestion des données de la local...Luc Desruelle
 
Productivité avec l'export LaTeX d'Org mode
Productivité avec l'export LaTeX d'Org modeProductivité avec l'export LaTeX d'Org mode
Productivité avec l'export LaTeX d'Org modeFabrice Niessen
 

Similaire à Plugin logstash-filter-aggregate (meetup Elastic FR) (20)

Liquibase en action
Liquibase en actionLiquibase en action
Liquibase en action
 
1 2-3-grails
1 2-3-grails1 2-3-grails
1 2-3-grails
 
Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
 
Nouveautés de PostgreSQL 9.5
Nouveautés de PostgreSQL 9.5Nouveautés de PostgreSQL 9.5
Nouveautés de PostgreSQL 9.5
 
Pg11 pgday 2018
Pg11 pgday 2018Pg11 pgday 2018
Pg11 pgday 2018
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réelles
 
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
graylog.pptx
graylog.pptxgraylog.pptx
graylog.pptx
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
 
Chiffrer et sécuriser MariaDB
Chiffrer et sécuriser MariaDBChiffrer et sécuriser MariaDB
Chiffrer et sécuriser MariaDB
 
graylogF (2).pptx
graylogF (2).pptxgraylogF (2).pptx
graylogF (2).pptx
 
Paris RailsCamp 2009
Paris RailsCamp 2009Paris RailsCamp 2009
Paris RailsCamp 2009
 
LOG4J
LOG4JLOG4J
LOG4J
 
Microbox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien RoyMicrobox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien Roy
 
Aspect avec AspectJ
Aspect avec AspectJAspect avec AspectJ
Aspect avec AspectJ
 
Mariadb pour les developpeurs - OSDC
Mariadb pour les developpeurs - OSDCMariadb pour les developpeurs - OSDC
Mariadb pour les developpeurs - OSDC
 
Python application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsPython application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgents
 
Techniques de programmation avancée LabVIEW : gestion des données de la local...
Techniques de programmation avancée LabVIEW : gestion des données de la local...Techniques de programmation avancée LabVIEW : gestion des données de la local...
Techniques de programmation avancée LabVIEW : gestion des données de la local...
 
Productivité avec l'export LaTeX d'Org mode
Productivité avec l'export LaTeX d'Org modeProductivité avec l'export LaTeX d'Org mode
Productivité avec l'export LaTeX d'Org mode
 

Plus de Fabien Baligand

Logstash Editor: The vscode extension to boost your productivity!
Logstash Editor: The vscode extension to boost your productivity!Logstash Editor: The vscode extension to boost your productivity!
Logstash Editor: The vscode extension to boost your productivity!Fabien Baligand
 
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?POSS19 - Publier du code Open Source dans une banque : Mission impossible ?
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?Fabien Baligand
 
Classification de courriers postaux avec elasticsearch
Classification de courriers postaux avec elasticsearchClassification de courriers postaux avec elasticsearch
Classification de courriers postaux avec elasticsearchFabien Baligand
 
Google+ To RSS As A Service
Google+ To RSS As A ServiceGoogle+ To RSS As A Service
Google+ To RSS As A ServiceFabien Baligand
 
Environnements, Sources de propriétés et Profils avec Spring 3.1
Environnements, Sources de propriétés et Profils avec Spring 3.1Environnements, Sources de propriétés et Profils avec Spring 3.1
Environnements, Sources de propriétés et Profils avec Spring 3.1Fabien Baligand
 
Présentation de gplus to-twitter
Présentation de gplus to-twitterPrésentation de gplus to-twitter
Présentation de gplus to-twitterFabien Baligand
 
Présentation de jQuery UI
Présentation de jQuery UIPrésentation de jQuery UI
Présentation de jQuery UIFabien Baligand
 
Présentation de alfresco - l'outil de GED open-source java
Présentation de alfresco - l'outil de GED open-source javaPrésentation de alfresco - l'outil de GED open-source java
Présentation de alfresco - l'outil de GED open-source javaFabien Baligand
 
Comment répondre aux besoins de log en production avec log4j
Comment répondre aux besoins de log en production avec log4jComment répondre aux besoins de log en production avec log4j
Comment répondre aux besoins de log en production avec log4jFabien Baligand
 
RestFul Evented Javascript avec sammyjs et jquery
RestFul Evented Javascript avec sammyjs et jqueryRestFul Evented Javascript avec sammyjs et jquery
RestFul Evented Javascript avec sammyjs et jqueryFabien Baligand
 

Plus de Fabien Baligand (11)

Logstash Editor: The vscode extension to boost your productivity!
Logstash Editor: The vscode extension to boost your productivity!Logstash Editor: The vscode extension to boost your productivity!
Logstash Editor: The vscode extension to boost your productivity!
 
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?POSS19 - Publier du code Open Source dans une banque : Mission impossible ?
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?
 
Classification de courriers postaux avec elasticsearch
Classification de courriers postaux avec elasticsearchClassification de courriers postaux avec elasticsearch
Classification de courriers postaux avec elasticsearch
 
Google+ To RSS As A Service
Google+ To RSS As A ServiceGoogle+ To RSS As A Service
Google+ To RSS As A Service
 
Environnements, Sources de propriétés et Profils avec Spring 3.1
Environnements, Sources de propriétés et Profils avec Spring 3.1Environnements, Sources de propriétés et Profils avec Spring 3.1
Environnements, Sources de propriétés et Profils avec Spring 3.1
 
Présentation de gplus to-twitter
Présentation de gplus to-twitterPrésentation de gplus to-twitter
Présentation de gplus to-twitter
 
Présentation de jQuery UI
Présentation de jQuery UIPrésentation de jQuery UI
Présentation de jQuery UI
 
Présentation de alfresco - l'outil de GED open-source java
Présentation de alfresco - l'outil de GED open-source javaPrésentation de alfresco - l'outil de GED open-source java
Présentation de alfresco - l'outil de GED open-source java
 
Comment répondre aux besoins de log en production avec log4j
Comment répondre aux besoins de log en production avec log4jComment répondre aux besoins de log en production avec log4j
Comment répondre aux besoins de log en production avec log4j
 
RestFul Evented Javascript avec sammyjs et jquery
RestFul Evented Javascript avec sammyjs et jqueryRestFul Evented Javascript avec sammyjs et jquery
RestFul Evented Javascript avec sammyjs et jquery
 
Atmosphere Framework
Atmosphere FrameworkAtmosphere Framework
Atmosphere Framework
 

Dernier

analyse- de basilique - saint denis pptx
analyse- de basilique - saint denis pptxanalyse- de basilique - saint denis pptx
analyse- de basilique - saint denis pptxHadJer61
 
Les Français et la lutte contre l'islamisme radical
Les Français et la lutte contre l'islamisme radicalLes Français et la lutte contre l'islamisme radical
Les Français et la lutte contre l'islamisme radicalcontact Elabe
 
OESTV - Intervention ICI INDUSTRIE - 15 février 2024
OESTV - Intervention ICI INDUSTRIE - 15 février 2024OESTV - Intervention ICI INDUSTRIE - 15 février 2024
OESTV - Intervention ICI INDUSTRIE - 15 février 2024OESTV
 
AmTrav'Ovin - Apprentissage des agnelles à la traite.pdf
AmTrav'Ovin - Apprentissage des agnelles à la traite.pdfAmTrav'Ovin - Apprentissage des agnelles à la traite.pdf
AmTrav'Ovin - Apprentissage des agnelles à la traite.pdfInstitut de l'Elevage - Idele
 
L'accès à l'emploi des demandeurs d'emploi inscrits à France Travail mesuré e...
L'accès à l'emploi des demandeurs d'emploi inscrits à France Travail mesuré e...L'accès à l'emploi des demandeurs d'emploi inscrits à France Travail mesuré e...
L'accès à l'emploi des demandeurs d'emploi inscrits à France Travail mesuré e...France Travail
 

Dernier (9)

1 Astié travaux station Auray 18 oct 2023.pdf
1 Astié travaux station Auray 18 oct 2023.pdf1 Astié travaux station Auray 18 oct 2023.pdf
1 Astié travaux station Auray 18 oct 2023.pdf
 
analyse- de basilique - saint denis pptx
analyse- de basilique - saint denis pptxanalyse- de basilique - saint denis pptx
analyse- de basilique - saint denis pptx
 
Les Français et la lutte contre l'islamisme radical
Les Français et la lutte contre l'islamisme radicalLes Français et la lutte contre l'islamisme radical
Les Français et la lutte contre l'islamisme radical
 
OESTV - Intervention ICI INDUSTRIE - 15 février 2024
OESTV - Intervention ICI INDUSTRIE - 15 février 2024OESTV - Intervention ICI INDUSTRIE - 15 février 2024
OESTV - Intervention ICI INDUSTRIE - 15 février 2024
 
AmTrav'Ovin - Apprentissage des agnelles à la traite.pdf
AmTrav'Ovin - Apprentissage des agnelles à la traite.pdfAmTrav'Ovin - Apprentissage des agnelles à la traite.pdf
AmTrav'Ovin - Apprentissage des agnelles à la traite.pdf
 
L'accès à l'emploi des demandeurs d'emploi inscrits à France Travail mesuré e...
L'accès à l'emploi des demandeurs d'emploi inscrits à France Travail mesuré e...L'accès à l'emploi des demandeurs d'emploi inscrits à France Travail mesuré e...
L'accès à l'emploi des demandeurs d'emploi inscrits à France Travail mesuré e...
 
4 Sigwalt Annie saisonniers 18 octobre 2023.pdf
4 Sigwalt Annie  saisonniers 18 octobre 2023.pdf4 Sigwalt Annie  saisonniers 18 octobre 2023.pdf
4 Sigwalt Annie saisonniers 18 octobre 2023.pdf
 
2 Garcia Vélasco projet AcCT 18 oct 2023.pdf
2 Garcia Vélasco projet AcCT 18 oct 2023.pdf2 Garcia Vélasco projet AcCT 18 oct 2023.pdf
2 Garcia Vélasco projet AcCT 18 oct 2023.pdf
 
3 Bidet GRH en viticulture 18 oct 2023.pdf
3 Bidet GRH en viticulture 18 oct 2023.pdf3 Bidet GRH en viticulture 18 oct 2023.pdf
3 Bidet GRH en viticulture 18 oct 2023.pdf
 

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