Logs d'informations sur le démon

Tous les jours et à chaque démarrage du démon, Shinken log les informations clés sur le démon qui sont : 

  • la version du démon avec le dernier patch s'il y a.
  • L'encodage des chaines de caractères utilisé par le démon ( Shinken utilise l'encodage utf-8 ).
  • La date de démarrage du démon.

Logs au démarrage du démon

Log de la version

[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] Daemon version is : VXX.XX.XX-XXX_centos_redhat_X_X_AND_OPTIONS_local_repository_added.fr - VXX.XX.XX-CumulativePatch-XX_FR_Linux_FULL_YYYY-MM-DD, pid : XXPID

Log de la date de démarrage du démon

[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] Daemon start time : XX-XX-XX  XX:XX:XX

Log de l'encodage utilisé par le démon

[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] Encoding used by the daemon : XXXXX

Log des variables d'environnement

Ce sont les variables d'environnement appliquées par Shinken au démarrage des démons.

  • Ces logs sont présents uniquement pour le support et ces variables ne peuvent pas être définies par l'utilisateur.
  • Ces variables d'environnement ne sont chargées qu'au démarrage du démon. Il n'est pas possible de les modifier lorsqu'un démon est en cours d'exécution.


[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ] ---------------------------------------------------------
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ] Environment variables:
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]   pycurl+ssl patch:
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - NSS_STRICT_NOFORK — : [ 'DISABLED' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]   System Language:
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LANGUAGE — : [ 'en_US.UTF8' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LANG ————— : [ 'en_US.UTF8' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LC_ALL ——— : [ 'en_US.UTF8' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]   Python-related:
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - PYTHONIOENCODING — : [ 'utf8' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - PYTHONUNBUFFERED — : [ '1' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - PYTHONUTF8 ——————— : [ '1' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]   JEMalloc configuration:
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LD_PRELOAD —— : [ '/usr/lib64/libjemalloc.so.2' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - MALLOC_CONF — : [ 'narenas:1,tcache:false' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ] ---------------------------------------------------------
Des variables de localisation sont absentes
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]   System Language:
[YYYY-MM-DD HH:MM:SS] ERROR  : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LANGUAGE — : [ <not defined> ]
[YYYY-MM-DD HH:MM:SS] ERROR  : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LANG ————— : [ <not defined> ]
[YYYY-MM-DD HH:MM:SS] ERROR  : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LC_ALL ——— : [ <not defined> ]
Des variables de configuration de Python sont absentes
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]   Python-related:
[YYYY-MM-DD HH:MM:SS] ERROR  : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - PYTHONIOENCODING — : [ <not defined> ]
[YYYY-MM-DD HH:MM:SS] ERROR  : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - PYTHONUNBUFFERED — : [ <not defined> ]
[YYYY-MM-DD HH:MM:SS] ERROR  : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - PYTHONUTF8 ——————— : [ <not defined> ]
L'allocateur mémoire jemalloc est désactivé, ou sa configuration est absente
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]   JEMalloc configuration:
[YYYY-MM-DD HH:MM:SS] WARNING: [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LD_PRELOAD —— : [ <not defined> ]
[YYYY-MM-DD HH:MM:SS] WARNING: [ demon_type ] [ START-DAEMON ] [ ENVIRONMENT VARIABLES ]      - MALLOC_CONF — : [ <not defined> ]

Logs quotidiens ( à minuit )

Log de la version

[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] Daemon version is : VXX.XX.XX-XXX_centos_redhat_X_X_AND_OPTIONS_local_repository_added.fr - VXX.XX.XX-CumulativePatch-XX_FR_Linux_FULL_YYYY-MM-DD, pid : XXPID

Log de la date de démarrage du démon

[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] Daemon start time : XX-XX-XX  XX:XX:XX

Log de l'encodage utilisé par le démon

[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] Encoding used by the daemon : XXXXX

Log des variables d'environnement

Ce sont les variables d'environnement appliquées par Shinken au démarrage des démons.

  • Ces logs sont présents uniquement pour le support et ces variables ne peuvent pas être définies par l'utilisateur.
  • Ces variables d'environnement ne sont chargées qu'au démarrage du démon. Il n'est pas possible de les modifier lorsqu'un démon est en cours d'exécution.


[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ] ---------------------------------------------------------
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ] Environment variables:
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]   pycurl+ssl patch:
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - NSS_STRICT_NOFORK — : [ 'DISABLED' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]   System Language:
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LANGUAGE — : [ 'en_US.UTF8' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LANG ————— : [ 'en_US.UTF8' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LC_ALL ——— : [ 'en_US.UTF8' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]   Python-related:
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - PYTHONIOENCODING — : [ 'utf8' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - PYTHONUNBUFFERED — : [ '1' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - PYTHONUTF8 ——————— : [ '1' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]   JEMalloc configuration:
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LD_PRELOAD —— : [ '/usr/lib64/libjemalloc.so.2' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - MALLOC_CONF — : [ 'narenas:1,tcache:false' ]
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ] ---------------------------------------------------------
Des variables de localisation sont absentes
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]   System Language:
[YYYY-MM-DD HH:MM:SS] ERROR  : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LANGUAGE — : [ <not defined> ]
[YYYY-MM-DD HH:MM:SS] ERROR  : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LANG ————— : [ <not defined> ]
[YYYY-MM-DD HH:MM:SS] ERROR  : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LC_ALL ——— : [ <not defined> ]
Des variables de configuration de Python sont absentes
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]   Python-related:
[YYYY-MM-DD HH:MM:SS] ERROR  : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - PYTHONIOENCODING — : [ <not defined> ]
[YYYY-MM-DD HH:MM:SS] ERROR  : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - PYTHONUNBUFFERED — : [ <not defined> ]
[YYYY-MM-DD HH:MM:SS] ERROR  : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - PYTHONUTF8 ——————— : [ <not defined> ]
L'allocateur mémoire jemalloc est désactivé, ou sa configuration est absente
[YYYY-MM-DD HH:MM:SS] INFO   : [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]   JEMalloc configuration:
[YYYY-MM-DD HH:MM:SS] WARNING: [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - LD_PRELOAD —— : [ <not defined> ]
[YYYY-MM-DD HH:MM:SS] WARNING: [ demon_type ] [ INFO-DAEMON ] [ ENVIRONMENT VARIABLES ]      - MALLOC_CONF — : [ <not defined> ]

Décalage d'heure entre le démon et le système détecté

Les démons effectuent régulièrement des vérifications sur le système sur lequel ils sont lancés tant qu'ils sont en vie ( environ toutes les deux secondes ).

Une de ces vérifications est le changement d'heure du serveur. Si un démon est décalé par rapport à la date que garde le démon en mémoire, alors celui-ci informe qu'il détecte un changement d'heure de la machine, et va se mettre à jour automatiquement à la nouvelle heure connue :

[YYYY-MM-DD HH:MM:SS] WARNING: [ demon_type ] System time change detected. The last daemon time was [ YYYY-MM-DD HH:YY:YY ], but the system time is [ YYYY-MM-DD HH:XX:XX ] which makes a difference of X seconds. Compensating...

Gestion des ressources

Libération périodique des ressources

Les démons effectuent régulièrement une collecte de mémoire ( "garbage collection" ) afin de libérer l'espace mémoire inutilisé ( environ toutes les minutes ).

  • Log affiché que si le temps "X.XXXs" est supérieur à une seconde 
  • generation X, le X peut prendre la valeur 0,1 ou 2. Une géneration représente une zone mémoire de Python ( voir la page Garbage Collection in Python pour plus d'explications )
[YYYY-MM-DD HH:MM:SS] WARNING: [ daemon_or_module_name ] [ MEMORY ] [ PERF ] [ X.XXXs ] PERIODIC python garbage collection for memory area ( generation X ) in process with pid XXXXX

Libération des ressources requise suite à une opération spécifique

Lorsqu'une opération demandant beaucoup de ressources est effectuée ( exemple: le chargement d'une nouvelle configuration de supervision ), une collecte de mémoire arbitraire peut être lancée en dehors de celle périodique pour libérer l'espace mémoire inutilisé à l'issue immédiatement.

[YYYY-MM-DD HH:MM:SS] WARNING: [ daemon_or_module_name ] [ MEMORY ] [ PERF ] [ X.XXXs ] REQUESTED python garbage collection ( __REASON__ ) for memory area ( generation X ) in process with pid XXXXX
[2023-04-13 10:04:52] WARNING: [ WebUI   ]  [ MEMORY ] [ PERF ] [ 6.038s ] REQUESTED python garbage collection ( because the module >WebUI< have received a new monitoring configuration ) for memory area ( generation 2 ) in process with pid 9299

Restitution des ressources inutilisées au système d'exploitation

La libération de l'espace mémoire est généralement effectuée au sein du processus afin que l'allocation d'un nouvel espace mémoire réutilise celui déjà acquis par le processus, dans le but de ne pas demander plus d'espace au système d'exploitation.

Mais souvent, une partie de cet espace mémoire ne sera vraiment plus utilisée ( pour diverses raisons ), auquel cas on restitue l'espace mémoire en question au système d'exploitation pour qu'il puisse le donner à un autre processus.

Cette opération est souvent quasi-instantanée, mais si elle prend un temps anormal d'exécution, on affiche dans les logs le temps d'exécution de la restitution.

[YYYY-MM-DD HH:MM:SS] WARNING: [ daemon_or_module_name ] [ MEMORY ] [ PERF ] [ X.XXXs ] Return of freed memory space to the OS ( malloc_trim ) in process with pid XXXXX