Utiliser Grafana avec Elasticsearch (tutoriel)

introduction

Dans cet article, nous allons parcourir le processus étape par étape d’intégration de Grafana à une instance Elasticsearch, et effectuer quelques requêtes.

Grafana

Grafana est un outil de visualisation très polyvalent. Il est capable de lire des données à partir d’une variété de sources de données et de tracer avec de nombreuses options de visualisation différentes telles que des graphiques, des jauges, des cartes du monde, des cartes thermiques, etc.

Elasticsearch

Elasticsearch est un magasin de données distribué open source pour l’analyse et la recherche de données. il utilise une structure de document basée sur JSON pour stocker et indexer les données. Il utilise une structure de données appelée index inversé pour permettre une recherche très rapide sur les données stockées. De nombreuses entreprises utilisent Elasticsearch pour optimiser leurs recherches dans leurs bases de données.

Prise en charge d’elasticsearch dans grafana

La prise en charge d’Elasticsearch dans Grafana est intéressante, l’un des principaux cas d’utilisation d’Elasticsearch est le stockage de données et de métriques d’événements.Il est naturel qu’un outil comme Grafana soit utilisé pour les visualiser.

Dans cet article, nous allons parcourir le processus étape par étape d’intégration de Grafana à une instance Elasticsearch, et effectuer quelques requêtes.

Installation de grafana et d’elasticsearch

Nous utiliserons docker pour mettre en place un environnement de test pour Grafana et Elasticsearch. Nous utiliserons les images officielles du docker disponibles sur :

https://hub.docker.com/r/grafana/grafana/

https://hub.docker.com/_/elasticsearch

Voici un fichier docker-compose très simple qui démarre Grafana, Elasticsearch .

version: '3'
Services:
 
  grafana:
    image: grafana/grafana
    ports:
      - 3000:3000
 
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.0.1
    container_name: elasticsearch
    environment:
      - discovery.type=single-node
      - http.port=9200
      - http.cors.enabled=true
      - http.cors.allow-origin=http://localhost:1358,http://127.0.0.1:1358
      - http.cors.allow-headers=X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
      - http.cors.allow-credentials=true
      - bootstrap.memory_lock=true
      - 'ES_JAVA_OPTS=-Xms512m -Xmx512m'
    ports:
      - '9200:9200'
      - '9300:9300'
    # elasticsearch browser

 

  
Après avoir exécuté ce fichier docker-compose à l’aide de docker-compose up -d , accédez à http://localhost:9200 pour vérifier qu’Elasticsearch est opérationnel. La sortie doit être similaire à ci-dessous.

indéfini

Nous vérifierons que Grafana est opérationnel en allant sur http://localhost:3000 . Les informations d’identification par défaut sont admin/admin

indéfini

Maintenant, nous allons importer les exemples de données dans Elasticsearch. Nous suivrons simplement les étapes sur le site officiel d’Elasticsearch pour charger les données logs.json dans Elasticsearch.

importer les exemples de données

Concrètement, nous exécuterons les commandes suivantes :

1. Nous allons télécharger le fichier logs.jsonl depuis les serveurs Elastic :

curl -O https://download.elastic.co/demos/kibana/gettingstarted/7.x/logs.jsonl.gz

2. Décompressez le fichier :

gunzip logs.jsonl.gz

3. téléchargez sur notre instance Elasticsearch :

curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/_bulk?pretty' --data-binary @logs.jsonl

Maintenant, pour la partie passionnante. Nous allons connecter la source de données Elasticsearch à Grafana et créer des visualisations par-dessus.

Rendez-vous sur Grafana à l’ adresse http://localhost:3000 et ajoutez une source de données de type Elasticsearch.

Remarque : l’URL sera http://elasticsearch:9200 si vous utilisez docker comme décrit dans cet article.

Pour le conteneur Grafana, l’emplacement d’Elasticsearch est http://elasticsearch:9200 et non http://127.0.0.1:9200 , comme vous pouvez vous y attendre.

La version serait 7.0+, et nous définirons le nom du champ Time comme @timestamp .

indéfini

Créons maintenant un tableau de bord Grafana simple et ajoutons un graphique simple. C’est assez simple. La partie délicate consiste à configurer la source de données et à fournir la requête.

Nous allons faire une visualisation de la RAM moyenne de la machine à partir des données du journal. Dans la liste déroulante de la requête, choisissez Elasticsearch comme source de données, et nous utiliserons machine.ram comme métrique moyenne, comme indiqué ci-dessous :
 

grafana query

Enregistrez la visualisation et nous choisirons la plage de temps personnalisée dans la case en haut à droite. 

Nos données de journal contiennent des entrées du mois de mai 2015. La configuration sur cette plage horaire nous donne la visualisation suivante :

grafana graphe

J’ajouterai la visualisation pour les octets moyens, et notre tableau de bord Grafana ressemblera à ceci :

graphe2

Conclusion

Merci d’avoir lu cet article, vous pouvez nous suivre sur les reseaux pour d’autres bonnes idées et informations, et vous pouvez lire notre article sur Comment surveiller votre cluster Kubernetes avec Prometheus et Grafana

About oussama abai

Laisser un commentaire

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

Résoudre : *
4 × 19 =