chapitre3 elk concepts_avances

Post on 12-Aug-2015

114 Views

Category:

Data & Analytics

16 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Dans le chapitre 1, nous avons vu comment il était possible de réaliser un dashboard Kibana pour mettre en évidence les données des logs.

Ce travail est rendu possible grâce à Elasticsearch, Logstash et Redis qui permettent la remontée et la structuration des logs vers Kibana.

L’objectif de ce chapitre sera donc de voir comment configurer ce système étape par étape.

Log Processing ElasticsearchChapitre 3 :ELK, Concepts avancésQUERY FILTERING

Contexte général :

Log Processing ElasticsearchChapitre 3 :ELK, Concepts avancésQUERY FILTERING

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Shipper :

Le Shipper Logstash permet de récupérer les logs et de les centraliser dans Logstash.

Logstash a donc deux rôles dans la solution ELK. D’une part, il récupère les différentes logs pour les stocker dans Redis. D’autre part, il jouera un rôle d’Indexer par la suite en récupérant les données de Redis.

Ce rôle de Shipper est rendu possible en configurant le fichier shipper.conf situé dans le répertoire /users/sth00/conf .

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Shipper : shipper.conf

2 parties :

-Input : Permet de prendre les fichiers à traiter en entrée(s)

-Output : Permet d’indiquer le traitement à effectuer en sortie(s)

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Shipper :

Traitement en Input :

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Shipper :

Traitement en Output :

Log Processing ElasticsearchChapitre 3 :ELK, Concepts avancésQUERY FILTERING

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Redis Broker : Déploiement classique

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Redis Broker : Déploiement classique

Le broker permet de servir de buffer entre les agents et le serveur Logstash.C’est-à-dire que Redis va stocker temporairement les données remontées par le shipper Logstash.

- Cela permet d’améliorer les performances de l’environnement Logstash en fournissant une buffer de cache pour les événements de logs.

- Cela permet de fournir de la résilience. Si l’indexer Logstash connaît un problème, alors les événements sont mise en fils d’attente afin d’éviter la perte d’informations.

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Déploiement sans Redis : Syslog

Dans certains cas, il faut se passer d’un agent Logstash sur les machines hôtes.

- La JVM déployée sur l’hôte est limitée.

- L’hôte dispose de peu de ressources. Impossible d’y installer une JVM ou d’exécuter un agent.

- On ne peut rien installer sur la machine hôte.

On utilise alors des outils systèmes : Syslog. Dans ce cas, on ajoute alors en input au fichier indexer.conf de Logstash les événements Syslog

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Déploiement sans Redis : Syslog

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Déploiement sans Redis : Logstash Forwarder

Le dernier cas repose sur Logstash Forwarder, un client léger permettant d’envoyer des messages à Logstash avec un protocole sécurisé (encryption via SSL) et compression de données.

Ce client léger n’est pas encore testé actuellement. Sur le papier, son principal atout est sa faible consommation mémoire et il s’avère utile lorsque la mise en place d’un agent Syslog ou Logstash est impossible.

Son principe de fonctionnement repose sur le fait d’exécuter Logstash Forwarder en lui indiquant via fichiers de config les fichiers à prendre en compte et l’adresse cible niveau serveur.

Log Processing ElasticsearchChapitre 3 :ELK, Concepts avancésQUERY FILTERING

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Indexer :

3 parties :

-Input : On récupère les données de Redis-Filters : Tri sur les données

- Mise en place des index-Output : Envoi des logs vers Elasticsearch

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Indexer : Input

Le fichier indexer.conf a premièrement pour but de récupérer les données de Redis en Input. Mais on peut également récupérer d’autres données et traiter également directement des fichiers, que ce soit des fichiers .log ou encore des fichiers .csv.

On récupère donc les données serveur par serveur et fichier par fichier pour qu’ils soient réinjectés dans Logstash.

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Indexer : Input

Données de Redis Données fichiers

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Indexer : Filters

Il existe plusieurs manières de filtrer :

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Indexer : Filters

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Indexer : Filters

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Indexer : Filters

Exemple de filtres sur un fichier .csv

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Indexer : Filters

Exemple de filtres sur un fichier .csv :

-Ajout de champs renseignant le timestamp ou l’application (principe de key / value)

-Enrichissement de la date

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Indexer : Filters

Exemple de filtres pour un traitement de log Syslog :

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Indexer : Filters

Exemple de filtres pour un traitement de log Apache :

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Indexer : Filters

Exemple de filtres pour un traitement de log Apache :

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Indexer : Filters

Grok Filter :

Les filtres Grok reposent sur l’utilisation d’expressions régulières pour extraire l’information des logs.

Logstash est fourni avec un grand nombre de patterns Grok prédéfinis. Cependant, on peut également créer ses propres patterns dans users/sth00/patterns.

Pour mettre en place un pattern, il est possible de s’aider de https://grokdebug.herokuapp.com/ qui effectuera des contrôles sur la validité de l’expression régulière.

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Indexer : Output

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Logstash Indexer : Output

On peut récupérer les erreurs de parsing dues à Grok et les stocker dans un fichier (ici grokfailure.log) .Attention à vérifier la taille du fichier fréquemment pour vérifier qu’il ne sature pas l’espace disque. L’idéal est d’éviter au maximum les erreurs de parsing : En effet, on constate une nette baisse de performance lorsque l’on envoie ces données.

Log Processing ElasticsearchChapitre 3 :ELK, Concepts avancésQUERY FILTERING

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Elasticsearch : /users/ela00/conf/elasticsearch.yml

Exemple de configuration pour le nœud yval0910

Log Processing ElasticsearchChapitre 3: ELK, Concepts avancésQUERY FILTERING

Elasticsearch : elasticsearch.yml

Paramétrage pour Kibana et Marvel (outil de surveillance)

top related