Kibana - Introduction à Elk Stack

Kibana est un outil de visualisation open source principalement utilisé pour analyser un grand volume de journaux sous forme de graphique linéaire, graphique à barres, camemberts, cartes thermiques, etc. Kibana fonctionne en synchronisation avec Elasticsearch et Logstash qui forment ensemble le soi-disant ELK empiler.

ELK signifie Elasticsearch, Logstash et Kibana. ELK est l'une des plates-formes de gestion de journaux les plus utilisées dans le monde pour l'analyse des journaux.

Dans la pile ELK -

  • Logstashextrait les données de journalisation ou d'autres événements à partir de différentes sources d'entrée. Il traite les événements et les stocke ultérieurement dans Elasticsearch.

  • Kibana est un outil de visualisation, qui accède aux journaux d'Elasticsearch et est capable d'afficher à l'utilisateur sous forme de graphique linéaire, graphique à barres, camemberts, etc.

Dans ce tutoriel, nous travaillerons en étroite collaboration avec Kibana et Elasticsearch et visualiserons les données sous différentes formes.

Dans ce chapitre, voyons comment travailler ensemble avec la pile ELK. En outre, vous verrez également comment -

  • Chargez les données CSV de Logstash vers Elasticsearch.
  • Utilisez les indices d'Elasticsearch dans Kibana.

Charger les données CSV de Logstash vers Elasticsearch

Nous allons utiliser des données CSV pour télécharger des données à l'aide de Logstash vers Elasticsearch. Pour travailler sur l'analyse des données, nous pouvons obtenir des données du site Web kaggle.com. Le site Kaggle.com a tous les types de données téléchargées et les utilisateurs peuvent l'utiliser pour travailler sur l'analyse des données.

Nous avons pris les données country.csv d'ici: https://www.kaggle.com/fernandol/countries-of-the-world. Vous pouvez télécharger le fichier csv et l'utiliser.

Le fichier csv que nous allons utiliser contient les détails suivants.

Nom de fichier - countriesdata.csv

Colonnes - "Pays", "Région", "Population", "Zone"

Vous pouvez également créer un fichier csv factice et l'utiliser. Nous allons utiliser logstash pour vider ces données de countriesdata.csv à ElasticSearch.

Démarrez elasticsearch et Kibana dans votre terminal et faites-le fonctionner. Nous devons créer le fichier de configuration pour logstash qui aura des détails sur les colonnes du fichier CSV ainsi que d'autres détails comme indiqué dans le fichier logstash-config donné ci-dessous -

input {
   file {
      path => "C:/kibanaproject/countriesdata.csv"
      start_position => "beginning"
      sincedb_path => "NUL"
   }
}
filter {
   csv {
      separator => ","
      columns => ["Country","Region","Population","Area"]
   }
   mutate {convert => ["Population", "integer"]}
   mutate {convert => ["Area", "integer"]}
}
output {
   elasticsearch {
      hosts => ["localhost:9200"]
      => "countriesdata-%{+dd.MM.YYYY}"
   }
   stdout {codec => json_lines }
}

Dans le fichier de configuration, nous avons créé 3 composants -

Contribution

Nous devons spécifier le chemin du fichier d'entrée qui dans notre cas est un fichier csv. Le chemin où le fichier csv est stocké est donné dans le champ chemin.

Filtre

Aura le composant csv avec séparateur utilisé qui dans notre cas est une virgule, ainsi que les colonnes disponibles pour notre fichier csv. Comme logstash considère toutes les données entrantes sous forme de chaîne, si nous voulons qu'une colonne soit utilisée comme un entier, float doit être spécifié en utilisant mutate comme indiqué ci-dessus.

Production

Pour la sortie, nous devons spécifier où nous devons placer les données. Ici, dans notre cas, nous utilisons elasticsearch. Les données à fournir à elasticsearch sont les hôtes sur lesquels il s'exécute, nous l'avons mentionné comme localhost. Le champ suivant est l'index auquel nous avons donné le nom de pays -currentdate. Nous devons utiliser le même index dans Kibana une fois que les données sont mises à jour dans Elasticsearch.

Enregistrez le fichier de configuration ci-dessus sous logstash_countries.config . Notez que nous devons donner le chemin de cette configuration à la commande logstash à l'étape suivante.

Pour charger les données du fichier csv vers elasticsearch, nous devons démarrer le serveur elasticsearch -

Maintenant, cours http://localhost:9200 dans le navigateur pour confirmer si elasticsearch fonctionne correctement.

Nous avons elasticsearch en cours d'exécution. Allez maintenant sur le chemin où logstash est installé et exécutez la commande suivante pour télécharger les données vers elasticsearch.

> logstash -f logstash_countries.conf

L'écran ci-dessus montre le chargement des données du fichier CSV vers Elasticsearch. Pour savoir si nous avons créé l'index dans Elasticsearch, nous pouvons le vérifier comme suit -

Nous pouvons voir l'index countrydata-28.12.2018 créé comme indiqué ci-dessus.

Le détail de l'indice - pays-28.12.2018 est le suivant -

Notez que les détails de mappage avec des propriétés sont créés lorsque les données sont téléchargées de logstash vers elasticsearch.

Utiliser les données d'Elasticsearch dans Kibana

Actuellement, Kibana fonctionne sur localhost, port 5601 - http://localhost:5601. L'interface utilisateur de Kibana est affichée ici -

Notez que nous avons déjà Kibana connecté à Elasticsearch et que nous devrions pouvoir voir index :countries-28.12.2018 à l'intérieur de Kibana.

Dans l'interface utilisateur de Kibana, cliquez sur l'option du menu de gestion sur le côté gauche -

Maintenant, cliquez sur Gestion des index -

Les indices présents dans Elasticsearch sont affichés dans la gestion des index. L'indice que nous allons utiliser à Kibana est countriesdata-28.12.2018.

Ainsi, comme nous avons déjà l'index elasticsearch dans Kibana, nous allons ensuite comprendre comment utiliser l'index dans Kibana pour visualiser des données sous forme de camembert, de graphique à barres, de graphique en courbes, etc.