Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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
Nächste SlideShare
Wird geladen in …5
×

Plugin logstash-filter-aggregate (meetup Elastic FR)

1.461 Aufrufe

Veröffentlicht am

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.

Veröffentlicht in: Daten & Analysen
  • Loggen Sie sich ein, um Kommentare anzuzeigen.

  • Gehören Sie zu den Ersten, denen das gefällt!

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

×