Author
fabien-baligand
View
976
Download
0
Embed Size (px)
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 - startINFO - 12345 - SQL - sqlQuery1 - 12INFO - 12345 - SQL - sqlQuery2 - 34INFO - 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-yourpluginlogstash-filter-yourplugin.gemspeclib
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/logstashDemande de création de repository sur le
compte logstash-plugins2. Fork du repository 3. Dev du plugin + Tests unitaires4. Pull Request
Questions