Le moteur de recherche et d’analyse Elas­tic­search est l’une des meil­leures solutions open source pour indexer et struc­tu­rer de grandes bases de données. Cependant, il n’est souvent possible d’obtenir des in­for­ma­tions pré­cieuses lors de l’analyse ul­té­rieure des données brutes que si elles sont vi­sua­li­sées de manière très rapide et si elles sont faciles à com­prendre. L’outil de vi­sua­li­sa­tion Kibana a été spé­cia­le­ment développé pour la pré­sen­ta­tion des données d’Elas­tic­search. Voici notre tutoriel pour Kibana.

Qu’est-ce que Kibana ?

Kibana est une interface Web ex­ten­sible pour la re­pré­sen­ta­tion visuelle des données col­lec­tées. Avec Elas­tic­search et l’outil de trai­te­ment de données Logstash, il forme ce qu’on appelle la pile ELK (pile lo­gi­cielle composée de Elas­ti­search, Logstash et Kibana, nommée aussi The Elastic Stack). Cette suite open source permet aux uti­li­sa­teurs de collecter des données à partir de dif­fé­rentes sources serveur (et cela dans n’importe quel format), de les organiser et de les préparer à des fins ana­ly­tiques. En plus de la pos­si­bi­lité de vi­sua­li­ser les données traitées par Logstash et Elas­tic­search, Kibana offre également une analyse au­to­ma­tique en temps réel, un al­go­rithme de recherche très flexible et dif­fé­rents types de vi­sua­li­sa­tions (his­to­grammes, gra­phiques, dia­grammes cir­cu­laires, etc.) pour chaque donnée. Dans le tableau de bord, les dif­fé­rentes vi­sua­li­sa­tions in­te­rac­tives peuvent ensuite être combinées pour former une image globale dynamique qui peut ensuite être filtrée et re­cher­chée.

Mz8avM1oOKQ.jpg Pour afficher cette vidéo, des cookies de tiers sont nécessaires. Vous pouvez consulter et modifier vos paramètres de cookies ici.

En tant qu’ap­pli­ca­tion Web écrite en Ja­vaS­cript, Kibana peut être utilisée sur plusieurs pla­te­formes. Des coûts ne sur­vien­nent que si vous utilisez le service d’hé­ber­ge­ment Elastic Cloud proposé par le dé­ve­lop­peur. Ce service payant vous permet d’im­plé­men­ter et d’organiser un cluster Elas­tic­search Kibana sécurisé sur Amazon ou Google sans avoir à fournir vos propres res­sources.

Tutoriel Kibana : premiers pas avec l’outil de vi­sua­li­sa­tion

Kibana offre un large éventail de fonctions qui peuvent être utilisées pour afficher les stocks de bases de données préparées. Cependant, avant de pouvoir filtrer et vi­sua­li­ser l’in­for­ma­tion contenue dans le tableau de bord afin que les valeurs clefs sou­hai­tées puissent fa­ci­le­ment être visibles, analysées et évaluées à long terme, il reste beaucoup de travail à faire. Avec ce tutoriel Kibana, nous voulons vous faciliter la prise en main de la puissante interface Web. Cet article explique comment installer Kibana cor­rec­te­ment, comment créer votre premier tableau de bord et comment intégrer les données exis­tantes dans l’outil de vi­sua­li­sa­tion d’Elastic.

Étape 1 : comment faire fonc­tion­ner Kibana

Puisque Kibana est conçu pour afficher des données qui ont été indexées à l’aide d’Elas­tic­search, vous devez d’abord installer le moteur de recherche et d’analyse. Les paquets cor­res­pon­dants pour Windows, macOS et Linux se trouvent dans le Elas­tic­search Download Center. La condition préalable est qu’un en­vi­ron­ne­ment d’exécution Java actuel (64 bits) soit toutefois installé.

