Création d'un tableau de bord dans Kibana pour surveiller les journaux

Création d'un tableau de bord dans Kibana pour surveiller les journaux

Bonjour, je m'appelle Eugene, je suis chef d'équipe B2B chez Citymobil. L'une des tâches de notre équipe est de prendre en charge les intégrations pour la commande d'un taxi auprès de partenaires, et afin d'assurer un service stable, nous devons toujours comprendre ce qui se passe dans nos microservices. Et pour cela, vous devez surveiller en permanence les journaux.

Dans Citymobil, nous utilisons la pile ELK (ElasticSearch, Logstash, Kibana) pour travailler avec les journaux, et la quantité de données qui y arrivent est énorme. Trouver des problèmes dans cette masse de requêtes qui peuvent apparaître après le déploiement de nouveau code est assez difficile. Et pour leur identification visuelle, Kibana a une section Tableau de bord.

Il existe de nombreux articles sur Habré avec des exemples de configuration d'une pile ELK pour recevoir et stocker des données, mais il n'y a pas de matériel pertinent sur la création d'un tableau de bord. Par conséquent, je souhaite montrer comment créer une représentation visuelle des données basée sur les journaux entrants dans Kibana.

réglage

Pour que ce soit plus clair, j'ai créé une image Docker avec ELK et Filebeat. Et placé dans un récipient un petit programme en Go, qui pour notre exemple générera des logs de test. Je ne décrirai pas en détail la configuration d'ELK, il y a assez d'écrits à ce sujet sur Habré.

Cloner le référentiel de configuration docker-compose et paramètres ELK, et lancez-le avec la commande docker-compose up. Intentionnellement ne pas ajouter de clé -dpour voir la progression de la pile ELK.

git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up

