Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Make by tools (01.00.01) - action=clean_macro_parameter
Scroll Ignore
scroll-viewporttrue
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-htmlfalse
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
Panel
titleSommaire

Table of Contents
stylenone

Emplacement des logs

Graphite version 0.9.10 ( Shinken < V02.08.02-RC009 )

Pour la version de Graphite installée par Shinken sur par les versions de Shinken antérieures à la version V02.08.02-RC009 sur des systèmes CentOS 7, les logs sont tous disponibles dans le dossier /var/log/graphite/ :

  • /var/log/graphite/info.log,
  • /var/log/graphite/exception.log,
  • /var/log/graphite/graphite-webapp.access.log,
  • /var/log/graphite/graphite-webapp.error.log.

Graphite version 1.1.8 ( Redhat 8, Alma 8, Shinken >= V02.08.02-RC009 )

Pour la version de Graphite installée par Shinken sur des systèmes Redhat 8 ou Alma 8, ou par des versions de Shinken supérieures ou égales à la  V02.08.02-RC009 sur des systèmes CentOS 7, les logs sont disponibles dans les dossiers /var/log/graphite/ et /opt/graphite/storage/log/webapp/ :

  • /opt/graphite/storage/log/webapp/info.log,
  • /opt/graphite/storage/log/webapp/exception.log,
  • /var/log/graphite/graphite-webapp.access.log,
  • /var/log/graphite/graphite-webapp.error.log.

Chargement des données de l'inventaire pour faire la relation UUID ↔ nom

Récupération des données d'inventaire

Lorsqu'un outil externe ( comme Grafana ) veut accéder aux métriques, le worker Apache pour Graphite interrogé ( processus nommés "(wsgi:graphite) -DFOREGROUND" )  va consulter les serveurs d'inventaire des modules de métrologie Graphite et mettre en cache les relations UUID ↔ nom.

Les logs énumérés ci-dessous sont présents dans le fichier info.log 

Liste des cas de figure nécessitant un chargement de l'inventaire

Une nouvelle configuration est poussée en production

Lorsqu'une nouvelle configuration est poussée en production, les données d'inventaire doivent être rechargées.

Quand un worker Apache pour Graphite détecte que son cache en mémoire n'est plus à jour, le log suivant est affiché :

Code Block
languagetext
themeEmacs
YYYY-MM-DD,HH:mm:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] [ THREAD_ID ] [ INVENTORY CACHE UPDATE ] Resetting the cache because the invalidation file /opt/graphite/storage/whisper/.cacheinvalidation has changed, meaning a new configuration was pushed.


Le worker Apache pour Graphite qui reçoit la mise à jour de configuration affiche également le log suivant lors de sa réponse au module de métrologie Graphite sur le Broker :

Code Block
languagetext
themeEmacs
YYYY-MM-DD,HH:MM:SS.MSS :: [ NEW CONFIGURATION / MIGRATION ] [ RELAY ] [ALLOW RELAY=True] Giving back result to the module : {'server_ok': ['BROKER-SERVER'], 'error_count': XX, 'ok_count': XX, 'nb_migrated': XX, 'last_error': ''}
Des données d'inventaire plus récentes sont présentes dans le cache local

Quand un worker Apache pour Graphite détecte que son cache en mémoire n'est plus à jour, le log suivant est affiché :

Code Block
languagetext
themeEmacs
YYYY-MM-DD,HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] [ THREAD_ID ] [ INVENTORY CACHE UPDATE ] Resetting the cache because data file /dev/shm/shinken_apache/.shinken_apache__daemons__httpd_graphite__data__shinken_inventory.json has unread data

Téléchargement de l'inventaire

Requête vers les serveurs d'inventaire des modules de métrologie Graphite

Lorsque l'inventaire doit être rechargé depuis les serveurs d'inventaire, un des workers d'Apache pour Graphite s'occupe de télécharger les mise à jour de l'inventaire. Quand tous les bouts de l'inventaire ont été récupérés depuis les différents serveurs qui le fournissent, il est enregistré dans le fichier de cache local en mémoire pour que tous les workers d'Apache pour Graphite puissent en disposer.

Pendant ce temps, les autres workers d'Apache pour Graphite utilisent l'ancienne version de l'inventaire pour continuer de répondre aux requêtes d'outils externes tels que Grafana par exemple.


Info
titleRemarque

Lors du premier démarrage, quand il n'existe pas de précédente version de l'inventaire, les morceaux de l'inventaire sont mis à disposition des autres workers d'Apache pour Graphite dès leur réception.

Ces derniers disposent alors d'un inventaire partiel jusqu'à ce que tous les serveurs d'inventaire aient répondu.

