ELK

Le projet ELK vise à implémenter une plateforme de centralisation et de traitement des logs de l'ensemble de l'infrastructure, prenant en compte l'ensemble du périmètre de interne et le périmètre client. Ces périmètres sont composés des éléments suivants:

  • Serveurs Windows/Linux
  • Equipements réseaux (Switch, routeurs, pare-feux)
  • Elements d'infrastructure (vCenters, ESX, baies de stockage)

Le projet est en 1er lieu intégré sur un petit périmètre et suite à une validation, sera étendue au reste du périmètre.

Présentation

La plateforme est composée de 3 éléments principaux, mis en cluster afin d'assurer la résilience du service. Les services installés sont les suivants:

  1. Logstash : récupère les logs envoyés par les serveurs Rsyslog, les traite et les envoie à Elasticsearch
  2. Elasticsearch : récupère les logs envoyés par Logstash, les indexe et les insère en base de données
  3. Kibana: requête la base Elasticsearch pour retrouver les logs indéxés et les affiche sous forme de graphique et de dashboards

La plateforme de base est composée d'1 serveur Logstash, de 4 serveurs Elasticsearch, dont 1 qui sert seulement de répartiteur de charge placé sur le même serveur que le Kibana.

En cas de nécessité, il est facilement possible de rajouter des noeuds et de les intégrer au cluster.

Schéma de l'architecture

Fonctionnement

Fonctionnement général

Le traitement de données se fait en plusieurs étapes:

  1. les événements du-des serveur(s) sont soit envoyés à un serveur Rsyslog qui se chargera lui même d'envoyer les données aux serveurs Logstash, soit ils sont directement envoyés au Logstash
    1. A noter que selon les versions de Rsyslog, les événements peuvent être directement formatés en JSON, ce qui améliore grandement les performances et permet l'insertion directe en base Elasticsearch
  2. Les données sont prises en charge par Logstash qui va s'occuper de les découper selon un format soit prédéfinit soit personnalisé afin d'obtenir des données en JSON sous la forme clé-valeur
  3. Les données formatées par Logstash sont insérées tels quelles dans la base de données Elasticsearch suivant un index (ex: logstash-docker-2018.03.26) permettant de les retrouver par la suite
  4. Les données présentes en base sont requêtées par Kibana selon le(s) indexe(s) voulu(s) et seront affichées sous forme de graphiques et de dashboard

Ces dashboards peuvent ensuite être mis à disposition des différents intervenants.

Cluster

Sur l’architecture virtuelle, les trois serveurs Elasticsearch seront mis en cluster afin de garantir une haute disponibilité de service.

Le choix de prendre au mois 3 serveurs Elasticsearch n’est pas arbitraire, en effet ce choix permet de toujours avoir un cluster opérationnel et éviter qu’un split-brain se produise lorsqu’un nœud vient à se déconnecter.

Il est également nécessaire de configurer un minimum de nœud en tant que nœud maître dans le cluster , pour déterminer ce nombre, il est possible d’utiliser le calcul suivant : m=N/2+1 où N est le nombre total de noeuds

Dashboards et accès divers

Voici ici différents accès aux interfaces liées au lab ELK:

  • Interface d'utilisation de Kibana:
    • url : 10.40.30.106:5601/app/kibana

Informations réseaux

Tableau d'adressage IP des serveurs du lab

ServeurNom DNSAdresse IP
Logstash01lab-ELK-Logstash01 10.40.30.107
Elasticsearch01lab-ELK-Elasticsearch01 10.40.30.103
Elasticsearch02lab-ELK-Elasticsearch02 10.40.30.104
Elasticsearch03lab-ELK-Elasticsearch03 10.40.30.105
Kibana01lab-ELK-Kibana0110.40.30.106

Tableau des flux

SourceDestinationPortProtocol
LogstashElasticsearchTCP9200
ElasticsearchElasticsearchTCP9200
ElasticsearchKibanaTCP9200
Agents BeatLogstashTCP5044
UtilisateurKibanaTCP5601

Procédures

Administration des serveurs et services

Visualiser les données

API cheat sheet

wiki/elk.txt · Dernière modification: 2018/04/23 19:13 (modification externe)
CC0 1.0 Universal
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5