Le modèle shinken-broker-module-metrology-writer vous permet de superviser un hôte hébergeant le module Graphite-Perfdata d'un démon broker.
Modèle d'hôte correspondant : shinken-broker-module-metrology-writer.
Afin de superviser le module Graphite-Perfdata d'un démon Broker, le modèle shinken-broker-module-metrology-writer appliqué à votre hôte, attachera un check qui vérifiera la santé et la performance de ce module. Un check shinken-broker-module-metrology-writer est créé pour chaque module webui présent sur le démon broker de l'élément supervisé.
Le modèle est paramétrable via des données fournies par le modèle.
Les données sont les suivantes :
| Nom de la donnée | Description | Valeur par défaut | Hérité d'un autre modèle ou locale |
|---|---|---|---|
| BROKER_PORT | Port utilisé pour établir la connexion avec le broker | 7772 | Locale |
| MODULE_METROLOGY_LIST | Liste de Broker (Multi-démon) | broker-master$($_HOSTBROKER_PORT$)$ | Locale - Duplicate For Each |
| CHECK_SHINKEN_TIMEOUT | Timeout utilisé pour établir la connexion avec le broker | 3 | shinken |
| SHINKEN_PROTOCOL | Protocole utilisé pour se connecter au serveur graphite | http | shinken |
| SSH_KEY | Clé SSH utilisée pour se connecter au serveur graphite | $SSH_KEY$ | Locale |
| SSH_KEY_PASSPHRASE | Passphrase de la clé SSH | $SSH_KEY_PASSPHRASE$ | Locale |
| SSH_PORT | Port SSH des serveurs graphite | $SSH_PORT$ | Locale |
| SSH_USER | Utilisateur ssh des serveurs graphite | $SSH_USER$ | Locale |
Le SSH est utilisé pour se connecter au serveur graphite afin de vérifier que le processus indiqué est bien en cours d'exécution et que le serveur dispose d'assez d'espace de stockage. |
Les données de métrologie sont stockées seulement un un carbon-cache.
Il s'agit de la configuration avec laquelle Shinken est livrée.
La charge du module est calculée à partir du temps de traitement utilisé par rapport au temps d’exécution que le module dispose pour traiter les données. |
| |
Lorsque le service Graphite est configuré comme un relais vers d'autres nœuds de stockage, le check vérifie l'état du relais vers lequel le module Graphite-Perfdata envoie les métriques ; il se connecte également sur les nœuds vers lesquels le relais Graphite relaie les métriques.
Veuillez vous référer à la page Haute disponibilité de la base de métrologie (Graphite) pour la mise en place de cette architecture.
Le check donne
Dans l'exemple ci-contre, le module envoie ses données à un relais ( 192.168.1.58:2013 ), qui transmet les données à deux nœuds "cache" :
Les hôtes composant l'architecture Graphite sont automatiquement ajoutés à votre configuration par le listener Shinken ( voir Visualiser l'architecture de son installation Shinken - Présentation détaillée, où cette fonctionnalité est décrite en bas de page ). |
Pour chaque nœud d'un carbon-relay , il est possible d'avoir plus de détails sur son état en allant vérifier le résultats des checks Shinken Graphite Status pour chaque nœud correspondant. Ces checks sont présents sur des hôtes possédant le modèle d'hôte shinken-graphite.
|
Une fois les hôtes ajoutés par l'export de l'architecture, les checks Shinken Graphite Status donnent les informations suivantes sur les hôtes :
carbon-cache dispose de droits suffisants pour écrire sur le disque.carbon-cache.carbon-cache.Remarque: Il est possible de changer le type de cache utilisé, pensez à changer les variables GRAPHITE_CACHE_NAME par le nom du service de votre cache ( ou relay ) dans les hôtes concernés.
Dans le cas du relay, c'est la variable GRAPHITE_RELAY_NAME qu'il faut changer (valeurs par défaut respectives : carbon-cache et carbon-relay).
Le check Shinken Graphite Status fait appel à deux services pour récupérer les données à afficher :
carbon-cache : On a besoin de savoir si il peut recevoir les métriques.shinken-gatherer : Utilisé pour avoir des informations sur l'utilisation ( lecture & écriture ) du disque de l'hôte.Pour vérifier l'état de ces services
Si un service n'est pas trouvé, une solution peut être de tenter de le relancer sur l'hôte en question à l'aide des commandes suivante :
Relancer le shinken-gatherer :
service shinken-gatherer restart
Relancer le carbon-cache :
service carbon-cache restart
Remarque: Le check utilise le nom des services pour vérifier leurs états. Si un service n'est pas trouvé, il est possible que les noms indiqués dans les variables GRAPHITE_CACHE_NAME et GRAPHITE_RELAY_NAME des hôtes ne soient pas ceux des services (en fonction des implémentations utilisées).
Le check vérifie aussi que l'utilisateur "apache" possède les droits de lecture sur les métriques.
Les checks du module Graphite-Perfdata peuvent être configurés via des données fournies par le modèle.
Les données suivantes sont disponibles :
| Nom de la donnée | Decription | Valeur par défaut | Hérité du modèle d'hôte ou locale |
|---|---|---|---|
| ADDRESS | Adresse de l'hôte | localhost | Hérité du modèle d'hôte |
| SSH_USER | Utilisateur utilisé pour la connexion SSH pour la vérification des services | shinken | Donnée globale |
| SSH_PORT | Port SSH de l'hôte | 22 | Donnée globale |
| SSH_KEY | Chemin ( relatif ou absolu ) vers la clé privée à utiliser pour la connexion SSH | ~/.ssh/id_rsa | Donnée globale |
| SSH_KEY_PASSPHRASE | Mot de passe de la clé privée SSH. | '' | Donnée globale |
| GRAPHITE_PORT | Port utilisé pour la connexion au Graphite. | 2003 | Hérité du modèle d'hôte |
| GRAPHITE_DATA_LOCATION | Emplacement des données sur les serveurs graphite | /opt/graphite/storage/whisper | Locale |
| GRAPHITE_CACHE_NAME | Nom du démon du cache ( Service ) | carbon-cache | Locale |
| GRAPHITE_RELAY_NAME | Nom du démon du relay ( Service ) | carbon-relay | Locale |
| GRAPHITE_STORAGE_CRITICAL | Limite en % pour passer le statut du check en critique lorsque l'espace de stockage atteint cette limite | 95 | Locale |
| GRAPHITE_STORAGE_WARNING | Limite en % pour passer le statut du check en avertissement lorsque l'espace de stockage atteint cette limite | 85 | Locale |
| GRAPHITE_USER | Utilisateur de graphite pour vérifier que les droits sont corrects | apache | Locale |
| GRAPHITE_DISKS_LOCATION | Filtre sur le nom du disque. Si une valeur est indiquée, seul ce disque sera pris en compte pour la vérification des I/O disques. | Absente, car c'est une donnée sans valeur par défaut. Il faut la rajouter dans les données locales pour l'utiliser |
Les ports et adresses des serveurs hébergeant le broker sont utilisés pour connaître l'état des modules Graphite-Perfdata (écriture) et WebUI (lecture). |
| Nom du check | Commande du check | Ligne de commande |
|---|---|---|
| Broker - $KEY$ - Module Metrology Writer | check_shinken_broker_module_metrology_writer!$VALUE1$ | $PLUGINSDIR$/check_shinken_module_metrology_writer.py -H "$HOSTADDRESS$" -p "$ARG1$" --shinkenversion "$SHINKENVERSION$" -P "$_HOSTSSH_PORT$" -i "$_HOSTSSH_KEY$" -u "$_HOSTSSH_USER$" -r "$_HOSTSSH_KEY_PASSPHRASE$" -d "$_HOSTGRAPHITE_DATA_LOCATION$" -U "$_HOSTGRAPHITE_USER$" -D "$_HOSTGRAPHITE_DISKS_LOCATION$" -n "$_HOSTGRAPHITE_PROCESS_NAME$" -w "$_HOSTGRAPHITE_STORAGE_WARNING$" -c "$_HOSTGRAPHITE_STORAGE_CRITICAL$" --timeout "$_HOSTCHECK_SHINKEN_TIMEOUT$" |
| Shinken Graphite Status | check_shinken_graphite | $PLUGINSDIR$/check_shinken_graphite.py -H "$HOSTADDRESS$" -u "$_HOSTSSH_USER$" -p "$_HOSTSSH_PORT$" -i "$_HOSTSSH_KEY$" -P "$_HOSTSSH_KEY_PASSPHRASE$" -s "$_HOSTGRAPHITE_PORT$" -d "$_HOSTGRAPHITE_DATA_LOCATION$" -U "$_HOSTGRAPHITE_USER$" -w "$_HOSTGRAPHITE_STORAGE_WARNING$" -c "$_HOSTGRAPHITE_STORAGE_CRITICAL$" -n "$_HOSTGRAPHITE_CACHE_NAME$" -R "$_HOSTGRAPHITE_RELAY_NAME$" |
Le module Metrology - Writer donne plusieurs métriques :
| Nom de la métrique | Description |
|---|---|
IP_HOST_graphite_disk_sda_IO | Taille en pourcentage des entrées/sorties utilisé sur le disque de la machine ou graphite est installé. HOST_ADRESS correspond à l'adresse IP ou au DNS de l'hôte. |
IP_HOST_graphite_storage_size | Taille en pourcentage de l'espace disque utilisé sur la machine ou graphite est installé. HOST_ADRESS correspond à l'adresse IP ou au DNS de l'hôte. |
worker_X_last_minute_metrics_sent_nb | Nombre de métrique écrit sur la dernière minute sur la worker X |
worker_X_last_minute_work_time | Temps passé sur la dernière minute à écrire les métriques ( en seconde ) sur le worker X |