[TP] Projet 4 : Exploitation d'Elasticsearch
What you will learn in this TP :
- Prendre en main l'interface Grafana
- Création de tableaux de bord
- Affecter des tags à un tableau de bord
- Identifier et reconnaître la source de donnée
- Construction et utilisation d'une requête Lucene
- Utilisation d'une visualisation de type Geomap
- Personnalisation de la visualisation
- Définir la plage horaire par défaut
- Définir le titre et la description d'un panel
- Faire des graphiques à bornes
- Mettre en place un tableau avec feu tricolore
- Utiliser le value mapping
- Utiliser les regex
- Faire des graphiques à secteurs
- Construire unb panel à partir d'un autre
- Prendre en main la visualisation de type Logs
- Faire des requêtes sur des intervalles avec Lucene
- Faire des séries temporelles
- Utiliser le mode Metrics de la datasource Elasticsearch
- Faire des regroupements selon un critère
- exclure un champ par négation avec lucene
- Mettre en place une alerte
Introduction
What you will learn in this section :Pour réaliser ce projet, vous devez installer votre propre instance Grafana (un TP disponible pour cela). Mais si vous faites une formation en présentiel, vous pouvez vous rapprocher de votre formateur pour avoir les identifiants pour vous connecter à l'instance https://demo.rousseltm.fr
- Prendre en main l'interface Grafana
- Création de tableaux de bord
- Affecter des tags à un tableau de bord
ALERTE: N'hésitez pas à nous poser des questions car, il y a des notions d'autres produits que vous devez connaître (ou maîtriser) pour configurer facilement vos tableaux de bord Grafana:.
- Query type : Nous vous conseillons de suivre cette vidéo qui explique les différents types de requêtes que vous pouvez faire Dans Grafana avec Elasticsearch. Voici le résumé nécessaire pour faire ce TP:
- Metrics: Utilisé pour construire des graphiques temporels (time series). Repose sur les agrégations Elasticsearch (date_histogram, terms, avg, count, etc.).
- Logs (valeur par défaut): Mode orienté observabilité/logs. Affiche les événements (documents) de manière chronologique. Grafana formate les champs (@timestamp, message, log.level, etc.) pour ressembler à un explorateur de logs (comme Kibana Discover).
- Raw data: Retourne les documents Elasticsearch tels qu’ils sont stockés (JSON brut). Moins « user-friendly » que le mode Logs, mais plus fidèle aux données.
- Raw Document (Déprécié): Ancienne version de Raw data. Utilisait _source directement et n’offrait pas toutes les optimisations récentes de Grafana.
- Lucene query : Nous vous conseillons de suivre cette vidéo qui explique la différence entre les langages d'Elasticsearch. Vous aurez besoin de comprendre le langage lucene pour faire ce TP et l'essentiel est expliqué Dans la vidéo
-
Prise en main
Vous devez créer un dossier et y mettre votre tableau de bord. Si c'est une formation de groupe, le formateur va vous assigner un dossier dédié. -
Création du tableau de bord
Dans le dossier que vous venez de créer, vous devez créer un tableau de bord que vous allez nommer 'projet 4' et lui affecter le tag 'projet 4'. Vous devez ensuite identifier la bonne source de données qui correspond à Elasticsearch. -
Création d'une variable
Vous devez créer une variable nommée 'host' qui va afficher la liste des domaines(champ 'host') présents Dans la source de donnée de type 'Elasticsearch'. Vous devez permettre de sélectionner plusieurs options Dans la variable.ATTENTION: Pour chacun des panels ci-dessous, ils doivent varier en fonction du choix de la variable
Panel : carte
What you will learn in this section :Prendre en main la représentation sous forme de carte
- Identifier et reconnaître la source de donnée
- Construction et utilisation d'une requête Lucene
- Utilisation d'une visualisation de type Geomap
- Personnalisation de la visualisation
- Définir la plage horaire par défaut
- Définir le titre et la description d'un panel
-
Source de données
Vous devez identifier et choisir la source de donnée de type Elasticsearch.INFORMATION : En entreprise, vous devez définir une norme de nommage Dans Grafana. L'erreur que certains font est de mettre le type de la source Dans le nom pourtant il est facilement identifiable Dans la console Grafana
-
La requête
Vous devez construire une requête Lucene pour afficher uniquement les documents qui ont un statut http à '503' et dont le champ 'machine.os' commence par 'win'. Pour rappel, vous avez créé une variable donc toutes les requêtes doivent l'inclure ! -
Type de visualisation
Vous devez choisir une visualisation qui correspond à une représentation sous forme de carte et utilise les champs suivants pour les coordonnées :- Latitude : geo.coordinates.lat
- Longitude : geo.coordinates.lon
-
Titre et description
Vous devez définir, pour la visualisation, comme titre 'Répartition géographique des visiteurs' et comme description 'Représentation géographique des utilisateurs' -
Le détails des points
Vous devez configurer le tableau pour qu'il affiche uniquement ces champs quand on se positionne sur un point :- host
- clientip
- @timestamp
- geo.dest
- geo.src
- message
-
Plage horaire par défaut
Vous devez configurer le tableau de bord pour qu'il affiche par défaut les données sur 30 jours.
Panel : Graphiques à bornes
What you will learn in this section :Vous devez créer un panel qui affiche un graphique à bornes représentant la répartition des codes retours. Vous devez mettre en place un feu tricolore sur ce modèle
- Faire des graphiques à bornes
- Mettre en place un tableau avec feu tricolore
- Utiliser le value mapping
- Utiliser les regex
- Vert avec le message 'OK' : code 2xx
- Jaune avec le message 'Redirection' : code 3xx
- Orange avec le message 'Erreur client' : code 4xx
- Rouge avec le message 'Erreur serveur' : code 5xx
-
Regroupement des données
Vous devez mettre en place, grâce aux transformations, le regroupement des données par code retour et compter le nombre de fois que ce dernier apparaît Dans le temps. -
Conversion des données
Un graphe à borne utilise des champs de type 'string'. Vous devez donc convertir les codes retour en chaîne de caractère. -
Mode de coloration
Vous devez indiquer à Grafana qu'il doit se servir du code retour pour la couleur de la borne. -
Feu tricolore
Vous devez mettre en place le feu tricolore comme demandé en ci-dessus.
Panel : Graphiques à secteurs
What you will learn in this section :Vous devez créer un panel qui affiche un graphique à bornes représentant la répartition des codes retours. Vous devez personnaliser les labels sur ce modèle
- Faire des graphiques à secteurs
- Construire unb panel à partir d'un autre
- Message 'OK' : code 2xx
- Message 'Redirection' : code 3xx
- Message 'Erreur client' : code 4xx
- Message 'Erreur serveur' : code 5xx
-
Dupliquer un panel
Vous devez dupliquer le panel que vous venez de créer (Panel : Graphiques à bornes). Et les redimensionner pour qu'ils s'affichent sur une même ligne. Celui à Bornes occupe environ 2/3 de la ligne et le clone 1/3. -
Changer visualisation
Vous devez modifier la visualisation pour que les données soient désormais affichées sous forme de secteurs. -
Feu tricolore
Est-il possible de faire du feu tricolore avec ce type de visualisation ?
Panel : Logs
What you will learn in this section :Vous devez ajouter au tableau de bord un panel pour visualiser des Logs.
- Prendre en main la visualisation de type Logs
- Faire des requêtes sur des intervalles avec Lucene
-
Erreurs HTTP
Vous devez ajouter un panel pour représenter des logs et qui affiche uniquement les logs d'erreurs HTTP.INFORMATION: une log d'erreur HTTP est une log qui a un code retour http de 4xx à 5xx
Panel : série temporelle
What you will learn in this section :Créer une série temporelle avec des données issues d'Elasticsearch. Ce graphe doit donner l'évolution du nombre de documents par code retour HTTP
- Faire des séries temporelles
- Utiliser le mode Metrics de la datasource Elasticsearch
- Faire des regroupements selon un critère
- exclure un champ par négation avec lucene
-
Le type de requête
Vous devez positionner le bon mode pour faire de la série temporelle. ET Dans la requête exclure tous les status HTTP à 2xx et 3xx -
Le regroupement
Vous devez configurer Grafana pour qu'il regroupe les métriques par temps (Dans Elasticsearch le champ par défaut du temps est '@timestamp') et par code retour HTTP. -
La visualisation
Vous devez sélectionner la visualisation qui permet d'afficher des series temporelles.
Alertes
What you will learn in this section :Vous devez positionner une alerte sur des erreurs serveurs.
- Mettre en place une alerte
INFORMATION: une erreur serveur est une log qui a un code retour http 5xx
-
Erreur serveur
Vous devez mettre en place une alerte à chaque fois qu'on a une erreur serveur qui se produit. Les notifications doivent être envoyées sur le point de contect 'RousselTM'. Vous pouvez vérifier les notifications à l'adresse : Voir les notifications.
Course Glossary
The process of notifying teams (via email, Slack, Teams) when a specific event, threshold breach, or anomaly is detected.
An HTTP status code indicating that the client's request was successfully processed by the server.
An HTTP status code indicating that the server understood the request but refuses to authorize it, usually due to a lack of permissions.
An HTTP status code indicating that the requested resource could not be found on the server.
Recommended Articles
Understand the evolution of billing in Dynatrace: the difference between the ...
Discover why and how to configure Grafana Alloy so that it monitors itself, c...
Discover how to enable, secure, and use Grafana Alloy's built-in web interfac...
Discover the fundamental concepts of Grafana Alloy, the transition from the s...
Master Grafana Alloy's declarative syntax (River language), learn to manipula...
Learn how to configure Grafana Alloy to collect, transform, and forward metri...
Discover how to configure Grafana Alloy to read log files, journald, or netwo...
Dive into distributed trace processing. Learn how to ingest OTLP, Jaeger, or ...
Discover how to configure continuous profiling in your environments using Gra...
Learn how to manage large-scale Grafana Alloy deployments. Configure Clusteri...
Discover Grafana Assistant, the artificial intelligence integrated into Grafa...
Comparison between Grafana Alloy and Dynatrace ActiveGate. Understand the fun...