Les serveurs d'inventaire sont questionnés séquentiellement dans l'ordre précisé par le paramètre URI du fichier de configuration /opt/graphite/conf/shinken_inventory.conf ( voir la page Grafana - v8.3.2 section Paramètres de connexion aux serveurs d'inventaire )

Paramètres d'accès aux serveurs d'inventaire des modules de métrologie Graphite

Le log suivant indique la liste des URL utilisées pour contacter les serveurs d'inventaire des modules de métrologie Graphite, ainsi que le timeout configuré pour les contacter :

Code Block
languagetext
themeEmacs
YYYY-MM-DD,HH:MM:SS.MSS :: [ APACHE(pid=  PID) / GRAPHITE ] [ THREAD_ID ] [ INVENTORY CACHE UPDATE ] parameters : URI ['http://BROKER-SERVER:52000/inventory/'], timeout [10]
Les données de l'inventaire ont été récupérées depuis un serveur d'inventaire d'un module de métrologie Graphite

Les logs suivants permettent de suivre la récupération des données de l'inventaire depuis le serveur d'inventaire d'un module de métrologie Graphite :

Code Block
languagetext
themeEmacs
YYYY-MM-DD,HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] [ THREAD_ID ] [ INVENTORY CACHE UPDATE ] Updating inventory data from URL [ http://BROKER-SERVER:52000/inventory/ ]

...

Code Block
languagetext
themeEmacs
YYYY-MM-DD,HH:MM:SS.MSS :: [ APACHE(pid=  PID) / GRAPHITE ] [ THREAD_ID ]  [ INVENTORY CACHE UPDATE ] successfully updated inventory data with NN hosts / MM checks from URL [ http://BROKER-SERVER:52000/inventory/ ] in X.XXXs
La récupération des données de l'inventaire termine

Lorsque la récupération des données de l'inventaire termine, le log suivant récapitule le nombre d'hôtes et de checks trouvés et le temps que cela a pris :

Code Block
languagetext
themeEmacs
YYYY-MM-DD,HH:MM:SS.MSS :: [ APACHE(pid=  PID) / GRAPHITE ] [ THREAD_ID ]  [ INVENTORY CACHE UPDATE ] Update host/check mapping:: Total number of hosts/checks in mapping cache: NNN/MMM, Cache update took: X.XXXs
Le serveur d'inventaire d'un module de métrologie Graphite n'est pas accessible

Le log suivant permet de constater qu'un serveur d'inventaire du module de métrologie Graphite n'est pas joignable ( ses données ne seront alors pas disponibles ) :

Code Block
languagetext
themeEmacs
YYYY-MM-DD,HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] [ THREAD_ID ] [ INVENTORY CACHE UPDATE ] Unable to access URL [ http://BROKER-SERVER:52000/inventory/ ] after XX.XXXs with error [ ERROR_TEXT ]
Récupération des données d'inventaire via MongoDB en solution de repli

Si aucun des serveurs d'inventaire des modules de métrologie Graphite n'est accessible, MongoDB est utilisé en solution de repli pour tenter de récupérer les données d'inventaire.

Utilisation de MongoDB en solution de repli

Le log suivant permet de constater que MongoDB est utilisé pour compenser l'indisponibilité des serveurs d'inventaire des modules de métrologie Graphite :

Code Block
languagetext
themeEmacs
YYYY-MM-DD,HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] Could not join Shinken to get inventory data, fallback to MongoDB
Affichage des paramètres d'accès à MongoDB
Code Block
languagetext
themeEmacs
YYYY-MM-DD,HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] [ INVENTORY CACHE UPDATE ] [ MONGO ] Reading mongodb parameters [('uri', 'mongodb://localhost/?w=1&fsync=false'), ('use_ssh_tunnel', '0'), ('ssh_user', 'shinken'), ('ssh_keyfile', '/opt/graphite/conf/id_rsa'), ('ssh_tunnel_timeout', '2'), ('database', 'shinken'), ('collection', 'metrology_inventory')] from /opt/graphite/conf/mongodb.conf
Récupération des données d'inventaire avec MongoDB
Code Block
languagetext
themeEmacs
YYYY-MM-DD,HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] [ MONGO ] Update host/check mapping:: got XXX new elements from date XX (and in X.XXXs)
YYYY-MM-DD,HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] [ MONGO ] Update host/check mapping:: Total number of hosts/checks in mapping cache from database: NNN/MMM
Création du cache local avec les données d'inventaire récupérées

Lorsque les données de l'inventaire ont été récupérées, elles sont stockées dans un cache local, pour éviter de saturer le démon fournissant l'inventaire :

Code Block
languagetext
themeEmacs
YYYY-MM-DD,HH:MM:SS.MSS :: [ APACHE(pid=  PID) / GRAPHITE ]  [ THREAD_ID ] [ INVENTORY CACHE UPDATE ] Update host/check mapping:: the inventory was stored in the memory cache file in X.XXXs

Chargement des données d'inventaire depuis le cache local

Lorsque les données d'inventaire ont déjà été récupérées, le log suivant permet de voir que le worker Apache pour Graphite recharge les données depuis son fichier de cache local en mémoire :

Code Block
languagetext
themeEmacs
YYYY-MM-DD,HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] [ THREAD_ID ] [ INVENTORY CACHE UPDATE ] Update host/check mapping:: the inventory was loaded from memory cache file in X.XXXs ( including file read in X.XXXs, json parse in X.XXXs, dict update in X.XXXs )