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/ :
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/ :
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 le serveur d'inventaire du module 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
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é :
YYYY-MM-DD HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] 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 :
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': ''} |
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 :
YYYY-MM-DD HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] [ INVENTORY CACHE UPDATE ] parameters : URI ['http://BROKER-SERVER:52000/inventory/'], timeout [10] |
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 :
YYYY-MM-DD HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] [ INVENTORY CACHE UPDATE ] successfully updated inventory data with NN hosts / MM checks from URL [ http://BROKER-SERVER:52000/inventory/ ] in X.XXXs YYYY-MM-DD HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] [ INVENTORY CACHE UPDATE ] Update host/check mapping:: Total number of hosts/checks in mapping cache: NNN/MMM, Cache update took: X.XXXs |
Le log suivant permet de constater qu'un serveur d'inventaire du module de métrologie Graphite n'est pas joignable :
YYYY-MM-DD HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] [ INVENTORY CACHE UPDATE ] Unable to access URL [ http://BROKER-SERVER:52000/inventory/ ] after XX.XXXs with error [ ERROR_TEXT ] |
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.
Le log suivant permet de constater que MongoDB est utilisé pour compenser l'indisponibilité des serveurs d'inventaire des modules de métrologie Graphite :
YYYY-MM-DD HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] Could not join Shinken to get inventory data, fallback to MongoDB |
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 |
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 |
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 :
YYYY-MM-DD HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] [ INVENTORY CACHE UPDATE ] Update host/check mapping:: the inventory was stored in the data_hub in X.XXXs |
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 cache local :
YYYY-MM-DD HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] Resetting the cache because the invalidation file /opt/graphite/storage/whisper/.cacheinvalidation has changed, meaning a new configuration was pushed. YYYY-MM-DD HH:MM:SS.MSS :: [ APACHE(pid= PID) / GRAPHITE ] [ INVENTORY CACHE UPDATE ] Update host/check mapping:: the inventory was loaded from the data_hub in memory in X.XXXs |