Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 

Graphite

La base utilisée pour le stockage des données de métrologie est la base Graphite . Le Broker envoit les données au démon carbon, l'accès aux données se fait par le serveur Apache configuré lors de l'installation de Shinken Enterprise .

 

Comment requèter les données

...

N'ayant pas de système d'authentification dans l'API Graphite ,

l'UI interroge l'interface Web qui va interroger l'API Graphite .

 

 

 

 

 

 

 

 

...

Image Removed

 

 

 

 

 

Si il y a plus d'une installation Graphite ?

Dans le cas de plusieurs instances Graphite (comme par royaume par exemple),

l'interface Web va interroger le bon serveur Graphite où l'hôte interrogé est localisé

...

Image Removed

 

 

 

Dans le cas d'un outil tiers (genre grafana)

Dans le cas d'outils tiers qui requêtent directement graphite, par exemple grafana, graphite stoquant les métriques sous formes d'uuid (afin de permettre le renommage

des hôtes/Checks sans perdre les courbes, Graphite va avoir besoin d'accéder à une base mongodb indexant les noms=>uuids.

Cette base est contenue dans la base des SLA. Graphite utilise un fichier pour avoir le paramètre de connexion vers la base mongodb:

Les métriques dans Shinken

Shinken Entreprise effectue un certain nombre de vérifications sur des hôtes et clusters, appelées "checks". Chaque check peut lors de son exécution extraire une donnée de performance qui est ensuite traitée par Shinken. Ces données peuvent être de tous types:

  • Un check "Memory" sur une machine Linux peut par exemple remonter des métriques comme la quantité de mémoire utilisée, de mémoire libre et de mémoire totale
  • Un check sur un switch peut remonter les statistiques de transfert des différentes interfaces réseau
  • Un check sur une application peut par exemple remonter le nombre d'utilisateurs actuellement sur l'application, le nombre de nouveaux utilisateurs sur la journée, etc...

Les métriques sont présentées par des nombres flottants, qui pourront être ensuite consultés sous forme de graphes dans une interface.

Stockage des métriques

Dans Shinken Entreprise, les métriques sont stockées dans une base de données Graphite (https://graphiteapp.org/). 

Les données de métrologie sont enregistrées dans Graphite par l'intermédiaire du module "Graphite-Perfdata", placé sur le Broker. Le Broker envoie les données au démon carbon (partie de Graphite), qui gère le stockage de ces données.

Consultation des métriques

Interface de visualisation

L'accès aux métriques via l'interface de Visualisation est par défaut disponible et ne demande pas de configuration de la part de l'utilisateur.

Les métriques sont accessibles de 2 manières différentes:

Pour accéder aux métriques stockées dans Graphite, Shinken utilise Apache. Lorsqu'un utilisateur dans l'interface de Visualisation demande la visualisation d'une métrique, l'interface Web requête Graphite via Apache pour récupérer la métrique demandée.


Panel

Image Added

Dans le cas d'une architecture complexe avec plusieurs royaumes, il peut y avoir plusieurs serveurs de stockage des métriques. Dans ce cas, l'interface de Visualisation trouve automatiquement le serveur Graphite à interroger pour renvoyer les métriques demandées.


Panel

Image Added


Outils externes

Ouvrir l'accès à Graphite aux outils externes

Par défaut, par mesure de sécurité Graphite est accessible seulement localement. Un serveur externe qui envoie une requête à Graphite se verra refuser l'accès. 

Pour autoriser des serveurs externes à accéder à Graphite, il faut modifier la configuration d'Apache qui est responsable de la mise à disposition de Graphite au monde extérieur:

Code Block
title/etc/httpd/conf.d/graphite.conf
<VirtualHost 127.0.0.1:80>


à remplacer par


Listen PORT
<VirtualHost ip_interface:PORT>

avec:

  • ip_interface à remplacer par l'adresse de l'interface sur laquelle faire l'écoute. Par défaut l'écoute n'est faite que sur l'interface locale (127.0.0.1). Utiliser * pour écouter sur toutes les interfaces
  • PORT: Port d'écoute à utiliser. La directive "Listen" n'est pas obligatoire si le port par défaut 80 est utilisé.

Plus d'informations sont disponibles sur les possibilités de configuration d'Apache sur la page de documentation suivante: https://httpd.apache.org/docs/2.4/en/bind.html

Correspondance ID → Nom de l'élément

Shinken utilise l'UUID de l'élément (hôte/cluster/check) pour l'identification des métriques. Cette identification par un ID unique permet de conserver les métriques lors d'un renommage de l'élément.

Par contre, quand un outil externe (par exemple Grafana) accède à Graphite, il devient très difficile d'associer l'ID au nom de l'élément, ce qui rend l'exploitation des données récupérées par Shinken très fastidieuse.

Pour résoudre ce problème, Shinken possède à disposition une correspondance des UUID et des noms pour pouvoir présenter les noms des éléments au monde extérieur via Graphite au lieu des UUID.


Cette correspondance est contenue dans la base de données Mongo des SLA, dont l'adcès est configuré dans Graphite dans le fichier 

/opt/graphite/conf/mongodb.conf.

...


Nom de clé

...

Valeur par défaut

...

Description

URI

mongodb://localhost/?w=1&fsync=falseURI du serveur

...

Mongo

DATABASE

shinkenNom de la base SLA sur le serveur

...

 

 

 

 

 

 

...

Mongo