Versions Compared

Key

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

Explication

Le module WebUI permet de générer l'interface de visualisation. Il est possible de modifier les paramètres (Langue de l'interface, port d'écoute) via le fichier de configuration ci-dessous.

Mécanisme des données manquantes


Info

 Voir  : Détermination de l'état de l'hôte ( pour plus d'information sur les cas particuliers )


Configuration

MongoDB

Le module WebUI a besoin de se connecter à une base MongoDB pour stocker les portails, tableaux de bord et favoris des utilisateurs. Le paramétrage pour la connexion à cette base Mongo est décrit dans la page du Module MongoDB

Configuration des adresses de Graphite


CléTypeDéfautDescription


Code Block
 graphite_backends 


Liste ---

Ce paramètre définit les adresses des serveurs graphite pour chaque royaume utilisé pour créer les données de métrologie.

La syntaxe est la suivante : REALM:HOSTNAME:PORT

  • REALM : Nom du royaume :
    • permet de définir un royaume précis,
    • la valeur par défaut ( * ) regroupe les royaumes non définis explicitement.
  • HOSTNAME : Nom de l'hôte ou adresse IP du serveur Graphite ;
  • PORT : Port du service Graphite, configurable dans le fichier /etc/httpd/conf.d/graphite.conf. Si le port n'est pas précisé, c'est le port 80 qui sera utilisé ( par défaut ).

Pour définir plusieurs graphite_backend sur une WebUI, les adresses doivent être séparées par des virgules

Exemple :  

grapite_backends *:127.0.0.1, France:192.168.100:8080

Dans cet exemple, le royaume France utilise l'adresse 192.168.100:8080 et tous les autres royaumes utilisent l'adresse 127.0.0.1 avec le port 80.


Code Block
  metrology__ping_timeout 


Entier 10 Avant qu'une requête graphite soit effectuée, une vérification est faite pour s'assurer du bon fonctionnement du serveur graphite.
Ce paramètre définit le temps maximum d'exécution de la requête de vérification.


Code Block
  metrology__query_timeout 


Entier 20 Temps maximum d'exécution des requêtes graphites.


Code Block
  metrology__after_error_wait_before_retry 


Entier 120 Si la commande de vérification du bon fonctionnement du serveur graphite échoue, le module sera suspendu avant de relancer la vérification.
Ce paramètre correspond au temps d'attente avant de relancer la vérification.


MongoDB

Le module WebUI a besoin de se connecter à une base MongoDB pour stocker les portails, tableaux de bord et favoris des utilisateurs. Le paramétrage pour la connexion à cette base Mongo est décrit dans la page du Module MongoDB

Anchor
RECUPBROKS
RECUPBROKS
Récupération des broks

Le fonctionnement du mécanisme de récupération des broks peut être configuré via certains paramètres, afin de modifier son "agressivité".

Pendant la mise à jour des données de supervision, le module ne peut pas répondre aux requêtes HTTP qu'il reçoit.

Warning

Une mauvaise configuration de ces paramètres peut compromettre le bon fonctionnement du module, se rapprocher du support si vous avez le moindre doute

Principe de l'algorithme d'absorption des broks :

  1. Attente de broks à traiter
  2. Récupération de broks en retard (fonctionnalité de rattrapage)
  3. Dé-sérialisation des broks
  4. Entrée en session critique (les requêtes HTTP sont bloquées)
  5. Traitement des broks 
  6. Libérer la session critique et attendre de nouveaux broks, ou continuer l'absorption de broks (en cas de retard important, on repart à l'étape 1. en restant sur la session critique)
CléTypeValeur par défautDescription
AnchorRECUPBROKSRECUPBROKSRécupération des broks

Le fonctionnement du mécanisme de récupération des broks peut être configuré via certains paramètres, afin de modifier son "agressivité".

Pendant la mise à jour des données de supervision, le module ne peut pas répondre aux requêtes HTTP qu'il reçoit.

Warning

Une mauvaise configuration de ces paramètres peut compromettre le bon fonctionnement du module, se rapprocher du support si vous avez le moindre doute

Principe de l'algorithme d'absorption des broks :

  1. Attente de broks à traiter
  2. Récupération de broks en retard (fonctionnalité de rattrapage)
  3. Dé-sérialisation des broks
  4. Entrée en session critique (les requêtes HTTP sont bloquées)
  5. Traitement des broks 
  6. Libérer la session critique et attendre de nouveaux broks, ou continuer l'absorption de broks (en cas de retard important, on repart à l'étape 1. en restant sur la session critique)
CléTypeValeur par défautDescription
Code Block
webui__broks_getter__include_deserialization_and_catchup_in_lock
Booléen0

Entrer en session critique après la récupération d'un premier brok set.

