VT2015 Kibana Logstash

Présentation
Enseignants : D. Donsez, GP. Bonneau

Sujet : Visualisation de Journaux : Démonstration de Logstash et Kibana

Auteur : Vivien Michel

Date : 09/10/15

Abstract
Server applications generate operation logs. They can count on, per dayor even hourly thousands of reporting lines. In order to use them to monitor the system or make improvements, in order their existence provides information that man can handle, it is necessary to sort and edit visualization techniques. Indeed, a search information, to get the evolution of a given function of timecan not be done efficiently by reading raw logs, especially cause the large amount of it. So tools such as Logstash and Kibana have been developed. Thereof through the Elastic Search Database, provide a graphic display system of the information contained in the logs. With these tools, any user is able to analyze these logs and so debug / improve server application.

Résumé
Les applications serveurs génèrent des journaux de fonctionnement. Ceux-ci peuvent compter, par jour, voir par heure des milliers de lignes de compte rendu. Afin de les utiliser pour surveiller le système ou apporter des améliorations, afin que leur existence apporte des informations que l'homme peut traiter, il est nécessaire de les trier et de modifier les techniques de visualisation. En effet, chercher une information, avoir l'évolution d'une donnée en fonction du temps, ne peut être fait efficacement par la lecture des logs bruts, notamment par la grande quantité de celle-ci. Ainsi, des outils tels que Logstash et Kibana ont été développés. Ceux-ci, à travers la base de données Elastic Search, offrent un système de visualisation graphique des informations contenues dans les logs. Grâce à ces outils, tout utilisateur est en mesure d'analyser ces journaux et ainsi déboguer/améliorer l'application serveur.

Journaux Bruts
Exemple de "Raw Log". Journaux Apache sur une journée : Il est facile de voir sur l'image ci-dessus, que le trie et l'interprétation des données demandent un effort particulier au lecteur. Même avec un certain degré d'expertise, la durée des deux étapes préalablement citées n'est pas négligeables. Dès lors, il faut automatiser le traitement si l'on multiplie les logs et les applications serveurs. De plus, croiser des données entre différents serveurs devient impossible si l'on doit chercher dans de multiples types de journaux possédant une syntaxe différente.

Elastic Search
Ce programme est un outil de stockage où les données sont indexées pour être retrouvée facilement. Il utilise une base de données NoSQL. Le système est construit selon une architecture REST et permet d'obtenir des informations sur celui-ci suivant une API. Elle est particulièrement adaptée aux cloud et aux systèmes Big Data. En effet, cette base fonctionne selon un principe de cluster. Elle a la capacité de répartir les données indexés sur différents nœuds de façon totalement transparentes pour l'utilisateur. Chaque nœud possède une instance d'Elastic Search qui communique avec les autres et contient des fragments de données indexées. Ainsi, cela permet d'utiliser la puissance des différentes machines du cluster (stockage, mémoire vive ou processeur), et donc de répartir la charge (load balancing). Le système a la propriété d'être scalable. On peut donc ajouter des instances de façon dynamiques. La robustesse est assurée par un système de réplica. Chaque machine (noeuds) possède une image et l'état dans lequel se trouve le système mise à jour à chaque modification. Ainsi, si un nœud du cluster tombe et qu'il contient une partie de l'index, Elastic Search ira chercher dans le réplica. Lorsqu'un noeud est en charge, Elasticsearch fait automatiquement suivre les requêtes vers le nœud contenant le réplica correspondant.