Kibana est également dis­po­nible comme logiciel mul­ti­pla­te­forme pour Windows, macOS et Linux (RPM, DEB). Puisque l’ap­pli­ca­tion est basée sur l’en­vi­ron­ne­ment d’exécution Ja­vaS­cript Node.js, les dif­fé­rents paquets d’ins­tal­la­tion con­tien­nent également les binaires Node.js né­ces­saires pour utiliser l’outil de vi­sua­li­sa­tion, les versions main­te­nues sé­pa­ré­ment ne sont pas sup­por­tées. Les dif­fé­rents paquets (com­pres­sés en ZIP) peuvent être trouvés comme Elas­tic­search sur la page of­fi­cielle d’Elastic.

Note

Les uti­li­sa­teurs Linux et Mac peuvent aussi installer Kibana à partir du dépôt Elastic en utilisant les ges­tion­naires de paquets apt et yum. Des ins­truc­tions dé­tail­lées peuvent être trouvées dans les manuels en ligne.

Après avoir dé­com­pressé le paquet Kibana, exécutez le fichier bin/kibana (macOS, Linux) ou bin\kibana.bat (Windows) pour faire fonc­tion­ner le serveur Kibana.

Vous pouvez alors appeler le backend Kibana via l’adresse « http://localhost:5601 » dans votre na­vi­ga­teur (Elas­tic­search doit pour cela être démarré).

Étape 2 : intégrer des donnés dans Kibana

Afin de pouvoir examiner de plus près le tableau de bord Kibana et ses fonctions dans ce tutoriel, il faut tout d’abord y insérer des données. Sur le site Internet d‘Elastic, il y a trois échan­til­lons de base de données té­lé­char­geables gra­tui­te­ment, que nous utilisons ici à des fins de test. Ce sont les trois bases de données listées ci-dessus « sha­kes­peare.json » (base de données des œuvres complètes de William Sha­kes­peare), « accounts.zip » (ensemble de comptes fictifs) et « logs.jsonl.gz » (ensemble de fichiers logs générés de manière aléatoire).

Té­lé­char­gez et dé­com­pres­sez les trois fichiers (compte et fichier log) et en­re­gis­trez-les à l’em­pla­ce­ment de votre choix.

Avant de soumettre les données, il est né­ces­saire de créer des mappings pour les champs des bases de données Sha­kes­peare et Server Log. Ces af­fec­ta­tions divisent les documents de l’index en groupes logiques et spé­ci­fient également les pro­prié­tés des champs, telles que leur capacité de recherche. L’outil approprié pour con­fi­gu­rer les Mappings est la Console, qui se trouve dans l’interface Kibana sous les points de menu « Dev Tools » « Console ».

Insérez main­te­nant les Mappings suivants dans l’ordre via PUT-Request :

PUT /shakespeare
{
 "mappings": {
  "doc": {
   "properties": {
    "speaker": {"type": "keyword"},
    "play_name": {"type": "keyword"},
    "line_id": {"type": "integer"},
    "speech_number": {"type": "integer"}
   }
  }
 }
}
PUT /logstash-2015.05.18
{
    "mappings": {
        "log": {
            "properties": {
                "geo": {
                    "properties": {
                        "coordinates": {
                            "type": "geo_point"
                        }
                    }
                }
            }
        }
    }
}
PUT /logstash-2015.05.19
{
    "mappings": {
        "log": {
            "properties": {
                "geo": {
                    "properties": {
                        "coordinates": {
                            "type": "geo_point"
                        }
                    }
                }
            }
        }
    }
}
PUT /logstash-2015.05.20
{
    "mappings": {
        "log": {
            "properties": {
                "geo": {
                    "properties": {
                        "coordinates": {
                            "type": "geo_point"
                        }
                    }
                }
            }
        }
    }
}

Utilisez main­te­nant le Bulk API d’Elas­tic­search pour charger les ensembles de données via Curl sur le terminal. Sous Windows, utilisez plutôt le Po­wer­Shell avec Invoke-Rest­Me­thod (exemple de code ci-dessous) :

curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/bank/account/_bulk?pretty' --data-binary @accounts.json
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/shakespeare/doc/_bulk?pretty' --data-binary @shakespeare_6.0.json
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/_bulk?pretty' --data-binary @logs.jsonl
Invoke-RestMethod "http://localhost:9200/bank/account/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "accounts.json"
Invoke-RestMethod "http://localhost:9200/shakespeare/doc/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "shakespeare_6.0.json"
Invoke-RestMethod "http://localhost:9200/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "logs.jsonl"
Note

Selon la puissance de calcul, l’ali­men­ta­tion des ensembles de données peut prendre quelques minutes.

Revenez à la console Kibana pour vérifier le succès du processus de char­ge­ment avec la requête GET suivante :

GET /_cat/indices?v

Si les données sont intégrées comme prévu, l’Output ressemble à ceci :

Étape 3 : dé­fi­ni­tion d’un premier modèle d’index

Pour que Kibana puisse savoir quelles données il doit traiter, vous devez créer des modèles cor­res­pon­dants pour les indices « sha­kes­peare », « bank » et « logstash ». Dé­fi­nis­sez le premier comme suit :

  1. Ouvrez le menu « Ma­na­ge­ment » et cliquez sur « Index Patterns ». Lors de la création du premier modèle d’index, la page « Create index pattern » s’ouvre au­to­ma­ti­que­ment. Vous pouvez également l’appeler à l’aide du bouton du même nom.
  2. Tapez « shakes* » dans le champ « Index pattern » et cliquez sur « Next step ».
  3. Comme aucune con­fi­gu­ra­tion spéciale n’est né­ces­saire pour ce modèle, passez à l’étape de con­fi­gu­ra­tion suivante et terminez di­rec­te­ment la création du modèle en cliquant sur « Create index pattern ».

Répétez les étapes pour le motif « ba* », qui est au­to­ma­ti­que­ment affecté à l'index « bank ».

Enfin, vous dé­fi­nis­sez un modèle d'index avec le nom « logstash* » pour les trois index de log du serveur. Dans ce modèle, cependant, vous ne sautez pas le menu de con­fi­gu­ra­tion, mais sé­lec­tion­nez « @timestamp » dans le menu déroulant « Time Filter field name » car ces ensembles de données con­tien­nent des données de séries tem­po­relles. Cliquez ensuite sur « Create index pattern » comme pour les deux motifs pré­cé­dents.

Étape 4 : parcourir les ensembles de données insérés

Après avoir alimenté votre serveur Kibana avec les ensembles de données, vous pouvez main­te­nant lancer une requête de recherche Elas­tic­search pour re­cher­cher ces données et filtrer les résultats. Pour ce faire, allez dans le menu « Discover » de Kibana et sé­lec­tion­nez le modèle d’index pour votre recherche à l’aide de la petite icône trian­gu­laire dans la barre de menu de gauche. Dans le cadre de ce tutoriel Kibana, nous avons choisi l’ensemble de données de compte (ba*) :

À titre de test, vous pouvez filtrer le bloc de donnés du compte bancaire pour ne voir que les comptes qui répondent à certains critères. Par exemple, pour re­cher­cher spé­ci­fi­que­ment les comptes dont le solde est supérieur à 47 500 et qui ap­par­tien­nent à des personnes âgées de plus de 38 ans, tapez la commande suivante dans la zone de recherche :

balance:>47500 AND age:>38

Discover indique ensuite les entrées des quatre comptes 97, 177, 878 et 916 qui cor­res­pon­dent aux pro­prié­tés sé­lec­tion­nées.

Cliquez sur le bouton « Save » dans la barre de menu su­pé­rieure pour en­re­gis­trer les re­cherches filtrées sous le nom souhaité.

Étape 5 : vi­sua­li­ser les données