La récupération des broks en retard, et la dé-sérialisation se font alors dans la session critique (Locké) pour disposer d'un maximum de temps CPU 

  • 1 : Activer
  • 0 Désactiver
Code Block
webui__broks_getter__activate_late_set_catchup
Booléen1

Utilisation de la fonctionnalité de rattrapage pour absorber des broks en retard :

  • 1 : Activer
  • 0 Désactiver
Code Block
webui__broks_getter__nb_late_set_allowed_before_catchup
Entier10Nombre de brok set en attente toléré.
Au dessus de ce nombre, les brok set sont immédiatement récupérés par l'algorithme de rattrapage pour être traités maintenant
Code Block
webui__broks_getter__catchup_broks_managed_by_module_in_a_catchup_loop
Entier200000

Nombre maximal de broks que l'algorithme de rattrapage récupère avant de lancer le traitement

Ce paramètre permet de borner la consommation mémoire et le temps d'exécution d'un tour de boucle de traitement

Code Block
webui__broks_getter__catchup_run_endless_until_nb_late_set_allowed_reached
Booléen1

Après traitement des broks, si le nombre de brok set en retard est trop élevé,

  • 1 continuer le rattrapage et absorber des broks en retard (en restant sur la session critique, ou "avec le lock")
  • arrêter l'absorption de brok et libérer la session critique (rendre le lock)


    Code Block
    webui__broks_getter__include_
    deserialisation
    deserialization_and_catchup_in_lock
    
    Dans le cas ou vous voulez disposer d'un maximum de temps CPU pour traiter les broks en retard, vous pouvez inclure la phase 2 ( Récupération de broks en retard ) et Phase 3 ( Dé-sérialisation des broks ) dans la phase Critique ( Phase 4 )


    Booléen0

    Entrer en session critique après la récupération d'un premier brok set.

    La récupération des broks en retard, et la dé-sérialisation se font alors dans la session critique (Locké) pour disposer d'un maximum de temps CPU 

    • 1 : Activer
    • 0 Désactiver

    Fichier de configuration


    Code Block
    webui__broks_getter__activate_late_set_catchup
    


    Booléen1

    Utilisation de la  fonctionnalité de rattrapage pour absorber des broks en retard :

    • 1 : Activer
    • 0 Désactiver


    Code Block
    webui__broks_getter__nb_late_set_allowed_before_catchup
    


    Entier10Nombre de brok set en attente toléré.
    Au dessus de ce nombre, les brok set sont immédiatement récupérés par l'algorithme de rattrapage pour être traités maintenant


    Code Block
    webui__broks_getter__catchup_broks_managed_by_module_in_a_catchup_loop
    


    Entier200000

    Nombre maximal de broks que l'algorithme de rattrapage récupère avant de lancer le traitement

    Ce paramètre permet de borner la consommation mémoire et le temps d'exécution d'un tour de boucle de traitement


    Code Block
    webui__broks_getter__catchup_run_endless_until_nb_late_set_allowed_reached
    


    Booléen1

    Après traitement des broks, si le nombre de brok set en retard est trop élevé,

    • 1  continuer le rattrapage et absorber des broks en retard (en restant sur la session critique, ou "avec le lock")
    • arrêter l'absorption de brok et libérer la session critique (rendre le lock)


    Code Block
    webui__broks_getter__include_deserialisation_and_catchup_in_lock
    




    Dans le cas ou vous voulez disposer d'un maximum de temps CPU pour traiter les broks en retard, vous pouvez inclure la phase 2 ( Récupération de broks en retard ) et Phase 3 ( Dé-sérialisation des broks ) dans la phase Critique ( Phase 4 )

    La récupération des broks en retard, et la dé-sérialisation se font alors dans la session critique (Locké) pour

    • 1 : Activer
    • 0 Désactiver



    Fichier de configuration

    Voici le fichier CFG de configuration présent dans :  /etc/shinken/modules/webui.cfg


    Code Block
    languagejs
    #============

    Voici le fichier CFG de configuration présent dans : /etc/shinken/modules/webui.cfg

    Code Block
    languagebash
    #===============================================================================
    # WebUI
    #===============================================================================
    # Daemons that can load this module:
    # - broker
    # This module is the visualization interface
    #===============================================================================
    
    
    define module {
    
    # Shinken Enterprise. Lines added by import core. Do not remove it, it's used by Shinken Enterprise to update your objects if you re-import them.
        _SE_UUID             core-module-2e0f08c45adc11e59a90080027f08538
        _SE_UUID_HASH===================================================
    # WebUI
    #===============================================================================
    # Daemons that can load this module:
    # - broker
    # This module is the visualization interface
    #===============================================================================
    
    
    
    define module {
    
    # Shinken Enterprise. Lines added by import core. Do not remove it, it's used by Shinken Enterprise to update your objects if you re-import them.
        _SE_UUID             core-module-2e0f08c45adc11e59a90080027f08538
        _SE_UUID_HASH        99215795c7e21b658e7c34989e872fcc
    # End of Shinken Enterprise part
    
        #======== Module identity =========
        # Module name. Must be unique
        module_name               WebUI
    
        # Module type (to load module code). Do not edit.
        module_type               webui
    
    
    
        #======== Listening address =========
        # host: IP address to listen to.
        #       note: 0.0.0.0 = all interfaces.
        host                      0.0.0.0
        # port to listen
        port                      7767
    
        # HTTPs part, enable if you want to set the visualisation interface listen in HTTPs mode
        # disabled by default. Set your own certificates.
        use_ssl                   0
        ssl_cert                  /etc/shinken/certs/server.cert
        ssl_key              99215795c7e21b658e7c34989e872fcc
    # End of Shinken Enterprise part /etc/shinken/certs/server.key
    
    
        #======== Module identitySecurity =========
        # Module name. Must be unique auth_secret: secret key used to crypt cookie.
        module_name# note: must be the same as the configuration UI
        auth_secret  WebUI
    
        # Module type (to load module code). Do not edit.
      THIS SHOULD module_typeBE CHANGED BEFORE PRODUCTION
    
        # Allow or not HTML chars in plugins webuioutput
    
    
    
        #======== Listening address =========
     allow_html_output     # host: IP address to listen to.0
    
        # Use users ACL or enable  note: 0.0.0.0 = all interfaces.
    all for everyone
        manage_acl       host           1
    
        # Remote application authentication
        0.0.0.0
        # port# if 1: allow the user to listen
    be load from a portHTTP Header
        remote_user_enable          0
    
        # which HTTP 7767
    
    header to get user # HTTPs part, enable if you want to set the visualisation interface listen in HTTPs modename if remote_user_enable is 1
        remote_user_variable        X_Remote_User
    
        # disabled by default. Set your own certificates.
        use_ssl      if remote_user_enable is 1,
        # http_remote_user_case_sensitive to 1 enable case check on remote user login
        # http_remote_user_case_sensitive to 0 disable case check on remote user 0login
        ssl_cert# default value : 1, login is case sensitive
        remote_user_case_sensitive  1
    
        /etc/shinken/certs/server.cert
        ssl_key    # Maximum output length for plugin output, 0=no limit
        max_output_length           /etc/shinken/certs/server.key0
    
    
    
        #======== SecurityLang ============
        # Select the lang that will be used by default on the UIs
        # Currently auth_secret: secret key used to crypt cookie.managed:
        # -en    (english)
        # note: must be the same as the configuration UI
     -fr    (francais)
        lang		          auth_secret      LANG
    
    
    
        #======== Paths =========
         AUTH-SECRET-22316-4472-3256
    
    share_dir     # Allow or not HTML chars in plugins output
        allow_html_output  /var/lib/shinken/share
        photo_dir      0
    
        # Use users ACL or enable all for everyone /var/lib/shinken/photos
    
        manage_acl  #======== Modules =========
        # Modules loaded by the Visualisation interface
        #  1Available:
    
        # Remote application authentification
    - Cfg_password    # if 1: allow the user to: becheck loadpassword from athe HTTPuser Headerconfiguration
        remote_user_enable# - auth-active-directory : check password from active   1
    directory
        # which- HTTP header to get user name if remote_user_enable is 1
    Mongodb       remote_user_variable       X-Forwarded-User
    
     : [mandatory] use #to ifsave remote_user_enable is 1, data (hive, favorites, ...)
        # http_remote_user_case_sensitive to 1 enable case check on remote user login- webui-enterprise      : [mandatory]
        # http_remote_user_case_sensitive to 0 disable case check on remote user login
    - sla            # default value : 1, login is case sensitive
        remote_user_case_sensitive  1
    
    : [mandatory] read sla from this module definition
        # Maximum outputmodules length for plugin output, 0=no limit
        max_output_length         Cfg_password,  0
    Mongodb,webui-enterprise, sla
    
    
        #======== Lang =========
        # Select the lang that will be used by default on the UIs Metrology access =========
        # CurrentlyThis managed:
    parameter defines the graphite #server -enaddresses for each realm (english)
    used to create the # -fr    (francais)metrology data.
        lang# The address preceded by the character * corresponds to the default graphite.
        # You can specify an address for a specific realm.
        # To define fr
    
    
    
    multiple graphite backends  #======== Paths =========
        share_diraddresses, values must be separated by a comma
        # Ex. : graphite_backends France:127.0.0.1, Bordeaux:192.168.1.100:8080
        # Ex. : graphite_backends  /var/lib/shinken/share*:127.0.0.1, Paris:192.168.2.200:8080
        photographite_dir backends *:127.0.0.1
    
        # Before a graphite query is done, the graphite server    /var/lib/shinken/photos
    
        #======== Modules =========is tested
        # ModulesTimeout loaded byfor the Visualisationalive interfacetimeout
        # Availabledefault:
     10 (seconds)
      # - Cfg_passwordmetrology__ping_timeout    10
    
        # Timeout :for check password from the user configuration
        # - auth-active-directory : check password from active directorygraphite queries
        # default: 20 (seconds)
        # - Mongodb  metrology__query_timeout    20
    
        # If the test does fail, the graphite server :will [mandatory]be useexclude toduring savethis usertime
     data (hive, favorites, ...)
        # - webui-enterprise  # to avoid to lock query for timeouts
        # default: [mandatory] 120 (seconds)
        # - sla metrology__after_error_wait_before_retry   120
    
    
        #======== Broks getter in   WebUI =========
        # These parameters allow :some [mandatory]internal readtuning slain frombroks thismanagement modulein definitionWebUI
    
        modules# Enable or disable late broks sets catchup
          # webui__broks_getter__activate_late_set_catchup      Cfg_password, Mongodb,webui-enterprise, sla
    
    
          #======== Metrology access =========
        # Multi-realm graphite parameter
        graphite_backends	      *:127.0.0.1
    
        # Before a graphite query is done, the graphite server is tested Take extra broks sets to manage if more than this parameter sets are waiting
        # Timeout for the alive timeout
     webui__broks_getter__nb_late_set_allowed_before_catchup            # default: 10 (seconds)
        metrology__ping_timeout    10
    
        # Timeout for graphite queries
        # default: 20 (seconds)
        metrology__query_timeout    20
    Stop taking extra broks sets in catchup when we reach this number of broks
        # If the test does fail, the graphite server will be exclude during this timewebui__broks_getter__catchup_broks_managed_by_module_in_a_catchup_loop        200000
    
        # toContinue avoidcatchup toif locktoo querymuch forlate timeouts
    broks sets remains after
     # default: 120 (seconds)
        metrology__after_error_wait_before_retry   120
    # webui__broks_getter__catchup_run_endless_until_nb_late_set_allowed_reached    0
    
        #======== Broks getter in WebUI =========
        # These parameters allow some internal tuning in broks management in WebUI
      
    	# Enable or disable late broks sets catchup
    	 Take the lock as soon as getter thread has some broks to manage
        # in order to attempt to reduce concurrent usage of CPU
        # webui__broks_getter__activateinclude_latedeserialisation_set_catchup								1
      
    and_catchup_in_lock          # Take extra broks sets0
    
    
     to manage if more than this parameter sets are waiting #======== Webui Authentication External Log =========
        # webui__broks_getter__nb_late_set_allowed_before_catchup	     Log the webui authentication history in a file
    
        # Enable authentication log or not.
        # by default: 10
      0 (disabled)
        #  Stop taking/!\ extraNeed broksbe setschange in catchupthe when we reach this number of broksfile [OVERLOAD_FROM] webui_cfg_overload.cfg
        # webui__broks_getter__catchup_broks_managed_by_module_in_a_catchup_loopwebui__log_users__enabled=0
    
        # File use for 200000
    log authentication history
        # Continue catchup if/!\ tooNeed muchbe latechange broksin setsthe remains after 
        # webui__broks_getter__catchup_run_endless_until_nb_late_set_allowed_reached	1
     file [OVERLOAD_FROM] webui_cfg_overload.cfg
        # webui__log_users__file_path=/var/log/shinken/webui/log_users.log
    
        # TakeAdd theuser lockname asto soonlog.
     as getter thread has# someby broksdefault: to0 manage(disabled)
        #  in order/!\ toNeed attemptbe tochange reducein concurrentthe usage of CPUfile [OVERLOAD_FROM] webui_cfg_overload.cfg
        # webui__brokslog_getterusers__includeadd_deserialization_and_catchup_in_lock 				user_name=0
    
    
          ##======== Extended configuration ========
        # The line [OVERLOAD_FROM] /etc/shinken/_default/daemons/brokers/modules/webui.cfg must be present and must not be changed !
        # You can overload value in the webui_cfg_overload.cfg.
        [OVERLOAD_FROM] /etc/shinken/_default/daemons/brokers/modules/webui.cfg
        [OVERLOAD_FROM] /etc/shinken-user/configuration/daemons/brokers/modules/webui/webui_cfg_overload.cfg
    }
    }