Elasticsearch, Kibana et Logstash (ELK) sont une excellente boîte à outils pour collecter et visualiser de grandes quantités de données.
Journaux, magazines, événements - tout cela est assez facile à assembler, à cartographier et à afficher dans une seule boîte à outils. Logstash mappe les données, Elasticsearch les stocke et Kibana les affiche sous forme de graphiques.
Avec toute la puissance de cet ensemble, bien sûr, il y a des tâches qui ne peuvent pas être réalisées grâce aux fonctionnalités intégrées.
Par exemple, Kibana affiche parfaitement les données dans une seule table (index), mais dès qu'il s'agit de combiner différents index en un seul échantillon, il lève impuissant la main.
Et la seule façon de résoudre le problème dans ce cas est de décharger les données de Kibana et de les combiner dans n'importe quel autre outil, par exemple, dans Excel.
Un exemple simple. Imaginez que votre arbre de Noël (ELK) collecte et stocke les événements Jira - pour tout changement dans l'une des tâches du tracker de tâches.
Dans ce cas, l'index Elasticsearch stockera plusieurs enregistrements pour une tâche:

Si vous souhaitez créer un calendrier d'événements Jira montrant la conversion des tâches par état, alors avec Kibana, vous ne pourrez probablement pas le faire. En raison des particularités de noSQL, vous aurez besoin de tous les événements d'une tâche pour les «conduire» dans un enregistrement Elasticsearch.
Il est assez difficile de le faire sans impliquer les développeurs et réécrire les configurations de Logstash.
La première chose qui vous vient à l'esprit est de décharger les données de Kibana pour les tordre manuellement dans Excel standard.
Mais la recherche du bouton de téléchargement, à votre grande surprise, échouera, surtout si Kibana est une entreprise et a des limitations sur le module Reporting:

Alors, que se passe-t-il, il y a des données, mais vous ne pouvez pas les utiliser?
Il y a en fait une voie secrète. Grâce au rapport de tableau standard Data Table.
Dans l'onglet «Visualiser», vous pouvez créer de nombreux rapports différents, mais uniquement dans le tableau de données se trouve un bouton pour télécharger les données au format csv.

Si vous travaillez avec Kibana, vous percevez probablement le tableau de données comme un agrégat, c'est-à-dire un tableau dans lequel vous pouvez calculer le nombre total de quelque chose, mais il est impossible de répertorier tous les enregistrements. Cependant, ce n'est pas entièrement vrai.
Le tableau a une fonction merveilleuse - Nombre unique (pour compter le nombre d'éléments uniques), que vous pouvez utiliser pour afficher la liste complète des enregistrements dans le tableau.
Cliquez sur "+" dans l'onglet Visualiser, sélectionnez "Tableau de données" et spécifiez l'index à partir duquel vous souhaitez décharger. Dans les paramètres du tableau, spécifiez l'agrégat - «Nombre unique» et juste en dessous du champ avec un ID unique.

Si vous lancez le recomptage, Kibana affichera le nombre d'entrées uniques dans l'index.
Comment transformer un numéro en une liste d'enregistrements? Très simple - en utilisant le bouton "Split Rows"
Cliquez dessus et sélectionnez «Termes» comme un agrégat (ventilation par valeur de champ).
Il s'agit d'un point clé: dans «Champ», spécifiez un champ avec un ID d'enregistrement unique.
Et voilà, un seul chiffre lors du recomptage d'une table se transforme par magie en table!
Le voici, le moment de vérité.
Qu'avez-vous fait? En bref, vous avez dit à Kibana que vous souhaitez compter le nombre d'enregistrements uniques et avez également indiqué le regroupement des enregistrements par attribut, à savoir, par les valeurs uniques du champ que vous avez spécifié.
Maintenant, Kibana compte séparément le nombre d'éléments dans chaque groupe. comme valeurs vous avez spécifié un ID d'enregistrement unique, Kibana a commencé à compter le nombre d'enregistrements uniques groupés par un ID unique, c.-à-d. en fait, à côté de chaque ligne du tableau, la métrique «Compte unique» sera égale à «1».
Vous avez obtenu le résultat souhaité - affiché tous les enregistrements et calculé en outre combien de lignes vous avez dans l'index avec le même ID.

Maintenant, si les colonnes du tableau ne suffisent pas, ajoutez des champs supplémentaires en utilisant le bouton "Ajouter des sous-compartiments" puis "Fractionner les lignes".

Partout, sélectionnez «Termes» comme agrégat et spécifiez les noms des champs que vous souhaitez ajouter au tableau.

C'est fait. Vous avez reçu un téléchargement complet de l'index.
Il ne reste plus qu'à enregistrer la visualisation et à cliquer sur le bouton «Exporter brut» ou «Exporter formaté».

Raw décharge tout ce qui est brut et Formaté reformate les données en fonction des paramètres régionaux définis dans Kibana.
C’est tout.
Comme vous pouvez le voir, le téléchargement à partir de Kibana vers une personne simple qui ne connaît pas la programmation est toujours possible, bien que la solution ne se trouve pas à la surface.
J'espère que ce petit truc me facilitera la vie pour quelqu'un et me donnera l'opportunité d'analyser rapidement les données sans impliquer les développeurs dans les téléchargements.
Si mon expérience vous a aidé, je serai heureux de voir votre commentaire sur cet article.