Grâce aux pré­pa­ra­tifs effectués jusqu’à présent dans ce tutoriel Kibana, vous êtes main­te­nant en mesure de vi­sua­li­ser les données im­plé­men­tées pour donner vie à votre tableau de bord. L’exemple d’un diagramme cir­cu­laire pour la base de données des comptes bancaires sera créé ici. D’une part, ce diagramme doit montrer quelle partie du total de 1 000 comptes se situe dans certaines tranches de soldes de comptes et, d’autre part, comment la ré­par­ti­tion selon l’âge au sein de ces divisions se présente.

Dans la première étape, ouvrez le menu « Visualize » et cliquez sur « Create a vi­sua­li­za­tion » pour obtenir une liste des types de vi­sua­li­sa­tion dis­po­nibles. Sé­lec­tion­nez ensuite l’option « Pie ».

Au début, vous ne verrez qu’un cercle simple qui résume toutes les entrées de la base de données, puisqu’aucune catégorie n’a encore été définie. Ceux-ci sont également appelés « Buckets » dans Kibana et peuvent être créés sous le point de menu du même nom.

Pour définir d’abord les sections in­di­vi­duelles des soldes de comptes, cliquez sur « Split Slices » et sé­lec­tion­nez « Range » dans le menu déroulant « Ag­gre­ga­tion » :

Sous « Field », re­cher­chez l’entrée « balance » et cliquez dessus, puis cliquez quatre fois sur le bouton « Add Range » pour définir les six ca­té­go­ries de solde de compte suivantes :

0 999
1000 2999
3000 6999
7000 14999
15000 30999
31000 50000

Cliquez ensuite sur « Apply Changes » (l’icône trian­gu­laire), et le diagramme cir­cu­laire montre la ré­par­ti­tion des comptes selon les divisions de solde de compte définies.

Dans la deuxième étape, vous ajoutez un autre cercle au diagramme qui illustre la ré­par­ti­tion des classes d’âge pour les zones de solde des comptes in­di­vi­duels. Pour ce faire, cliquez sur « Add sub-buckets », puis à nouveau sur « Split Slices » et sé­lec­tion­nez « Terms » dans le menu déroulant. Sous « Field », re­cher­chez l’entrée « age » et acceptez les mo­di­fi­ca­tions via « Apply changes ».

Vous pouvez main­te­nant en­re­gis­trer la vi­sua­li­sa­tion très fa­ci­le­ment en utilisant le bouton « Save » situé dans la barre de menu su­pé­rieure.

Étape 6 : organiser le tableau de bord

Le tableau de bord avec Kibana sera également abordé briè­ve­ment dans ce tutoriel, de sorte que vous pourrez créer votre premier tableau de bord de test en utilisant la recherche et la vi­sua­li­sa­tion que vous avez en­re­gis­trées aux étapes 4 et 5. Pour ce faire, sé­lec­tion­nez le tableau de bord dans la na­vi­ga­tion de la page, puis cliquez sur « Create new dashboard », puis sur « Add ». Kibana va main­te­nant lister au­to­ma­ti­que­ment toutes les vi­sua­li­sa­tions sau­ve­gar­dées ou les re­cherches Elas­tic­search :

Cliquez avec le bouton gauche de la souris pour ajouter la vi­sua­li­sa­tion du solde du compte et le résultat de l’exemple de recherche au tableau de bord, après quoi vous pouvez vi­sua­li­ser les deux dans des panneaux séparés dans le tableau de bord :

Vous pouvez désormais modifier les panneaux, par exemple en les re­di­men­sion­nant ou en changeant leur position. Il est de plus possible d’afficher un résultat de vi­sua­li­sa­tion ou de recherche sur tout l’écran ou de la supprimer du tableau de bord. Avec « Inspect », vous pouvez afficher pour de nom­breuses vi­sua­li­sa­tions des in­for­ma­tions sup­plé­men­taires sur les données et les requêtes cor­res­pon­dantes.

Note

Lorsque vous supprimez un panneau du tableau de bord Kibana, la vi­sua­li­sa­tion ou la recherche en­re­gis­trée est conservée.

Aller au menu principal