Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Scroll Ignore
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmltrue


Panel
titleSommaire

Table of Contents
maxLevel4
stylenone

Chargement des broks initiaux par un regenerator ( créateur d'objets des modules de broker ) et vérifier que c'est bien la même configuration charger entre les regenerators / Scheduler / Arbiter

Les logs suivants permettent de suivre le chargement de la configuration de supervision entre l'Arbiter, les Schedulers jusqu'aux interfaces : webui / livestatus / livedata

Il existe 2 types d'identifiants de configuration (représentation de la configuration)

  • configuration_uuid:  uuid de configuration totale générée par l'Arbiter
  • configuration_part_id:  id de la partie de configuration géré par un Scheduler

Quand un module de broker avec un regenerator charge une nouvelle configuration :

[2020-05-15 16:29:49] INFO : [WebUI3] [ CONFIGURATION ] [ NEW ] [ REGENERATOR ] configuration part retrieved: [ configuration_part_id=configuration_part_id, scheduler=scheduler_name configuration_uuid=configuration_uuid, arbiter=arbiter_name date=creation_date ]

  • configuration_part_id: id de la partie de configuration gérée par le Scheduler ( unique par Scheduler )
  • scheduler_name: nom du Scheduler qui gère cette partie de la configuration
  • configuration_uuid: uuid créée lors du démarrage de l'Arbiter qui correspond donc à l'id de la configuration gérée par l'Arbiter
  • creation_date: date du démarrage de l'Arbiter
  • arbiter_name: nom de l'Arbiter qui a créé cette configuration
Code Block
titleExemple Log Broker - module WebUI3 chargement de la nouvelle configuration
[YYYY-MM-DD HH:MM:SS] INFO   : [WebUI3] [ CONFIGURATION ] [ NEW ] [ REGENERATOR ] configuration part retrieved : [ configuration_part_id=8, scheduler=scheduler-master configuration_uuid=fe5982b29bfb48cdadb35523799f7cec, arbiter=arbiter-master1 date=15-05-2020 16:13:40 ]



Les logs propres au module

Erreurs lors du lancement du module WebUI

Le port de la WebUI est déjà ouvert

Si une autre WebUI utilise déjà le port ( sûrement un problème de configuration ), alors on aura les WARNING suivants:

Code Block
[YYYY-MM-DD HH:MM:SS] WARNING: [ WebUI2 ] [TRY 1/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use
[YYYY-MM-DD HH:MM:SS] WARNING: [ WebUI2 ] [TRY 2/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use

[YYYY-MM-DD HH:MM:SS] WARNING: [ WebUI2 ] [TRY 3/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use

[YYYY-MM-DD HH:MM:SS] WARNING: [ WebUI2 ] [TRY 4/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use

Quand un module de broker avec un regenerator rejette une configuration :

Dans le cas où la configuration d'un Scheduler est déjà gérée par un regenerator ( cas qui arrive si par exemple un module crash ), on redemande les broks initiaux.

Tous les modules vont recevoir la nouvelle configuration, mais ceux qui la gère déjà ne vont pas la recharger et vont loguer :

Code Block
[YYYY-MM-DD HH:MM:SS] INFO WARNING: [WebUI3] [ CONFIGURATIONWebUI2 ] [TRY NEW ] [ REGENERATOR ] No need to reload the configuration part because I already handle it [ configuration_part_id=configuration_part_id, scheduler=scheduler_name configuration_uuid=configuration_uuid, arbiter=arbiter_name date=creation_date ]
  • configuration_part_id: id de la partie de configuration gérée par le Scheduler ( unique par Scheduler )
  • scheduler_name: nom du Scheduler qui gère cette partie de la configuration
  • configuration_uuid: uuid créée lors du démarrage de l'Arbiter qui correspond donc à l'id de la configuration gérée par l'Arbiter
  • creation_date:  date du démarrage de l'Arbiter
  • arbiter_name: nom de l'Arbiter qui a créé cette configuration
Code Block
titleExemple Log Broker - module WebUI3 chargement de la nouvelle configuration
5/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use

[YYYY-MM-DD HH:MM:SS] WARNING: [ WebUI2 ] [TRY 6/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use

[YYYY-MM-DD HH:MM:SS] WARNING: [ WebUI2 ] [TRY 7/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use

[YYYY-MM-DD HH:MM:SS] WARNING: [WebUI3] [ CONFIGURATIONWebUI2 ] [TRY NEW 8/10] [The REGENERATORwebui named [WebUI2] Nocan neednot tostart reloadbecause the configuration part because I already handle it [ configuration_part_id=8, scheduler=scheduler-master configuration_uuid=fe5982b29bfb48cdadb35523799f7cec, arbiter=arbiter-master1 date=15-05-2020 16:13:40 ]

Temps de locks trop long entre la consommation des Broks et les requêtes de l'interface de Visualisation

Actuellement on ne sait pas consommer les broks et répondre aux requêtes de l'interface de Visualisation en même temps. On a donc une concurrence entre deux parties:

  • Récupération, consommation des broks depuis le broker et mise à jour des hôtes/checks/clusters (et tous les autres objets) depuis les informations des broks
  • Réponses aux requêtes de l'interface de Visualisation ( parcours des hôtes, checks, clusters ... )

Un des principaux risques est une famine d'un des deux groupes d'actions:

  • Si on ne fait qu'avaler des broks et ne jamais répondre à l'interface, ceci va poser problème
  • Symétriquement, si on ne fait que répondre aux utilisateurs, et jamais avaler des broks, on va avoir des informations périmées, voir, on ne finira jamais de consommer de nouvelles configurations

Le gestionnaire de lock essaie de partager au mieux le temps d'exécution entre les deux groupes, en cas de forte charge, des logs vont remonter les lenteurs observées.

Quand on a trop de requêtes de lectures, et qu'elles ne rendent pas la main pendant plus de 30 sec aux broks, on aura un log suivant ( Brok BLOQUE par les requêtes ):

Code Block
ERROR: [ ITEMS ACCESS ORDONNANCER ] [ LONG LOCK ] Broks management are waiting (1 thread) since 30s (> log error limit=30s) because HTTP requests (20 threads) has the LOCK

Quand on a trop de consommation de Broks, et que les requêtes sont bloquées ( Requêtes de l'interface BLOQUÉES par les Broks )

Code Block
ERROR: [ ITEMS ACCESS ORDONNANCER ] [ LONG LOCK ] HTTP requests are waiting (5 threads) since 30s (> log error limit=30s) because Broks management (1 thread) has the LOCK

Quand les requêtes en lecture mettent trop de temps à rendre la main au consommateur de Broks et que d'autres requêtes en lecture attendent de pouvoir s'exécuter depuis trop longtemps :

Code Block
ERROR: [ ITEMS ACCESS ORDONNANCER ] [ LONG LOCK ] Still have 9 running tasks ongoing (HTTP requests). => ( 1 ) Broks management and then ( 11 ) HTTP requests are waiting since 30s (>= log error limit:30s)

Quand la consommation de Broks met trop de temps à rendre la main pour la gestion de requêtes en lecture, et que d'autres consommateurs attendent de s'exécuter depuis trop longtemps ( cas théorique, n'est pas supposé survenir en fonctionnement normal ) :

Code Block
ERROR: [ ITEMS ACCESS ORDONNANCER ] [ LONG LOCK ] Still have 1 running tasks ongoing (Broks management). => ( 12 ) HTTP requests then ( 1 ) Broks management are waiting since 30s (>= log error limit:30s)

Gestion des broks

Information sur l'absorption des broks

Statistiques sur un traitement

Des broks ont été traités, affichage de statistiques :

  • nombre de broks traités
  • temps d'attente du premier brok set
  • nombre de brok set en retard récupérés, et le temps que ça a pris de les récupérer
  • temps passé à désérialiser les broks
  • temps d'attente du lock avant de traiter les broks 
  • temps passé pour traiter les broks 
  •  address 0.0.0.0:7767 is already in use
    
    [YYYY-MM-DD HH:MM:SS] WARNING: [ WebUI2 ] [TRY 9/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use


    Puis lors du dernier essai une ERROR (le module s'arrête):

    Code Block
    [YYYY-MM-DD HH:MM:SS] ERROR : [ WebUI2 ] [ CRASH - INSIDE MODULE PROCESS ] [TRY 10/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use

    Enfin l'erreur sera rapportée par le Broker qui va s'assurer que le module est éteint, et tenter de le relancer plus tard:


    Code Block
    [YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGER ] [ MODULE-INSTANCE-CRASH ] [ WebUI2 ] [ module_type=webui ] The module WebUI2 just stopped. Last ERROR received:
    
    [YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGER ] [ MODULE-INSTANCE-CRASH ] [ WebUI2 ] [ module_type=webui ] [TRY 10/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use



    Erreurs issues d'un problème de changement dans le code de l'interface de visualisation

    Si le fichier index.html est cassé chez un client, ou qu'un développeur a changé ce fichier sans faire attention, on aura des erreurs spécifiques.


    Si le fichier index.html est manquant:

    Code Block
    [YYYY-MM-DD HH:MM:SS] ERROR : [ WebUI2 ] [ CRASH - INSIDE MODULE PROCESS ] The file /var/lib/shinken/modules/webui/htdocs/ui/index.html is missing: there is a critical error with your installation. Please open a ticket to your support.


    Si le fichier index.html n'a pas les bons droits (l'utilisateur shinken ne peux pas l'ouvrir):

    Code Block
    [YYYY-MM-DD HH:MM:SS] ERROR : [ WebUI2 ] [ CRASH - INSIDE MODULE PROCESS ] Cannot open the file /var/lib/shinken/modules/webui/htdocs/ui/index.html with the error "ERROR": there is a critical error with your installation. Please open a ticket to your support.


    Si le fichier index.html n'a pas la bonne variable de langue

    Code Block
    [YYYY-MM-DD HH:MM:SS] ERROR : [ WebUI2 ] [ CRASH - INSIDE MODULE PROCESS ] The __shinken_lang__ variable was not found in the file /var/lib/shinken/modules/webui/htdocs/ui/index.html: there is a critical error with your installation. Please open a ticket to your support.


    Erreurs de paramétrage

    Si certains paramètres sont mal définis, la WebUI ne peut pas démarrer et va s'arrêter sur une erreur critique, qui sera affichée dans le check du Broker ainsi que dans le healthcheck.


    Si son paramètre "lang" n'est pas dans la liste autorisé ( fr, en ), on aura l'erreur suivante:

    temps total
    Code Block
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI-6         ] [ MANAGE BROKS ] [PERF]  [ XXXX broks ] [ wait and get first set on queue=0.000s ] [ get 0 late sets on=0.000s ] [ unserialize=0.000s ] [ wait write lock=0.000s ] [ manage broks=0.000s ] [ total=0.000s ]

    Nature des broks traités

    Affichage du type des broks à traités

    Code Block
    [YYYY-MM-DD HH:MM:SS] INFOERROR   : [ WebUI-6 ] [ CRASH - INSIDE MODULE  PROCESS ] [For MANAGEthe BROKSparameter ] [PERF]                  => manage broks types : [brok_type_1=XXXX] [brok_type_2=XX] [...]
    Exemple de log
    Code Block
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI-6         ] [ MANAGE BROKS ] [PERF]                  => manage broks types : [initial_command_status=1374] [initial_hostgroup_status=657] [service_next_schedule=2677] [update_program_status=21] [program_status=3] [host_check_result=568] [clean_all_my_instance_id=3] [initial_service_status=67969] [initial_contactgroup_status=24] [initial_timeperiod_status=15] [initial_broks_done=3] [initial_contact_status=1644] [initial_host_status=1960] [host_next_schedule=508] [log_monitoring=36] [update_service_status=2] [service_check_result=3271] [proxy_items_graph=3]
    "lang" the value "XXX" is not allowed. Values can be : "fr, en"


    La configuration des Graphite backends

    Port du Graphite backend invalide

    L'adresse d'un graphite_backends contient un port non correct et est remplacé par le port par défaut ( 80 ) :

    Code Block
    themeEmacs
    [YYYY-MM-DD HH:MM:SS] WARNING: [ WEBUI_NAME     ] [ CONFIGURATION ] The Graphite backend [ BACKEND ] is incorrect : The port [ INVALID_PORT ] is not valid. Valid values are integers from 0 to 65535.


    Adresse du Graphite backend vide

    Lorsqu'il n'y a pas d'adresse fournie dans un Graphite backend ( exemple : France::8080 ), son adresse est remplacée par une adresse par défaut ( 0.0.0.0 ) :


    Code Block
    themeEmacs
    [YYYY-MM-DD HH:MM:SS] WARNING: [ WEBUI_NAME     ] [ CONFIGURATION    ] The Graphite backend [ BACKEND ] is incorrect : The hostname or IP address is empty or not found.


    Backend mal formé

    Lorsqu'un backend est mal formé, par exemple si il n'a pas de royaume et de port renseigné, un message est remonté au démarrage de la WebUI.

    Exemple de graphite_backends erroné :

    Code Block
    graphite_backends			192.168.1.23


    Code Block
    themeEmacs
    [YYYY-MM-DD HH:MM:SS] ERROR  : [ WEBUI_NAME     ] [ CONFIGURATION    ] The Graphite backend [ BACKEND ] is not well formatted. It needs at least a realm and a host : <REALM>:<HOSTNAME>

    Rappel de format attendu : <REALM>:<ADDRESS>:<PORT>

    Exemple : France:192.168.1.23:8080

    Protocole du Backend invalide

    Si dans la définition du Backend, le protocole fourni n'est pas valide, un log au démarrage nous en averti.

    Exemple de graphite_backends erroné :


    Code Block
    graphite_backends			France:htt://192.168.1.23:8080


    Code Block
    themeEmacs

    L'absorption des broks a pris du retard

    En cas de forte charge sur le serveur ou lorsque des requêtes HTTP durent trop longtemps, le module peut prendre du retard sur la gestion des broks.

    L'algorithme d'absorption des broks peut être paramétré via les paramètres webui_broks_getter_XXX du fichier de configuration du Module WebUI

    Le mode de rattrapage pour récupérer les broks en retard s'active

    Activation du rattrapage des broks en retard, on prend un brok set supplémentaire à traiter, on affiche :

  • le nombre de broks dans le brok set 
  • le temps passé pour récupérer le brok set sur la queue
  • le nombre actuel de broks à traiter
  • le nombre maximal de broks qu'on peut récupérer avant de les traiter
  • le nombre de brok set encore en attente
    code
    [YYYY-MM-DD HH:MM:SS] INFOERROR   : [ WebUI-6WEBUI_NAME     ] [ CONFIGURATION    ] [The MANAGEGraphite BROKSbackend ][ [PERF] [LATE BROKS SETSBACKEND ] is Gettingincorrect brok set with XX broks in 0.000s: The [time for read queue size=0.000s]. Total broks to process= XXX/max:XXXX. Broks sets in queue: X.

    Le mode rattrapage a suffisamment de broks à traiter 

    PROTOCOL ] protocol is unknown.


    Création des index en base de données au démarrage

    Au démarrage du module, les index permettant d'assurer de bonnes performances pour les requêtes à la base de données sont créés s'ils n'existent pas.

    Le temps pris pour la mise en place de chaque index est également détaillé.

    Code Block
    themeEmacs

    Rattrapage des broks en retard en cours, on a atteint/dépassé le nombre maximal de broks à récupérer, on les traite : 

    code
    [YYYY-MM-DD HH:MM:SSDD] INFO   : [ WebUI-6           ] [ MANAGE BROKSIndex ] [PERF] [LATE BROKS SETS] Late brok taken => limit reach : XX / limit: XXXXXX.

    Après avoir traiter des broks, il en reste encore trop en attente

    Après avoir traité des broks, il reste trop de brok set en attente, on garde le lock et on continue l'absorption des broks en retard :

    Code Block
    [YYYY-MM-DD HH:MM:SSNeed to ensure indexes are present in Mongodb ( 2 indexes )
    [YYYY-MM-DD HH:MM:DD] INFO   : [ WebUI-6           ] [ MANAGEIndex BROKS ] [PERF] Broks sets1 in queue after manage broks is XX. We keep the lock and continue the brok managing.

    Demande des broks initiaux lors du redémarrage d'un module externe du Broker

    Lors du redémarrage d'un module externe du broker, une demande est envoyée par le Broker aux Schedulers pour récupérer de nouveaux broks initiaux ( une demande par Scheduler ).

    Code Block
    - COLLECTION_NAME1::FIELD2 ( INDEX_NAME ) was created/checked in X.XXXXs
    [YYYY-MM-DD HH:MM:SSDD] INFO   : [ broker-master ]WebUI [ GET BROKS        ] [ NEEDIndex DATA ] [ scheduler-name ]2 I ask for a initial broks generation to the scheduler with new daemon incarnation {u'shard_id': XXXX, u'configuration_incarnation_uuid': UUID} (old incarnation was {})

    Les logs du module MongoDB

    Erreurs

    Si le module MongoDB n'arrive pas à se connecter à la base mongo définit dans son fichier cfg :

    Code Block
    - COLLECTION_NAME2::FIELD1,FIELD2 ( INDEX_NAME ) was created/checked in X.XXXXs
    [YYYY-MM-DD HH:MM:SSDD] ERRORINFO   : [ WebUI           ] Mongodb Module: Error : [ WebUI            ] [ MONGODB          ]   - mongo connection failure to 192.168.1.87:27017

    Les logs du module SLA

    Initialisation du module SLA - CHAPITRE [ INITIALISATION ]

    Création du module

    [ Index ] All Mongodb indexes were created/checked in X.XXXs


    Code Block
    titleExemple
    [2021-11-25 16:38:47
    Code Block
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ slaIndex ] Need to ensure indexes are present in Mongodb ( 1 indexes )
    [2021-11-25 16:38:47] INFO   : [ INITIALISATION ] =============          Starting module initialisation     ==============
    [YYYY-MM-DD HH:MM:SS WebUI           ] [ Index ]   1 - dashboard::uuid ( uuid_1 ) was created/checked in 0.0005s
    [2021-11-25 16:38:47] INFO   : [ WebUI           ] [ slaIndex ] All Mongodb indexes were created/checked in 0.0005s


    Cas d'erreur

    Si une erreur survient lors de la tentative d'indexation, le module essaiera à nouveau lors de son prochain démarrage, et le log suivant est généré

    Code Block
    themeEmacs
    [YYYY-MM-DD HH:MM:SS] WARNING: [ WebUI     ] [ INITIALISATION ] Reading configuration for] slaMongodb archiveERREUR buildingPYTHON
    [YYYY-MM-DD HH:MM:SS] INFO   WARNING: [ WebUI           ] [Mongodb slaindex building could not be done, will retry at      ] [ INITIALISATION ]    - time_before_shinken_inactive -next restart


    Code Block
    titleExemple
    [2021-10-21 17:05:52] WARNING---------------------------------:〖 30 〗
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [Mongodb slaERROR stack : Traceback (most recent         ] [ INITIALISATION ]    - minimal_time_before_an_element_become_missing_data ------------:〖 0 〗
    [YYYY-MM-DD HH:MM:SS] INFO   call last):
    [2021-10-21 17:05:52] WARNING: [ WebUI           ] Mongodb   File "/var/lib/shinken/modules/webui/module.py", line 379, in main
    [2021-10-21 17:05:52] WARNING: [ WebUI           ] [Mongodb sla    raise IOError
    [2021-10-21 17:05:52] WARNING: [ WebUI     ] [ INITIALISATION ]   ] - minimal_time_before_an_element_become_missing_data_at_startup -:〖 0 〗
    [YYYY-MM-DD HH:MM:SS] INFO   Mongodb IOError
    [2021-10-21 17:05:52] WARNING: [ WebUI           ] [Mongodb slaindex building could not be done, will retry at      ] [ INITIALISATION ] Reading module configuration
    

    Paramètre de connexion à la base mongo

    next restart


    Chargement des broks initiaux par un regenerator ( créateur d'objets des modules de broker ) et vérifier que c'est bien la même configuration charger entre les regenerators / Scheduler / Arbiter

    Les logs suivants permettent de suivre le chargement de la configuration de supervision entre l'Arbiter, les Schedulers jusqu'aux interfaces : webui / livestatus / livedata

    Il existe 2 types d'identifiants de configuration (représentation de la configuration)

    • configuration_uuid:  uuid de configuration totale générée par l'Arbiter
    • configuration_part_id:  id de la partie de configuration géré par un Scheduler

    Quand un module de broker avec un regenerator charge une nouvelle configuration :

    [2020-05-15 16:29:49]  INFO :  [WebUI3] [ CONFIGURATION ] [ NEW ] [ REGENERATOR ]  configuration part retrieved: [ configuration_part_id= configuration_part_id, scheduler=scheduler_name configuration_uuid=configuration_uuid, arbiter=arbiter_name date=creation_date ]

    • configuration_part_id: id de la partie de configuration gérée par le Scheduler ( unique par Scheduler )
    • scheduler_name:  nom du Scheduler qui gère cette partie de la configuration
    • configuration_uuid:  uuid créée lors du démarrage de l'Arbiter qui correspond donc à l'id de la configuration gérée par l'Arbiter
    • creation_date: date du démarrage de l'Arbiter
    • arbiter_name:  nom de l'Arbiter qui a créé cette configuration


    Code Block
    titleExemple Log Broker - module WebUI3 chargement de la nouvelle configuration
    [YYYY-MM-DD HH:MM:SS] INFO   : [WebUI3] [ CONFIGURATION ] [ NEW ] [ REGENERATOR ] configuration part retrieved : [ configuration_part_id=8, scheduler=scheduler-master configuration_uuid=fe5982b29bfb48cdadb35523799f7cec, arbiter=arbiter-master1 date=15-05-2020 16:13:40 ]


    Quand un module de broker avec un regenerator rejette une configuration :

    Dans le cas où la configuration d'un Scheduler est déjà gérée par un regenerator ( cas qui arrive si par exemple un module crash ), on redemande les broks initiaux.

    Tous les modules vont recevoir la nouvelle configuration, mais ceux qui la gère déjà ne vont pas la recharger et vont loguer :


    Code Block
    [YYYY-MM-DD HH:MM:SS] INFO : [WebUI3] [ CONFIGURATION ] [ NEW ] [ REGENERATOR ] No need to reload the configuration part because I already handle it [ configuration_part_id=configuration_part_id, scheduler=scheduler_name configuration_uuid=configuration_uuid, arbiter=arbiter_name date=creation_date ]


    • configuration_part_id: id de la partie de configuration gérée par le Scheduler ( unique par Scheduler )
    • scheduler_name: nom du Scheduler qui gère cette partie de la configuration
    • configuration_uuid:  uuid créée lors du démarrage de l'Arbiter qui correspond donc à l'id de la configuration gérée par l'Arbiter
    • creation_date:   date du démarrage de l'Arbiter
    • arbiter_name:  nom de l'Arbiter qui a créé cette configuration


    Code Block
    titleExemple Log Broker - module WebUI3 chargement de la nouvelle configuration
    [YYYY-MM-DD HH:MM:SS] WARNING: [WebUI3] [ CONFIGURATION ] [ NEW ] [ REGENERATOR ] No need to reload the configuration part because I already handle it [ configuration_part_id=8, scheduler=scheduler-master configuration_uuid=fe5982b29bfb48cdadb35523799f7cec, arbiter=arbiter-master1 date=15-05-2020 16:13:40 ]


    Temps de locks trop long entre la consommation des Broks et les requêtes de l'interface de Visualisation

    Actuellement on ne sait pas consommer les broks et répondre aux requêtes de l'interface de Visualisation en même temps. On a donc une concurrence entre deux parties:

    • Récupération, consommation des broks depuis le broker et mise à jour des hôtes/checks/clusters (et tous les autres objets) depuis les informations des broks
    • Réponses aux requêtes de l'interface de Visualisation ( parcours des hôtes, checks, clusters ... )


    Un des principaux risques est une famine d'un des deux groupes d'actions:

    • Si on ne fait qu'avaler des broks et ne jamais répondre à l'interface, ceci va poser problème
    • Symétriquement, si on ne fait que répondre aux utilisateurs, et jamais avaler des broks, on va avoir des informations périmées, voir, on ne finira jamais de consommer de nouvelles configurations


    Le gestionnaire de lock essaie de partager au mieux le temps d'exécution entre les deux groupes, en cas de forte charge, des logs vont remonter les lenteurs observées.


    Quand on a trop de requêtes de lectures, et qu'elles ne rendent pas la main pendant plus de 30 sec aux broks, on aura un log suivant ( Brok BLOQUE par les requêtes ):

    Code Block
    ERROR: [ ITEMS ACCESS ORDONNANCER ] [ LONG LOCK ] Broks management are waiting (1 thread) since 30s (> log error limit=30s) because HTTP requests (20 threads) has the LOCK


    Quand on a trop de consommation de Broks, et que les requêtes sont bloquées ( Requêtes de l'interface BLOQUÉES par les Broks )

    Code Block
    ERROR: [ ITEMS ACCESS ORDONNANCER ] [ LONG LOCK ] HTTP requests are waiting (5 threads) since 30s (> log error limit=30s) because Broks management (1 thread) has the LOCK


    Quand les requêtes en lecture mettent trop de temps à rendre la main au consommateur de Broks et que d'autres requêtes en lecture attendent de pouvoir s'exécuter depuis trop longtemps :

    Code Block
    ERROR: [ ITEMS ACCESS ORDONNANCER ] [ LONG LOCK ] Still have 9 running tasks ongoing (HTTP requests). => ( 1 ) Broks management and then ( 11 ) HTTP requests are waiting since 30s (>= log error limit:30s)


    Quand la consommation de Broks met trop de temps à rendre la main pour la gestion de requêtes en lecture, et que d'autres consommateurs attendent de s'exécuter depuis trop longtemps ( cas théorique, n'est pas supposé survenir en fonctionnement normal ) :

    Code Block
    ERROR: [ ITEMS ACCESS ORDONNANCER ] [ LONG LOCK ] Still have 1 running tasks ongoing (Broks management). => ( 12 ) HTTP requests then ( 1 ) Broks management are waiting since 30s (>= log error limit:30s)


    Gestion des broks

    Information sur l'absorption des broks

    Statistiques sur un traitement

    Des broks ont été traités, affichage de statistiques :

    • nombre de broks traités
    • temps d'attente du premier brok set
    • nombre de brok set en retard récupérés, et le temps que ça a pris de les récupérer
    • temps passé à désérialiser les broks
    • temps d'attente du lock avant de traiter les broks 
    • temps passé pour traiter les broks 
    • temps total

    Code Block
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI-6         ] [ MANAGE BROKS ] [PERF]  [ XXXX broks ] [ wait and get first set on queue=0.000s ] [ get 0 late sets on=0.000s ] [ unserialize=0.000s ] [ wait write lock=0.000s ] [ manage broks=0.000s ] [ total=0.000s ]


    Nature des broks traités

    Affichage du type des broks  à traités

    Code Block
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI-6         ] [ MANAGE BROKS ] [PERF]                  => manage broks types : [brok_type_1=XXXX] [brok_type_2=XX] [...]


    Exemple de log


    Code Block
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI-6         ] [ MANAGE BROKS ] [PERF]                  => manage broks types : [initial_command_status=1374] [initial_hostgroup_status=657] [service_next_schedule=2677] [update_program_status=21] [program_status=3] [host_check_result=568] [clean_all_my_instance_id=3] [initial_service_status=67969] [initial_contactgroup_status=24] [initial_timeperiod_status=15] [initial_broks_done=3] [initial_contact_status=1644] [initial_host_status=1960] [host_next_schedule=508] [log_monitoring=36] [update_service_status=2] [service_check_result=3271] [proxy_items_graph=3]


    L'absorption des broks a pris du retard

    En cas de forte charge sur le serveur ou lorsque des requêtes HTTP durent trop longtemps, le module peut prendre du retard sur la gestion des broks.

    L'algorithme d'absorption des broks peut être paramétré via les paramètres webui_broks_getter_XXX  du fichier de configuration du Module WebUI

    Le mode de rattrapage pour récupérer les broks en retard s'active

    Activation du rattrapage des broks en retard, on prend un brok set supplémentaire à traiter, on affiche :

    • le nombre de broks dans le brok set 
    • le temps passé pour récupérer le brok set sur la queue
    • le nombre actuel de broks à traiter
    • le nombre maximal de broks qu'on peut récupérer avant de les traiter
    • le nombre de brok set encore en attente

    Code Block
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI-6         ] [ MANAGE BROKS ] [PERF] [LATE BROKS SETS]  Getting brok set with XX broks in 0.000s [time for read queue size=0.000s]. Total broks to process= XXX/max:XXXX. Broks sets in queue: X.


    Le mode rattrapage a suffisamment de broks à traiter 

    Rattrapage des broks en retard en cours, on a atteint/dépassé le nombre maximal de broks à récupérer, on les traite : 

    Code Block
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI-6         ] [ MANAGE BROKS ] [PERF] [LATE BROKS SETS] Late brok taken => limit reach : XX / limit: XXXXXX.


    Après avoir traiter des broks, il en reste encore trop en attente

    Après avoir traité des broks, il reste trop de brok set en attente, on garde le lock et on continue l'absorption des broks en retard :

    Code Block
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI-6         ] [ MANAGE BROKS ] [PERF] Broks sets in queue after manage broks is XX. We keep the lock and continue the brok managing.


    Demande des broks initiaux lors du redémarrage d'un module externe du Broker

    Lors du redémarrage d'un module externe du broker, une demande est envoyée par le Broker aux Schedulers pour récupérer de nouveaux broks initiaux ( une demande par Scheduler ).

    Code Block
    [YYYY-MM-DD HH:MM:SS] INFO   : [ broker-master ] [ GET BROKS 
    Code Block
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ] Creating connection to sla database [shinken]
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ] Parameter load for database connection
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ]    - database ------------------------- :〖 shinken 〗
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ slaNEED DATA ] [ scheduler-name ] I ask for a initial broks generation to ]the [scheduler INITIALISATIONwith ]new [daemon MONGO ]    - uri ------------------------------ :〖 mongodb://localhost/?w=1&fsync=false 〗
    incarnation {u'shard_id': XXXX, u'configuration_incarnation_uuid': UUID} (old incarnation was {})


    log de performance de la liste

    Note ce log s'affichera si l'appel à la liste prend plus de 1s :

    Code Block
    [YYYY-MM-DD HH:MM:SS] INFO  WARNING : [ WebUI           ]  [ sla CP Server Thread-74    ] [ user= 30067cfe5adf11e59a28080027f08538 ] [ get_data_visualisation_list ] [ PERF ] [ INITIALISATION1.007s ] elements:[ MONGO in broker= 54 filtered= 54 total= 54 in page= 54 ] page:[ 1 / - replica_set ----------1 ] filter:[  ] sort:[  ]


    Les logs des sous-modules

    Les logs du module MongoDB

    Erreurs

    Si le module MongoDB n'arrive pas à se connecter à la base mongo définit dans son fichier cfg :

    Code Block
    ------------ :〖 〗
    [YYYY-MM-DD HH:MM:SS] INFOERROR   : [ WebUI           ] [Mongodb slaModule: Error : [  WebUI         ] [ INITIALISATION ] [ MONGOMONGODB  ]    -    ]   - mongo connection failure to 192.168.1.87:27017


    Les logs du module SLA

    Initialisation du module SLA - CHAPITRE [ INITIALISATION ]

    Création du module


    Code Block
    use_ssh_tunnel ------------------- :〖 False 〗
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ] =============          Starting -module ssh_keyfile ---------------------- :〖 ~shinken/.ssh/id_rsa 〗initialisation     ==============
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [Reading MONGOconfiguration ]for sla   - ssh_user ------------------------- :〖 root 〗archive building
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ]  [ MONGO ]    - ssh_tunnel_timeout - time_before_shinken_inactive ---------------------------------- :〖 230 〗
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ]    - use_ssh_retry_failureminimal_time_before_an_element_become_missing_data ------------ :〖 10 〗
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ]    - auto_reconnect_max_try ----------- :〖 3minimal_time_before_an_element_become_missing_data_at_startup -:〖 0 〗
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] Reading module configuration
    


    Paramètre de connexion à la base mongo


    Code Block
    [ MONGO ]    - auto_reconnect_sleep_between_try - :〖 3 〗
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ] Creating Tryconnection to opensla a Mongodb connection to mongodb://localhost/?w=1&fsync=false:shinkendatabase [shinken]
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ] MongoParameter connectionload establishedfor indatabase 2.59msconnection
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ] Ensure   mongo- index done in 2.15ms

    Fin de l'initialisation du module

    Code Block
    database ------------------------- :〖 shinken 〗
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] Load[ MONGO from] collection 28 elements info- in cache done in 0.65msuri ------------------------------ :〖 mongodb://localhost/?w=1&fsync=false 〗
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] =============           Module initialized in 16.38ms     ==============[ MONGO ]    - replica_set ---------------------- :〖 〗
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] Found first element monitoring at 03-08-2020 10:16:38
    Erreurs - La connexion au serveur Mongo n'est pas établie
    Avec Tunnel SSH
    Code Block
    [ MONGO ]    - use_ssh_tunnel ------------------- :〖 False 〗
    [YYYY-MM-DD HH:MM:SS] INFO  ERROR : [ WebUI           ] [ sla              ] [ INITIALISATION ] Initialisation Module: Error : [ WebUI   -sla ] [ SSH TUNNEL ] [ MONGODB  MONGO ]        ]  - mongo connection failure : localhost:43577 ==(ssh tunnel)==> 192.168.1.87:22 ==(mongodb)==> 192.168.1.87:27017.
    Sans Tunnel SSH
    Code Block
    ssh_keyfile ---------------------- :〖 ~shinken/.ssh/id_rsa 〗
    [YYYY-MM-DD HH:MM:SS] INFO ERROR  : [ WebUI           ] [ sla              ] [ INITIALISATION ] Initialisation Module: Error : [ WebUI   -slaMONGO ] [ MONGODB  -        ]   - mongo connection failure to 192.168.1.87:27017

    Les logs du module event-manager-reader

    Erreurs

    Dans le cas où un utilisateur demande une requête trop grande aux évents ( en tapant un filtre trop large dans le nom, matchant plus de 50000 hosts/checks/clusters ), alors la WebUI va générer un log de WARNING alertant que la recherche est trop large, et que MongoDB risque de refuser la requête si elle est effectuée avec des uuids. Elle sera donc faite avec des regexp côté base de données, ce qui est très lent.

    Code Block
    ssh_user ------------------------- :〖 root 〗
    [YYYY-MM-DD HH:MM:SS] INFO   WARNING: [ WebUI           ] [ sla  event_container ] [ FAST-SEARCH ] [user=admin] [filter=type:check^^host~host_name:BiBi] The filter match too much uuids] to[ queryINITIALISATION mongodb] (101[ >MONGO 100000)] we must fallback to the slower regexp based query.

    log de performance du conteneur d'événements

    Note

  • ce log s'affichera si l'appel à la liste prend plus de 1s :
  • ces logs sont désactivés par défaut voir la page : Activation/Désactivation des parties de log pour les activer.
    Code Block
    [2021-04-08 13:34:47] WARNING- ssh_tunnel_timeout --------------- :〖 2 〗
    [YYYY-MM-DD HH:MM:SS] INFO   : [ WebUI           ] [ event-manager-reader ] [ user=30067cfe5adf11e59a28080027f08538 ] [ get_events sla              ] [ PERFINITIALISATION ] [ 31.064sMONGO ] 100 events returned with filter:[{"filter0":"type:host","filter1":"event_since:latest|3600~type:check~realm:All"}]

    Les logs du module webui

    Erreurs lors du lancement du module WebUI

    Le port de la WebUI est déjà ouvert

    Si une autre WebUI utilise déjà le port ( sûrement un problème de configuration ), alors on aura les WARNING suivants:

    Code Block
    - use_ssh_retry_failure ------------ :〖 1 〗
    [YYYY-MM-DD HH:MM:SS] INFO   WARNING: [ WebUI2 WebUI           ] [TRY 1/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use sla              ] [ INITIALISATION ] [ MONGO ]    - auto_reconnect_max_try ----------- :〖 3 〗
    [YYYY-MM-DD HH:MM:SS]] INFO   WARNING: [ WebUI WebUI2    ] [TRY 2/10] The webui named [WebUI2] can[ notsla start because the address 0.0.0.0:7767 is already in use
    
    [YYYY-MM-DD HH:MM:SS] WARNING: [ WebUI2 ] [TRY INITIALISATION 3/10] The[ webuiMONGO named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use
    
    - auto_reconnect_sleep_between_try - :〖 3 〗
    [YYYY-MM-DD HH:MM:SS] WARNINGINFO   : [ WebUI    WebUI2 ] [TRY 4/10] The webui named [WebUI2] can[ notsla start because the address 0.0.0.0:7767 is already in use
    
    [YYYY-MM-DD HH:MM:SS] WARNING: [ WebUI2 ] [TRY INITIALISATION 5/10] The[ webui namedMONGO [WebUI2] canTry notto startopen because the address 0.0.0.0:7767 is already in use
    
    a Mongodb connection to mongodb://localhost/?w=1&fsync=false:shinken
    [YYYY-MM-DD HH:MM:SS] WARNING:INFO [ WebUI2 ]: [TRY 6/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use
    
    [YYYY-MM-DD HH:MM:SS] WARNING: [ WebUI2 ] [TRY 7/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use
    
     WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ] Mongo connection established in 2.59ms
    [YYYY-MM-DD HH:MM:SS] INFO  WARNING : [ WebUI2 WebUI           ] [TRY 8/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use
    
     sla              ] [ INITIALISATION ] [ MONGO ] Ensure mongo index done in 2.15ms


    Fin de l'initialisation du module


    Code Block
    [YYYY-MM-DD HH:MM:SS] INFO  WARNING : [ WebUI2 WebUI           ] [TRY 9/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use

    Puis lors du dernier essai une ERROR (le module s'arrête):

    Code Block
     sla              ] [ INITIALISATION ] Load from collection 28 elements info in cache done in 0.65ms
    [YYYY-MM-DD HH:MM:SS] ERRORINFO : [ WebUI2: ] [ CRASHWebUI - INSIDE MODULE PROCESS ] [TRY 10/10] The webui named [WebUI2] can[ notsla start because the address 0.0.0.0:7767 is already in use

    Enfin l'erreur sera rapportée par le Broker qui va s'assurer que le module est éteint, et tenter de le relancer plus tard:

    Code Block
    [YYYY-MM-DD HH:MM:SS] ERROR : [ broker-master ] [ MODULES-MANAGERINITIALISATION ] [ MODULE-INSTANCE-CRASH ] [ WebUI2 ] [ module_type=webui ] The module WebUI2 just stopped. Last ERROR received:
    
     =============           Module initialized in 16.38ms     ==============
    [YYYY-MM-DD HH:MM:SS] INFO ERROR  : [ broker-master ] [ MODULES-MANAGER WebUI           ] [ MODULE-INSTANCE-CRASH ] [ WebUI2 ] [ module_type=webui ] [TRY 10/10] The webui named [WebUI2] can not start because the address 0.0.0.0:7767 is already in use

    Erreurs issues d'un problème de changement dans le code de l'interface de visualisation

    sla              ] [ INITIALISATION ] Found first element monitoring at 03-08-2020 10:16:38


    Erreurs - La connexion au serveur Mongo n'est pas établie
    Avec Tunnel SSH

    Si le fichier index.html est cassé chez un client, ou qu'un développeur a changé ce fichier sans faire attention, on aura des erreurs spécifiques.

    Si le fichier index.html est manquant:


    Code Block
    [YYYY-MM-DD HH:MM:SS] ERROR : [ WebUI2WebUI    ] [ CRASH - INSIDE MODULE PROCESS ] The[ file /var/lib/shinken/modules/webui/htdocs/ui/index.html is missing: there is a critical error with your installation. Please open a ticket to your support.

    Si le fichier index.html n'a pas les bons droits (l'utilisateur shinken ne peux pas l'ouvrir):

    Code Block
    [YYYY-MM-DD HH:MM:SS] ERROR : [ WebUI2sla              ] [ INITIALISATION ] Initialisation Module: Error : [ WebUI   -sla ] [ CRASHSSH - INSIDE MODULE PROCESS TUNNEL ] Cannot[ openMONGODB the file /var/lib/shinken/modules/webui/htdocs/ui/index.html with the error "ERROR": there is a] critical error- withmongo yourconnection installation.failure Please: open a ticket to your support.
    Si le fichier index.html n'a pas la bonne variable de langue
    localhost:43577 ==(ssh tunnel)==> 192.168.1.87:22 ==(mongodb)==> 192.168.1.87:27017.


    Sans Tunnel SSH


    Code Block
    [YYYY-MM-DD HH:MM:SS] ERROR : [ WebUI2 WebUI           ] [ CRASH - INSIDE MODULE PROCESS ] The __shinken_lang__ variable was not found in the file /var/lib/shinken/modules/webui/htdocs/ui/index.html: there is a critical error with your installation. Please open a ticket to your support.

    Erreurs de paramétrage

     sla              ] [ INITIALISATION ] Initialisation Module: Error : [ WebUI   -sla ] [ MONGODB          ]   - mongo connection failure to 192.168.1.87:27017


    Les logs du module event-manager-reader

    Erreurs

    Dans le cas où un utilisateur demande une requête trop grande aux évents ( en tapant un filtre trop large dans le nom, matchant plus de 50000 hosts/checks/clusters ), alors la WebUI va générer un log de WARNING alertant que la recherche est trop large, et que MongoDB risque de refuser la requête si elle est effectuée avec des uuids. Elle sera donc faite avec des regexp côté base de données, ce qui est très lent.

    Si certains paramètres sont mal définis, la WebUI ne peut pas démarrer et va s'arrêter sur une erreur critique, qui sera affichée dans le check du Broker ainsi que dans le healthcheck.

    Si son paramètre "lang" n'est pas dans la liste autorisé ( fr, en ), on aura l'erreur suivante:

    Code Block
    [YYYY-MM-DD HH:MM:SS] ERROR WARNING: [ WebUI ] [ event_container ] [ CRASH - INSIDE MODULE PROCESS ] For the parameter "lang" the value "XXX" is not allowed. Values can be : "fr, en"

    log de performance de la liste

     FAST-SEARCH ] [user=admin] [filter=type:check^^host~host_name:BiBi] The filter match too much uuids to query mongodb (101 > 100000) we must fallback to the slower regexp based query.


    log de performance du conteneur d'événements

    Note

    Note
    • ce log s'affichera si l'appel à la liste prend plus de 1s :
    • ces logs sont désactivés par défaut voir la page : Activation/Désactivation des parties de log pour les activer.

    Code Block
    [YYYY2021-MM04-DD08 HH13:MM34:SS47] WARNING : [ WebUI           ]  [ CP Server Thread-74 ] [ event-manager-reader ] [ user= 30067cfe5adf11e59a28080027f08538 ] [ get_data_visualisation_listevents ] [ PERF ] [ 131.007s064s ] elements:[100 inevents broker=returned 54 filtered= 54 total= 54 in page= 54 ] page:[ 1 / 1 ] filter:[  ] sort:[  ]with filter:[{"filter0":"type:host","filter1":"event_since:latest|3600~type:check~realm:All"}]


    Les logs du module

    Les

    SLA

    Création du sous-module


    Code Block
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] =============          Starting module initialisation     ==============
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] Reading configuration for sla archive building
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ]    - time_before_shinken_inactive ----------------------------------:〖 30 〗
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ]    - minimal_time_before_an_element_become_missing_data ------------:〖 0 〗
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ]    - minimal_time_before_an_element_become_missing_data_at_startup -:〖 0 〗
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] Reading module configuration


    Paramètre de connexion à la base mongo


    Code Block
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ] Creating connection to sla database [shinken]
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ] Parameter load for database connection
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ]    - database ------------------------- :〖 shinken 〗
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ]    - uri ------------------------------ :〖 mongodb://localhost/?w=1&fsync=false 〗
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ]    - replica_set ---------------------- :〖 〗
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ]    - use_ssh_tunnel ------------------- :〖 False 〗
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ]    - ssh_keyfile ---------------------- :〖 ~shinken/.ssh/id_rsa 〗
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ]    - ssh_user ------------------------- :〖 root 〗
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ]    - ssh_tunnel_timeout --------------- :〖 2 〗
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ]    - use_ssh_retry_failure ------------ :〖 1 〗
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ]    - auto_reconnect_max_try ----------- :〖 3 〗
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ]    - auto_reconnect_sleep_between_try - :〖 3 〗
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ] Try to open a Mongodb connection to mongodb://localhost/?w=1&fsync=false:shinken
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ] Mongo connection established in 4.09ms
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] [ MONGO ] Ensure mongo index done in 3.35ms
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] Load from collection 28 elements info in cache done in 0.85ms


    Fin de l'initialisation du module


    Code Block
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] =============           Module initialized in 24.19ms     ==============
    [2021-04-13 15:50:24] INFO   : [ WebUI           ] [ sla              ] [ INITIALISATION ] Found first element monitoring at 17-06-2020 10:42:52