Tableaux de bord Kibana
Contactez-moi- Kibana
- Elastic Stack
- Filebeat
- Caddy
Kibana est l’interface de visualisation de la stack Elastic. Il permet d’explorer des données indexées dans Elasticsearch, de construire des tableaux de bord (dashboards), de définir des alertes sur seuils, et sert aussi de console d’administration et d’investigation (Discover, Security, Observability).
Historique
Kibana est créé en 2013 par Rashid Khan comme complément visuel à Elasticsearch et Logstash, formant la “stack ELK”. Le projet rejoint Elastic (l’éditeur d’Elasticsearch) peu après, et devient le point d’entrée graphique de toute la stack : logs, métriques, sécurité, recherche.
Avantages des versions récentes
- Lens : éditeur de visualisation par glisser-déposer (depuis Kibana 7.x), rendant la création de graphiques accessible sans connaître le langage de requête.
- Alerting unifié : un seul framework d’alertes pour tous les cas d’usage (observabilité, sécurité, SLO), avec connecteurs vers email, Slack, webhooks.
- ES|QL dans Discover et les dashboards : exploration et transformation de données directement avec le nouveau langage de requête d’Elasticsearch.
- Drilldowns et dashboards liés : navigation contextuelle entre dashboards pour l’investigation d’incidents.
Exemple : le tableau de bord des logs Caddy
Ce tableau de bord donne l’état du trafic de mes sites sur les dernières 24 heures, à partir des journaux d’accès du serveur web Caddy.
Il affiche le nombre de requêtes, les visiteurs uniques, le temps de réponse moyen, les codes de statut dans le temps, la part des robots et des humains, les sites les plus sollicités, les pays et les organisations réseau à l’origine du trafic, ainsi qu’une carte de géolocalisation. Le détail de chaque panneau est dans la page monitoring et observabilité.
Comment les données arrivent
- Caddy journalise chaque requête reçue dans un fichier d’accès : site demandé, code de statut, durée, adresse IP, navigateur déclaré.
- Un agent Elastic (Filebeat ou Elastic Agent) lit ce fichier en continu et envoie les nouvelles lignes à Elasticsearch, sans intervention.
- À l’arrivée, un pipeline d’ingestion Elasticsearch enrichit chaque ligne : géolocalisation de l’adresse IP (pays), organisation réseau (AS) et identification du robot à partir du navigateur déclaré. C’est ce qui rend possibles les panneaux « Top pays », « Top organisations » et « Robots contre humains ».
- Kibana interroge l’index et dessine les panneaux. La période affichée est réglée sur les dernières 24 heures, avec un rafraîchissement automatique : le tableau de bord suit le trafic en quasi temps réel, sans rien à relancer.
Comment le tableau de bord est généré et mis à jour
Le tableau de bord n’est pas construit à la main dans l’interface : il est généré par un script qui appelle l’API Kibana. Le script crée les objets Kibana nécessaires, visualisations et tableau de bord qui les assemble.
- Reproductible : la définition du tableau de bord est du code, qu’on peut rejouer sur une autre instance Kibana.
- Mise à jour par script : pour ajouter un panneau ou changer un filtre, je modifie le script et je le relance.
- Données et présentation séparées : les données se mettent à jour toutes seules via l’agent ; le script ne sert qu’à faire évoluer la présentation.
Mon expertise
J’ai construit un tableau de bord Kibana sur les journaux d’accès du serveur web Caddy :
- collecte par un agent Elastic (Filebeat ou Elastic Agent) vers Elasticsearch, avec un pipeline d’ingestion qui enrichit les lignes (pays, organisation réseau, robots) ;
- tableau de bord généré par script via l’API Kibana, donc reproductible et mis à jour par relance du script ;
- lecture du trafic sur 24 heures : requêtes par code de statut, robots contre humains, sites, pays et organisations les plus actifs, carte de géolocalisation.