Aggrégateur de logs – Logstash - ElasticSearch - Kibana – Logstash



Aggrégateur de logs – Logstash - ElasticSearch - Kibana – Logstash

0 0


WL-LEK-Presentation


On Github MaxRaf / WL-LEK-Presentation

Aggrégateur de logs

Logstash - ElasticSearch - Kibana

ParMaxime Rafaillac

Les logs...

En informatique, le concept historique des évènements ou de logging désigne l'enregistrement séquentiel dans un fichier ou une base de données de tous les événements affectant un processus particulier.

Source: Wikipedia

Oh hey, these are some notes. They'll be hidden in your presentation, but you can see them if you open the speaker notes window (hit 's' on your keyboard).

Présentation

Les outils Mise en place La suite

Les outils

Logstash

Logstash

Collecter, parser, restituer

  • 37 types d'input -> Logs
  • 39 filtres -> Grok
  • 51 types de sortie -> ElasticSearch

Logstash

Ajout de sémantique: filtres grok

12-09-2013 15:55:52.625 INFO  n.a.k.v.s.impl.CalypsoSamServiceImpl - Open channel, 19 more channel available.
%{DATE_EU:date} %{TIME:time} %{LOGLEVEL:logLevel}  %{GREEDYDATA:class} - Open channel, %{NUMBER:availableChannels:int} more channel available.
match => ["message", "%{DATE_EU:dateLog} %{TIME:timeLog} %{LOGLEVEL:logLevel}  %{GREEDYDATA:class} - Open channel, %{NUMBER:availableChannels:int} more channel available."]
add_tag => ["OpenChannels"]

Elastic search

Elastic search

  • Orienté document
  • Distribué, scalable
  • Haute disponibilité
  • Recherche full-text
  • API RestFul

Elastic search

Envoyé depuis Logstash

{
	"message" => "12-09-2013 15:55:52.625 INFO  n.a.k.v.s.impl.CalypsoSamServiceImpl - Open channel, 19 more channel available.",
	"@timestamp" => "2013-09-12T13:55:52.625Z",
	"@version" => "1",
	"type" => "keolis",
	"host" => "debian",
	"path" => "/home/mrafaillac/Documents/keolis/logs/test.log",
	"dateLog" => "12-09-2013",
	"timeLog" => "15:55:52.625",
	"logLevel" => "INFO",
	"class" => "n.a.k.v.s.impl.CalypsoSamServiceImpl",
	"availableChannels" => 19,
	"tags" => [
		[0] "OpenChannels"
	],
	"completeDate" => "12-09-2013 15:55:52.625"
}

Elastic search

Stocké

curl -XGET "http://localhost:9200/demo/_search?pretty=true&q=OpenChannels"
"hits" : {
    "total" : 3,
    "max_score" : 0.33809352,
    "hits" : [{
		"_index" : "demo",
		"_type" : "logs",
		"_id" : "-5DZQrv2SO-4Btzeu3Qn-A",
		"_score" : 0.2982868, "_source" : {"message":"12-09-2013 15:55:52.625 INFO  n.a.k.v.s.impl.CalypsoSamServiceImpl - Open channel, 19 more channel available.","@timestamp":"2013-09-12T13:55:52.625Z","@version":"1","type":"keolis","host":"debian","path":"/home/mrafaillac/Documents/keolis/logs/test.log","dateLog":"12-09-2013","timeLog":"15:55:52.625","logLevel":"INFO","class":"n.a.k.v.s.impl.CalypsoSamServiceImpl","availableChannels":19,"tags":["OpenChannels"],"completeDate":"12-09-2013 15:55:52.625"}
    }]
  }

Kibana

Kibana

  • Visualisation de données datées
  • Analyse temps réel
  • Flexible

Kibana

Requêter la base ElasticSearch

  • tags="Log levels" <=> Log levels
  • "Logs levels" = "WARN"
  • @version=1
  • Combiner des requêtes avec des opérateurs logiques...

Kibana

tags="Log levels" <=> Log levels

Architecture

Récapitulatif

Architecture

Réel

Mise en place

Montrer au client à quelle heure la fonctionnalité de SMS est utilisée

Mise en place

Résultat pour les 31026 SMS du mois

La suite

  • Keolis
  • Stage
  • Outils

Questions