Kibana pour Elasticsearch

La coupe du monde nous a fait vibrer une bonne partie de l’été, et c’est tout naturellement que j’ai choisi cette thématique pour illustrer cet article sur Kibana. Kibana est un outil open-source dédié à la restitution et l’analyse de données en temps réel et qui fonctionne exclusivement avec ElasticSearch. L’idée ici est de tout d’abord synchroniser Elasticsearch avec Twitter afin de mesurer ensuite, à l’aide des fonctionnalités de Kibana, la popularité de certains joueurs sur ce réseau social.

Elasticsearch

Présentation rapide d’Elasticsearch

Elasticsearch est un moteur de recherche Open source basé sur la librairie Apache Lucene. A l’aide, en particulier, d’un système distribué de nœuds et de clusters, il permet de stocker, rechercher et analyser de très gros volumes de données.

Les données intégrées à Elasticsearch peuvent provenir d’une base relationnelle (par exemple Oracle) comme d’une base NoSQL (par exemple MongoDB).

La récupération des données en mode PULL

Dans notre cas, nous avons peuplé Elasticsearch à l’aide de plusieurs rivers. Une river (ou rivière) est un service associé à Elasticsearch permettant de récupérer des données en mode PULL depuis une base de données externe.

3 rivers sont créées, chacune se connectant à Twitter et filtrant respectivement sur les messages « Messi », « Benzema » et « Neymar ».

Remarque : il a fallu avant cela créer un compte et une application twitter afin d’obtenir des clés d’authentification. De plus le plugin « river-twitter » a été installé afin de faciliter la connexion.
Exemple de création de la river tweets_neymar :

curl –xput ‘http://localhost:9200/_river/tweets_neymar/_meta’ –d ‘{
   "type" : "twitter",
   "twitter" : {
       "oauth" : {
           "consumer_key" : "***",
           "consumer_secret" : "***",
           "access_token" : "***",
           "access_token_secret" : "***"
       },
       "filter" : {
           "tracks" : "neymar"
       }
   },
   "index" : {
       "index" : "tweets_neymar",
       "type" : "tweets_neymar",
       "bulk_size" : 500
   }
}’

 

A l’aide du plugin head, il est possible de visualiser le contenu d’Elasticsearch au travers d’une console. Voici donc un aperçu des données après chargement :

Restituer les données avec Kibana

Présentation

Kibana est un outil de restitution et d’analyse de données. Il permet de visualiser et d’agréger sous différentes formes des données issues de la base d’Elasticsearch.

Installation et configuration

Techniquement, Kibana est une application web développée en Javascript pur et donc déployable sur un simple serveur HTTP du type Apache HTTP Server.

En pré-requis, Elasticsearch doit être lancé.

  • Décompresser l’archive du projet Kibana dans le répertoire web du serveur HTTP (« htdocs » pour Apache HTTP Server).
  • Ouvrir le fichier de configuration config.js à la racine de ce répertoire et vérifier ou modifier la ligne correspondant à l’accès à Elasticsearch :
    elasticsearch: [URL]:[port]

    (Par défaut : elasticsearch: « http:// »+window.location.hostname+ »:9200″)

  • Enfin, lancer ou relancer le serveur HTTP et ouvrir un navigateur en saisissant l’URL complète du serveur (par exemple : http://localhost:80)

Dashboards

Par défaut Kibana propose un dashboard permettant d’utiliser des panels graphiques prédéfinis (camemberts, tableaux). Il est surtout intéressant de définir son propre dashboard.

Dashboard par défaut :

Exemple de dashboard personnalisé :

Dashboard personnalisé avec Kibana

Avantage majeur de Kibana : toutes les informations chiffrées sont affichées sur les tableaux de bord de manière très visuelle. Pour ajouter un panel, il suffit de cliquer sur le lien (+) (glisser la souris à gauche de l’écran sur le petit rectangle vert). Ensuite choisir le style de graphique (ici « terms » de type « bar » pour l’histogramme ou « pie » pour les camemberts) et enfin choisir un champ (« _type » ou « language » ici) puis sauvegarder.

Il est également possible de filtrer les données. Pour cela, ajouter une requête en fonction d’un ou plusieurs champs directement dans la zone Query. Par exemple, saisir « retweet_count > 100 ».

On obtient :

 

Suivre la e-réputation de votre marque

Sa simplicité d’utilisation est l’un des points fort de Kibana. L’utilisateur a simplement besoin de connaître la structure des données (champs et type) pour mettre en place ses propres dashboards une fois l’environnement installé et configuré.

Dans cet article, j’ai pris le parti de m’inspirer de l’actualité sportive pour ériger un exemple footballistique. On peut facilement imaginer une multitude d’autres possibilités inspirées de l’actualité ou de votre entreprise en analysant, par exemple, l’e-reputation d’une marque sur Twitter.

A vous de jouer !

Consultant Java/JavaEE

0 commentaires

votre commentaire

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Inscription newsletter

Ne manquez plus nos derniers articles !