Explication

Le module Graphite-Perfdata permet d'envoyer et stocker les métriques dans un serveur Graphite (via Carbon). Il est possible de modifier des paramètres (comme l'adresse du serveur Graphite ou son port) via le fichier de configuration ci-dessous.

Configuration

Voici le fichier CFG de configuration présent dans : /etc/shinken/modules/graphite.cfg

#===============================================================================
# Graphite-Perfdata
#===============================================================================
# Daemons that can load this module:
# - broker
# This module send metrics into a graphite (carbon) server
#===============================================================================


define module {

# Shinken Enterprise. Lines added by import core. Do not remove it, it's used by Shinken Enterprise to update your objects if you re-import them.
    _SE_UUID             core-module-7d9e22e45adc11e5b3b3080027f08538
    _SE_UUID_HASH        2136b2756b5160cfad074e796ebc373e
# End of Shinken Enterprise part


    #======== Module identity =========
    # Module name. Must be unique
    module_name                 Graphite-Perfdata

    # Module type (to load module code). Do not edit.
    module_type                 graphite_perfdata



    #======== Graphite address =========
    # host:  graphite server address (ip or fqdn)
    host                        localhost

    # port:  tcp port of the graphite server
    port                        2003



    #======== realm filtering =========
    # By default, this module will save metrics from all realm and subrealms of the broker realm.
    # You can use realm_store_only to save olly the realm you want into the graphite server
    #realm_store_only           Realm1, Realm2, Realm3

}



Précisions techniques sur le fonctionnement de Graphite

Droits et utilisateurs

Pour stocker les métriques récoltées depuis les éléments supervisés, Shinken Entreprise utilise Graphite. 

Pour la lecture des métriques, Graphite se base sur Apache pour fournir un service Web facilement utilisable par d'autres logiciels. Pour avoir le droit de lire les métriques, il faut alors que le dossier de stockage des métriques /opt/graphite/storage/whisper et ses fils soient possédés par l'utilisateur et le groupe Apache (apache:apache). 

Lors de manipulation manuelles sur ces emplacements disques parfois volumineux, il arrive que les droits de /opt/graphite/storage/whisper soient modifiés par le système, ce qui empêche la lecture des métriques par Graphite et par conséquent par Shinken (permission refusée par le système).

Les commandes suivantes permettent de rétablir les droits nécessaires:

chmod -R 0755 /opt/graphite/storage/ /var/log/graphite
chown -R apache:apache /opt/graphite/storage/ /var/log/graphite


Utilisation de Graphite avec des outils de visualisation externes

Shinken enregistre les métriques en utilisant un identifiant interne relatif à l'hôte et au check qui a remonté la métrique. Cette utilisation d'un identifiant interne permet le renommage des éléments dans Shinken sans occasionner de perte de métriques dans Graphite.

Lors de l'utilisation d'outils externes qui s'interfacent avec Graphite, il faut pouvoir faire le lien entre le nom des hôtes et checks et l'identifiant interne à Shinken. Cette correspondance est effectuée par la base Mongodb qui héberge les données SLA.

Dans une configuration avec un seul serveur, il n'y aucune configuration supplémentaire à effectuer. Dans une architecture Shinken qui comporte plusieurs machines avec des rôles séparés, il faut potentiellement modifier le fichier de configuration /opt/graphite/conf/mongodb.conf pour faire modifier l'adresse de la base Mongo utilisée et spécifier l'adresse utilisée par le module SLA (/etc/shinken/modules/sla.cfg par défaut).