Si tout est correctement configuré, nous verrons une entrée dans les journaux (peut-être pas immédiatement, le processus de lancement d'un conteneur avec la pile entière peut prendre plusieurs minutes) :

{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}

À localhost:5061 Kibana devrait s'ouvrir.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Création d'un tableau de bord dans Kibana pour surveiller les journaux
La seule chose que nous devons configurer est de créer un modèle d'index pour Kibana avec des informations sur les données à afficher. Pour ce faire, nous allons exécuter une requête curl ou effectuer une série d'actions dans l'interface graphique.

$ curl -XPOST -D- 'http://localhost:5601/api/saved_objects/index-pattern'
    -H 'Content-Type: application/json'
    -H 'kbn-xsrf: true'
    -d '{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'

Création d'un modèle d'index via l'interface graphique
Pour configurer, sélectionnez la section Découvrir dans le menu de gauche et accédez à la page de création de modèle d'index.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
En cliquant sur le bouton "Créer un modèle d'index", on arrive sur la page de création d'index. Dans le champ "Nom du modèle d'index", saisissez "logstash-*". Si tout est correctement configuré, Kibana affichera ci-dessous les index qui relèvent de la règle.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Sur la page suivante, sélectionnez le champ clé avec un horodatage, dans notre cas c'est @timestamp.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Cela fera apparaître la page des paramètres d'index, mais aucune autre action n'est requise de notre part pour le moment.

Création d'un tableau de bord dans Kibana pour surveiller les journaux

Nous pouvons maintenant retourner à la section Découvrir, où nous verrons les entrées du journal.

Création d'un tableau de bord dans Kibana pour surveiller les journaux

Tableau de bord

Dans le menu de gauche, cliquez sur la rubrique Création de tableau de bord et accédez à la page correspondante.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Cliquez sur "Créer un nouveau tableau de bord" et accédez à la page d'ajout d'objets au tableau de bord.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Cliquez sur le bouton "Créer nouveau", et le système vous demandera de sélectionner le type d'affichage des données. Kibana en a un grand nombre, mais nous chercherons à créer une représentation graphique de la "barre verticale" et un "tableau de données" tabulaire. D'autres types de présentation sont configurés de manière similaire. 
Création d'un tableau de bord dans Kibana pour surveiller les journaux
Certains objets disponibles sont étiquetés B et E, ce qui signifie que le format est expérimental ou en phase de test bêta. Au fil du temps, le format peut changer ou disparaître complètement de Kibana.

Barre verticale

Pour l'exemple "Barre verticale", créons un histogramme du rapport des statuts de réponse réussie et non réussie de notre service. A la fin des réglages, on obtient le graphique suivant :

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Nous classerons toutes les demandes avec un statut de réponse < 400 comme réussies et >= 400 comme problématiques.

Pour créer un graphique "Barres verticales", nous devons sélectionner une source de données. Sélectionnez le modèle d'index que nous avons créé précédemment.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Par défaut, un seul graphique solide apparaît après la sélection d'une source de données. Mettons-le en place.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Dans le bloc "Buckets", appuyez sur le bouton "Add", sélectionnez "X-asis" et configurez l'axe X. Mettons de côté les horodatages des entrées dans le journal le long de celui-ci. Dans le champ « Agrégation », sélectionnez « Histogramme de date », et dans le champ « Champ » sélectionnez « @timestamp », en indiquant le champ de l'heure. Laissons "Intervalle minimum" dans l'état "Auto", et il s'ajustera automatiquement à notre affichage. 

Création d'un tableau de bord dans Kibana pour surveiller les journaux
En cliquant sur le bouton "Mettre à jour", nous verrons un graphique avec le nombre de requêtes toutes les 30 secondes.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Configurons maintenant les colonnes le long de l'axe Y. Nous affichons maintenant le nombre total de requêtes dans l'intervalle de temps sélectionné.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Changeons la valeur "Aggregation" en "Sum Bucket", ce qui nous permettra de combiner les données pour les requêtes réussies et non réussies. Dans le bloc Bucket -> Aggregation, sélectionnez l'agrégation par "Filters" et paramétrez le filtrage par "statusCode >= 400". Et dans le champ "Étiquette personnalisée", nous indiquons notre nom de l'indicateur pour un affichage plus compréhensible dans la légende sur le graphique et dans la liste générale.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
En cliquant sur le bouton "Mettre à jour" sous le bloc des paramètres, nous obtiendrons un graphique avec les demandes de problèmes.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Si vous cliquez sur le cercle à côté de la légende, une fenêtre apparaîtra dans laquelle vous pourrez changer la couleur des colonnes.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Ajoutons maintenant des données sur les requêtes réussies au graphique. Dans la section "Metrics", cliquez sur le bouton "Add" et sélectionnez "Y-axis".

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Dans la métrique créée, on fait les mêmes paramétrages que pour les requêtes erronées. Ce n'est que dans le filtre que nous spécifions "statusCode < 400".

Création d'un tableau de bord dans Kibana pour surveiller les journaux
En changeant la couleur de la nouvelle colonne, on obtient un affichage du ratio de requêtes problématiques et réussies.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
En cliquant sur le bouton "Enregistrer" en haut de l'écran et en spécifiant le nom, nous verrons le premier graphique sur le tableau de bord.

Création d'un tableau de bord dans Kibana pour surveiller les journaux

Table de données

Considérons maintenant la vue tabulaire "Tableau de données". Créons un tableau avec une liste de toutes les URL qui ont été demandées et le nombre de ces demandes. Comme dans l'exemple de la barre verticale, nous sélectionnons d'abord une source de données.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Après cela, un tableau avec une colonne s'affichera à l'écran, indiquant le nombre total de demandes pour l'intervalle de temps sélectionné.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Nous ne modifierons que le bloc "Buckets". Cliquez sur le bouton "Ajouter" et sélectionnez "Fractionner les lignes".

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Dans le champ "Agrégation", sélectionnez "Termes". Et dans le champ "Champ" apparu, sélectionnez "url.keyword".

Création d'un tableau de bord dans Kibana pour surveiller les journaux
En spécifiant la valeur "Url" dans le champ "Étiquette personnalisée" et en cliquant sur "Mettre à jour", nous obtiendrons le tableau souhaité avec le nombre de requêtes pour chacune des URL pour la période sélectionnée.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
En haut de l'écran, cliquez à nouveau sur le bouton "Enregistrer" et indiquez le nom de la table, par exemple Urls. Revenons au tableau de bord et voyons les deux vues créées.

Création d'un tableau de bord dans Kibana pour surveiller les journaux

Travailler avec le tableau de bord

Lors de la création du tableau de bord, nous définissons uniquement les paramètres de la vue principale dans les paramètres de l'objet d'affichage. Cela n'a aucun sens de spécifier des données pour les filtres dans les objets, par exemple, "plage de dates", "filtrage par useragent", "filtrage par pays de la demande", etc. Il est beaucoup plus pratique de spécifier la période souhaitée ou de définir le filtrage nécessaire dans le panneau de requête, situé au-dessus des objets.

Création d'un tableau de bord dans Kibana pour surveiller les journaux
Les filtres ajoutés sur ce panneau seront appliqués à l'ensemble du tableau de bord et tous les objets d'affichage seront reconstruits conformément aux données filtrées réelles.

Conclusion

Kibana est un outil puissant qui vous permet de visualiser n'importe quelle donnée de manière pratique. J'ai essayé de montrer le réglage des deux principaux types d'affichage. Mais d'autres types sont configurés de manière similaire. Et l'abondance de paramètres que j'ai laissés "dans les coulisses" vous permettra de personnaliser de manière très flexible les graphiques en fonction de vos besoins.

Source: habr.com

Ajouter un commentaire