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
stylenone

Contexte

Vous pouvez modifier le paramétrage du Module WebUI ( module qui porte l' UI de Visualisation ) :

  • La configuration du module se trouve par défaut dans le fichier  /etc/shinken/modules/webui .cfg
  • Vous trouverez aussi systématiquement un exemple dans  /etc/shinken-user-example/configuration/daemons/brokers/modules/webui/webui-example.cfg

Exemple de fichier de configuration

Code Block
languagejs
themeConfluence
#================================================================================
# WebUI
#================================================================================
# Daemons that can load this module:
# - broker
# This module is the visualization interface
# CFG_FORMAT_VERSION 1
#================================================================================

define module {

    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ─────────────────────────────────────────────    MODULE IDENTITY    ───────────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Module name [ Must be unique ]                                                                    [ MANDATORY ] ───
    # ───                                                                                                                 ───
    module_name                                         WebUI

    # ─── Module type [ Do not edit ]                                                                       [ MANDATORY ] ───
    # ───                                                                                                                 ───
    module_type                                         webui

    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ────────────────────────────────────────────    INTERFACE OPTIONS    ──────────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ────────────────────────  Lang  ───────────────────────────────────────────────────────────────────────────────────── #

    # ─── Select the lang that will be used by default on the UIs.                                                        ───
    # ───       Currently managed:                                                                                        ───
    #                                                                                                                     ───
    #           ...     : en => (english)                                                                                 ───
    #           ...     : fr => (francais)                                                                                ───
    # ───                                                                                                                 ───
    lang                                                fr

    # ────────────────────  Images paths  ───────────────────────────────────────────────────────────────────────────────── #

    # ─── Folder containing shared files (displayed UI icons)                                                             ───
    # ───                                                                                                                 ───
    share_dir                                           /var/lib/shinken/share

    # ─── Folder containing pictures                                                                                      ───
    # ───                                                                                                                 ───
    photo_dir                                           /var/lib/shinken/photos

    # ──────────────────────  Outputs  ──────────────────────────────────────────────────────────────────────────────────── #

    # ─── Maximum output length for plugin output                                                                         ───
    # ───       note: 0 = no limit                                                                                        ───
    # ───                                                                                                                 ───
    max_output_length                                   0

    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ──────────────────────────────────    INTERFACE ACCESS OPTIONS AND SECURITY    ────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ───────────────  Listening address/port  ──────────────────────────────────────────────────────────────────────────── #

    # ─── IP address to listen to.                                                                                        ───
    # ───       note: 0.0.0.0 = all interfaces                                                                            ───
    # ───                                                                                                                 ───
    host                                                0.0.0.0

    # ─── Port to listen to.                                                                                              ───
    # ───                                                                                                                 ───
    port                                                7767

    # ───────────────────────  HTTPS  ───────────────────────────────────────────────────────────────────────────────────── #

    # ─── Enable HTTPS.                                                                                                   ───
    #                                                                                                                     ───
    #           Default : 0 => Use HTTP                                                                                   ───
    #           ...     : 1 => Use HTTPS                                                                                  ───
    # ───                                                                                                                 ───
    use_ssl                                             0

    # ─── SSL Certificates to use.                                                                                        ───
    # ───                                                                                                                 ───
    ssl_cert                                            /etc/shinken/certs/server.cert

    # ─── SSL key to use.                                                                                                 ───
    # ───                                                                                                                 ───
    ssl_key                                             /etc/shinken/certs/server.key

    # ──────────────────────  Security  ─────────────────────────────────────────────────────────────────────────────────── #

    # ─── Secret key used to crypt cookie.                                                                                ───
    # ───       note: must be the same as the configuration UI                                                            ───
    # ───                                                                                                                 ───
    auth_secret                                         THIS SHOULD BE CHANGED BEFORE PRODUCTION

    # ─── Manage ACL.                                                                                                     ───
    #                                                                                                                     ───
    #           ...     : 0 => Enable everything for everyone                                                             ───
    #           Default : 1 => Use users ACL                                                                              ───
    # ───                                                                                                                 ───
    manage_acl                                          1

    # ─── Remote application authentication.                                                                              ───
    #                                                                                                                     ───
    #           Default : 0 => Disable authentication using HTTP Header                                                   ───
    #           ...     : 1 => Allow the user to be load from a HTTP Header                                               ───
    # ───                                                                                                                 ───
    remote_user_enable                                  0

    # ─── HTTP Header to use to get user name if remote_user_enable is set to 1.                                          ───
    # ───                                                                                                                 ───
    remote_user_variable                                X-Remote-User

    # ─── Enable case sensitive for user name from remote_user_variable HTTP Header.                                      ───
    #                                                                                                                     ───
    #           ...     : 0 => Disable case check on remote user login                                                    ───
    #           Default : 1 => Enable case check on remote user login                                                     ───
    # ───                                                                                                                 ───
    remote_user_case_sensitive                          1

    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ─────────────────────────────────────────────────    MODULES    ───────────────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Modules loaded by the Visualisation interface.                                                                  ───
    # ───       Available:                                                                                                ───
    #                                                                                                                     ───
    #           ...     : Mongodb => [mandatory] use to save user data (hive, favorites, ...)                             ───
    #           ...     : webui-enterprise => [mandatory]                                                                 ───
    #           ...     : sla => [mandatory] read sla from this module definition                                         ───
    #           ...     : Cfg_password => check password from the user configuration                                      ───
    #           ...     : event-manager-reader => activate the event manager page to show event                           ───
    #                                             (do not forget to activate the module in your broker to write data)     ───
    #           ...     : auth-active-directory => check password from active directory                                   ───
    # ───                                                                                                                 ───
    modules                                             Mongodb, webui-enterprise, sla, Cfg_password, event-manager-reader

    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ────────────────────────────────────────────    METROLOGY ACCESS    ───────────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── This parameter defines the graphite server addresses for each realm used to create the metrology data.          ───
    # ─── The address preceded by the character * corresponds to the default graphite.                                    ───
    # ─── You can specify an address for a specific realm by using this syntax : <Realm>=<Protocol>://<Hostname>:<Port>   ───
    # ─── For now, the managed protocol is : http / https                                                                 ───
    # ─── Ex. : graphite_backends *=http://127.0.0.1:80, France=http://192.168.1.220:8080                                 ───
    # ───                                                                                                                 ───
    graphite_backends                                   *=http://127.0.0.1:80

    # ─── Before a graphite query is done, the graphite server is tested                                                  ───
    # ─── Timeout for the alive timeout (in seconds)                                                                      ───
    #                                                                                                                     ───
    #           Default : 10 (seconds)                                                                                    ───
    # ───                                                                                                                 ───
    metrology__ping_timeout                             10

    # ─── Timeout for graphite queries (in seconds)                                                                       ───
    #                                                                                                                     ───
    #           Default : 20 (seconds)                                                                                    ───
    # ───                                                                                                                 ───
    metrology__query_timeout                            20

    # ─── If the test does fail, the graphite server will be exclude during this time to avoid to lock query for timeouts ───
    #                                                                                                                     ───
    #           Default : 120 (seconds)                                                                                   ───
    # ───                                                                                                                 ───
    metrology__after_error_wait_before_retry            120

    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ──────────────────────────────────────────    BROKS GETTER IN WEBUI    ────────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── INTERNAL : DO NOT EDIT FOLLOWING PARAMETER WITHOUT YOUR DEDICATED SUPPORT                                       ───
    # ─── These parameters allow some internal tuning in broks management in WebUI                                        ───

    # ─── Enable or disable late broks sets catchup                                                                       ───
    #                                                                                                                     ───
    #           ...     : 0 => Disable                                                                                    ───
    #           Default : 1 => Enable                                                                                     ───
    # ───                                                                                                                 ───
    # broker__module_webui__broks_getter__activate_late_set_catchup 1

    # ─── Take extra broks sets to manage if more than this parameter sets are waiting                                    ───
    # ───                                                                                                                 ───
    # broker__module_webui__broks_getter__nb_late_set_allowed_before_catchup 10

    # ─── Stop taking extra broks sets in catchup when we reach this number of broks                                      ───
    # ───                                                                                                                 ───
    # broker__module_webui__broks_getter__catchup_broks_managed_by_module_in_a_catchup_loop 200000

    # ─── Continue catchup if too much late broks sets remains after                                                      ───
    # ───                                                                                                                 ───
    # broker__module_webui__broks_getter__catchup_run_endless_until_nb_late_set_allowed_reached 0

    # ─── Take the lock as soon as getter thread has some broks to manage in order to                                     ───
    # ─── attempt to reduce concurrent usage of CPU                                                                       ───
    # ───                                                                                                                 ───
    # broker__module_webui__broks_getter__include_deserialisation_and_catchup_in_lock 0

    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ───────────────────────────────────────    EXTERNAL AUTHENTICATION LOG    ─────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Log the webui authentication history in a file                                                                  ───

    # ─── Enable authentication log or not.                                                                               ───
    # ───       /!\ Need to be changed in the file [OVERLOAD_FROM] webui_cfg_overload.cfg                                 ───
    #           Default : 0 => Disable                                                                                    ───
    #           ...     : 1 => Enable                                                                                     ───
    #                                                                                                                     ───
    # broker__module_webui__log_users__enabled            0

    # ─── File used for log authentication history.                                                                       ───
    # ───       /!\ Need to be changed in the file [OVERLOAD_FROM] webui_cfg_overload.cfg                                 ───
    #                                                                                                                     ───
    # broker__module_webui__log_users__file_path          /var/log/shinken/webui/log_users.log

    # ─── Add user name to log.                                                                                           ───
    # ───       /!\ Need to be changed in the file [OVERLOAD_FROM] webui_cfg_overload.cfg                                 ───
    #           Default : 0 => Disable                                                                                    ───
    #           ...     : 1 => Enable                                                                                     ───
    #                                                                                                                     ───
    # broker__module_webui__log_users__add_user_name      0

    # ─── The log files will be rotated daily, up to the number of days configured.                                       ───
    # ─── All log files older than the configured number of days will be deleted automatically.                           ───
    # ───       /!\ Need to be changed in the file [OVERLOAD_FROM] webui_cfg_overload.cfg                                 ───
    #           Default : 7 (days)                                                                                        ───
    #                                                                                                                     ───
    # broker__module_webui__log_users__logs_rotation__nb_days_before_deletion 7

    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ─────────────────────────────────────    MONITORING INFORMATION IN WEBUI    ───────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── If the loading of the configuration exceeds a given time, shinken-healthcheck and the check                     ───
    # ─── "Broker - $KEY$ - Module Visualisation UI" can warn you.                                                        ───
    # ───       This parameter ( in minutes ) allows you to define the time before the warning.                           ───
    # ───                                                                                                                 ───
    # broker__module_webui__loading_new_configuration__time_before_warning_if_load_is_long 10

    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ────────────────────────────────────────────────    SYNTHESIS    ──────────────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── These parameters are used to configure the Synthesis (or "Wall") menu.                                          ───

    # ────────────────  Reporting Parameters  ───────────────────────────────────────────────────────────────────────────── #

    # ─── This property enables or disables the reports in the Synthesis menu.                                            ───
    # ───       /!\ Need to be changed in the file [OVERLOAD_FROM] webui_cfg_overload.cfg                                 ───
    #           ...     : 0 => Disable                                                                                    ───
    #           Default : 1 => Enable                                                                                     ───
    #                                                                                                                     ───
    # broker__module_webui__synthesis__report__enable     1

    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ─────────────────────────────────────────    EXTENDED CONFIGURATION    ────────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── The first file ( in /etc/shinken/_default ) contains the default values provided by Shinken. This file :        ───
    # ───       will be erased each update/patch                                                                          ───
    # ───       must be present                                                                                           ───
    # ───       must not be changed.                                                                                      ───
    [OVERLOAD_FROM] /etc/shinken/_default/daemons/brokers/modules/webui.cfg
    [OVERLOAD_FROM] /etc/shinken-user/configuration/daemons/brokers/modules/webui/webui_cfg_overload.cfg

}
    

Détails des sections composant le fichier de configuration

Identification du module

Code Block
languagejs
themeConfluence
	# ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ─────────────────────────────────────────────    MODULE IDENTITY    ───────────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Module name [ Must be unique ]                                                                    [ MANDATORY ] ───
    # ───                                                                                                                 ───
    module_name                                         WebUI

    # ─── Module type [ Do not edit ]                                                                       [ MANDATORY ] ───
    # ───                                                                                                                 ───
    module_type                                         webui

Il est possible de définir plusieurs instances de module de type "webui" dans votre architecture Shinken.

  • Chaque instance devra avoir un nom unique.
NomTypeUnitéDéfautCommentaire
No Format
module_name 
Texte--- WebUI

Nous vous conseillons de choisir un nom en fonction de l'utilisation du module pour que votre configuration soit simple à maintenir.

Doit être unique.

No Format
module_type 
Texte--- webui Définit la fonction du module. Ne pas modifier.

Options de fonctionnement de l'interface

Code Block
languagejs
themeConfluence
    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ────────────────────────────────────────────    INTERFACE OPTIONS    ──────────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ────────────────────────  Lang  ───────────────────────────────────────────────────────────────────────────────────── #

    # ─── Select the lang that will be used by default on the UIs.                                                        ───
    # ───       Currently managed:                                                                                        ───
    #                                                                                                                     ───
    #           ...     : en => (english)                                                                                 ───
    #           ...     : fr => (francais)                                                                                ───
    # ───                                                                                                                 ───
    lang                                                fr

    # ────────────────────  Images paths  ───────────────────────────────────────────────────────────────────────────────── #

    # ─── Folder containing shared files (displayed UI icons)                                                             ───
    # ───                                                                                                                 ───
    share_dir                                           /var/lib/shinken/share

    # ─── Folder containing pictures                                                                                      ───
    # ───                                                                                                                 ───
    photo_dir                                           /var/lib/shinken/photos

    # ──────────────────────  Outputs  ──────────────────────────────────────────────────────────────────────────────────── #

    # ─── Maximum output length for plugin output                                                                         ───
    # ───       note: 0 = no limit                                                                                        ───
    # ───                                                                                                                 ───
    max_output_length                                   0

    

Langues

NomTypeUnitéDéfautCommentaire
No Format
 lang 
Texte---

en

Modification de la langue utilisée dans l'interface de visualisation.
À ce jour, deux langues sont disponibles

  • en ( Anglais )
  • fr ( Français )

Dossiers de fichiers partagés et de photos

NomTypeUnitéDéfautCommentaire
No Format
 share_dir
Texte---

/var/lib/shinken/share

Emplacement du dossier des fichiers partagés ( contiens les icônes affichées dans les listes de l'interface de configuration )

No Format
  photo_dir 
Texte--- /var/lib/shinken/photos

Emplacement du dossier des photos

Limitation de la taille des textes de résultats

NomTypeUnitéDéfautCommentaire
No Format
  max_output_length
Entier--- 0

Taille maximum de caractères pour l'affichage des résultats

La valeur 0 signifie que la limite n'est pas définie.

Il existe une autre limite dans le fichier de configuration de shinken.cfg qui peut influer sur l'affichage max_plugins_output_length ( voir la page Fichier de configuration ( shinken.cfg ) )

Options d'accès à l'interface et sécurité

Code Block
languagejs
themeConfluence
    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ──────────────────────────────────    INTERFACE ACCESS OPTIONS AND SECURITY    ────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ───────────────  Listening address/port  ──────────────────────────────────────────────────────────────────────────── #

    # ─── IP address to listen to.                                                                                        ───
    # ───       note: 0.0.0.0 = all interfaces                                                                            ───
    # ───                                                                                                                 ───
    host                                                0.0.0.0

    # ─── Port to listen to.                                                                                              ───
    # ───                                                                                                                 ───
    port                                                7767

    # ───────────────────────  HTTPS  ───────────────────────────────────────────────────────────────────────────────────── #

    # ─── Enable HTTPS.                                                                                                   ───
    #                                                                                                                     ───
    #           Default : 0 => Use HTTP                                                                                   ───
    #           ...     : 1 => Use HTTPS                                                                                  ───
    # ───                                                                                                                 ───
    use_ssl                                             0

    # ─── SSL Certificates to use.                                                                                        ───
    # ───                                                                                                                 ───
    ssl_cert                                            /etc/shinken/certs/server.cert

    # ─── SSL key to use.                                                                                                 ───
    # ───                                                                                                                 ───
    ssl_key                                             /etc/shinken/certs/server.key

    # ──────────────────────  Security  ─────────────────────────────────────────────────────────────────────────────────── #

    # ─── Secret key used to crypt cookie.                                                                                ───
    # ───       note: must be the same as the configuration UI                                                            ───
    # ───                                                                                                                 ───
    auth_secret                                         THIS SHOULD BE CHANGED BEFORE PRODUCTION

    # ─── Manage ACL.                                                                                                     ───
    #                                                                                                                     ───
    #           ...     : 0 => Enable everything for everyone                                                             ───
    #           Default : 1 => Use users ACL                                                                              ───
    # ───                                                                                                                 ───
    manage_acl                                          1

    # ─── Remote application authentication.                                                                              ───
    #                                                                                                                     ───
    #           Default : 0 => Disable authentication using HTTP Header                                                   ───
    #           ...     : 1 => Allow the user to be load from a HTTP Header                                               ───
    # ───                                                                                                                 ───
    remote_user_enable                                  0

    # ─── HTTP Header to use to get user name if remote_user_enable is set to 1.                                          ───
    # ───                                                                                                                 ───
    remote_user_variable                                X-Remote-User

    # ─── Enable case sensitive for user name from remote_user_variable HTTP Header.                                      ───
    #                                                                                                                     ───
    #           ...     : 0 => Disable case check on remote user login                                                    ───
    #           Default : 1 => Enable case check on remote user login                                                     ───
    # ───                                                                                                                 ───
    remote_user_case_sensitive                          1

Adresse et port d'écoute

Il est possible de configurer l'interface réseau sur laquelle est mise à disposition l'interface de visualisation. Si par exemple l'interface de visualisation ne doit être accessible que via un réseau local, il est possible d'écouter que les requêtes sur cette interface réseau.

Les paramètres suivants permettent de configurer l'accès à l'interface de visualisation :

NomTypeUnitéDéfautCommentaire
No Format
host
TexteAdresse IPv4 0.0.0.0 L'interface réseau sur laquelle le module WebUI va écouter.
No Format
port
TextePort réseau 50100 Port réseau sur lequel le module WebUI va écouter.

Sécurisation de la communication avec le module

L'interface de visualisation est accessible via HTTP. Il est recommandé d'utiliser le protocole HTTPS pour chiffrer la communication avec le module.

Si pour des raisons de sécurité, cette interface de visualisation doit être accessible via HTTPS, il est possible de configurer les certificats avec les paramètres suivants :

NomTypeUnitéDéfautCommentaire
No Format
use_ssl
Booléen--- 0

Permet d'activer ou non l'utilisation du protocole HTTPS.

  • 0 : Désactivé ( utilise HTTP )
  • 1 : Activé ( utilise HTTPS )
No Format
ssl_cert
Texte--- /etc/shinken/certs/server.cert Chemin vers le certificat SSL utilisé par le protocole HTTPS.
No Format
ssl_key
Texte--- /etc/shinken/certs/server.key Chemin vers la clé SSL utilisée par le protocole HTTPS.

Sécurité du module

NomTypeUnitéDéfautCommentaire
No Format
 auth_secret
Texte------

Les cookies sont chiffrés par l'interface afin que les utilisateurs ne puissent pas les créer et récupérer le compte d'un autre utilisateur. 
Cette clé de chiffrement est une chaîne de caractères aléatoire.
Il vous est possible de créer votre propre clé en mettant des caractères aléatoires les uns à la suite des autres.
Plus votre clé sera longue, plus votre cookie sera sécurisé.

Pour cela, il utilise la clé de chiffrement contenue dans ce paramètre .

Warning

Doit être la même que celle de l'interface de configuration.
Voir la page Paramètres globaux ( synchronizer.cfg )

Warning

Ce paramètre est généré lors de l'installation et n'a pas à être modifié par les administrateurs.

No Format
  manage_acl 
Booléan--- 1

Gestion des droits d'exécution des utilisateurs sur l'exécution d'actions sur l'interface de visualisation.
( ex: Forcer le statut, définir une période de maintenance ... )

Selon les droits définis sur l'utilisateur, certains boutons d'actions lui seront cachés. 

No Format
  remote_user_enable 
Booléan--- 0

Authentification de l'application à distance. 
C'est une authentification unique (  SSO  ). Elle est souvent activée pour permettre de se connecter de manière centralisée à des services.

Pour plus de détail sur l'utilisation de l'authentification unique, référez-vous à la page WebUI - Authentification unique ( SSO ).


No Format
  remote_user_variable 
Texte

X-REMOTE-USER

En-tête HTTP qui permettra d'obtenir le nom de l'utilisateur si le paramètre "remote_user_enable" est activé.

Pour plus de détail sur l'utilisation de l'authentification unique, référez-vous à la page WebUI - Authentification unique ( SSO ).

No Format
 remote_user_case_sensitive 
Booléan
1

Vérification de la casse sur le login de l'utilisateur distant seulement si le paramètre remote_user_enable est activé

  • 1 : Active la vérification 
  • 0 : Désactive la vérification

Pour plus de détail sur l'utilisation de l'authentification unique, référez-vous à la page WebUI - Authentification unique ( SSO ).

Modules du module WebUI

Code Block
languagejs
themeConfluence
    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ─────────────────────────────────────────────────    MODULES    ───────────────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Modules loaded by the Visualisation interface.                                                                  ───
    # ───       Available:                                                                                                ───
    #                                                                                                                     ───
    #           ...     : Mongodb => [mandatory] use to save user data (hive, favorites, ...)                             ───
    #           ...     : webui-enterprise => [mandatory]                                                                 ───
    #           ...     : sla => [mandatory] read sla from this module definition                                         ───
    #           ...     : Cfg_password => check password from the user configuration                                      ───
    #           ...     : event-manager-reader => activate the event manager page to show event                           ───
    #                                             (do not forget to activate the module in your broker to write data)     ───
    #           ...     : auth-active-directory => check password from active directory                                   ───
    # ───                                                                                                                 ───
    modules                                             Mongodb, webui-enterprise, sla, Cfg_password, event-manager-reader

Plusieurs modules sont disponibles pour le module WebUI

NomTypeUnitéDéfautCommentaire
No Format
modules
Texte---

Liste de noms de sous-modules, séparés par des virgules. Par défaut, aucun sous-module n'est activé.

Voici la liste des modules possibles :

  • Les obligatoires
    • Mongodb ( obligatoire : pour le stockage des données )
    • webui-enterprise ( obligatoire : pour les fonctions de base de l'interface utilisateur → favori, portails, listes )
    • sla ( lecture des SLAs dans la base )
  • Optionels:
    • auth-active-directory
    • Cfg_password
    • event-manager-reader

Vous trouverez le détail des modules dans la page suivante : Les Modules de la WebUI

Connexion à la base 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

Accès aux données de Métrologie

Code Block
languagejs
themeConfluence
    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ────────────────────────────────────────────    METROLOGY ACCESS    ───────────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── This parameter defines the graphite server addresses for each realm used to create the metrology data.          ───
    # ─── The address preceded by the character * corresponds to the default graphite.                                    ───
    # ─── You can specify an address for a specific realm by using this syntax : <Realm>=<Protocol>://<Hostname>:<Port>   ───
    # ─── For now, the managed protocol is : http / https                                                                 ───
    # ─── Ex. : graphite_backends *=http://127.0.0.1:80, France=http://192.168.1.220:8080                                 ───
    # ───                                                                                                                 ───
    graphite_backends                                   *=http://127.0.0.1:80

    # ─── Before a graphite query is done, the graphite server is tested                                                  ───
    # ─── Timeout for the alive timeout (in seconds)                                                                      ───
    #                                                                                                                     ───
    #           Default : 10 (seconds)                                                                                    ───
    # ───                                                                                                                 ───
    metrology__ping_timeout                             10

    # ─── Timeout for graphite queries (in seconds)                                                                       ───
    #                                                                                                                     ───
    #           Default : 20 (seconds)                                                                                    ───
    # ───                                                                                                                 ───
    metrology__query_timeout                            20

    # ─── If the test does fail, the graphite server will be exclude during this time to avoid to lock query for timeouts ───
    #                                                                                                                     ───
    #           Default : 120 (seconds)                                                                                   ───
    # ───                                                                                                                 ───
    metrology__after_error_wait_before_retry            120 
NomTypeUnitéDéfautCommentaire
No Format
 graphite_backends 
Texte--- ---

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=PROTOCOL://HOSTNAME:PORT

  • PROTOCOL: Protocole de communication entre la WebUI et graphite, configurable dans le fichier /etc/httpd/conf.d/graphite.conf. Peut prendre les valeurs http ( par défaut ) ou https.
  • REALM : Nom du royaume. Si REALM = "*" alors la suite de l'adresse sera utilisée par défaut par les autres royaumes n'ayant pas défini leur "graphite_backend"
  • HOSTNAME : Nom de l'hôte ou adresse ip de où est situé Graphite.
  • PORT : Port du service grapite, configurable ( par défaut ) 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é.

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

  • Exemple :  *=http://127.0.0.1:80, France=http://192.168.1.220:8080

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

No Format
  metrology__ping_timeout 
EntierSecondes 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.

No Format
  metrology__query_timeout 
EntierSecondes 20 Temps maximum d'exécution des requêtes graphites.
No Format
  metrology__after_error_wait_before_retry 
EntierSecondes 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.

Récupération des broks

Code Block
languagejs
themeConfluence
    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ──────────────────────────────────────────    BROKS GETTER IN WEBUI    ────────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── INTERNAL : DO NOT EDIT FOLLOWING PARAMETER WITHOUT YOUR DEDICATED SUPPORT                                       ───
    # ─── These parameters allow some internal tuning in broks management in WebUI                                        ───

    # ─── Enable or disable late broks sets catchup                                                                       ───
    #                                                                                                                     ───
    #           ...     : 0 => Disable                                                                                    ───
    #           Default : 1 => Enable                                                                                     ───
    # ───                                                                                                                 ───
    # broker__module_webui__broks_getter__activate_late_set_catchup 1

    # ─── Take extra broks sets to manage if more than this parameter sets are waiting                                    ───
    # ───                                                                                                                 ───
    # broker__module_webui__broks_getter__nb_late_set_allowed_before_catchup 10

    # ─── Stop taking extra broks sets in catchup when we reach this number of broks                                      ───
    # ───                                                                                                                 ───
    # broker__module_webui__broks_getter__catchup_broks_managed_by_module_in_a_catchup_loop 200000

    # ─── Continue catchup if too much late broks sets remains after                                                      ───
    # ───                                                                                                                 ───
    # broker__module_webui__broks_getter__catchup_run_endless_until_nb_late_set_allowed_reached 0

    # ─── Take the lock as soon as getter thread has some broks to manage in order to                                     ───
    # ─── attempt to reduce concurrent usage of CPU                                                                       ───
    # ───                                                                                                                 ───
    # broker__module_webui__broks_getter__include_deserialisation_and_catchup_in_lock 0
Warning

Ces paramètres sont dédiés au fonctionnement interne au module, il est fortement recommandé de ne pas les modifier sans votre support dédié. 

Le fonctionnement du thread 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.

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 à l'API 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 )
NomTypeUnitéDéfautCommentaire
No Format
broker__module_webui__broks_getter__activate_late_set_catchup
Booléen--- 1

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

  • 1  : Activé
  • 0  : Désactivé
No Format
broker__module_webui__broks_getter__nb_late_set_allowed_before_catchup  
NombreNombre de broks set 10 Nombre 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 immédiatement.
No Format
broker__module_webui__broks_getter__catchup_broks_managed_by_module_in_a_catchup_loop 
NombreNombre de broks 200000

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.

No Format
broker__module_webui__broks_getter__catchup_run_endless_until_nb_late_set_allowed_reached 
Booléen--- 1

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 (  "avec le lock"  )
  • 0  : arrêter l'absorption de brok et libérer la session critique (  rendre le lock  )
No Format
broker__module_webui__broks_getter__include_deserialisation_and_catchup_in_lock 
Booléen--- 0

Dans le cas où vous voulez disposer d'un maximum de temps CPU pour traiter les  broks  en retard, vous pouvez activer ce paramètre afin de bloquer les requêtes à l'API dès la phase 2  (   Récupération de broks en retard   ) puis une fois les broks rattrapés passés en Phase 5 (   Traitement des broks ).

Deux valeurs possibles pour ce paramètre :

  • 1  : Activé
  • 0  : Désactivé

Les logs d'activité des utilisateurs ( authentification et session )

Les paramètres suivants permettent au module WebUI de créer un fichier de log supplémentaire pour y recenser l'activité des utilisateurs ( authentification et session ), qu'elles soient réussites ou non, ainsi que les déconnexions.

  • Nous vous conseillons fortement de les surcharger dans le fichier /etc/shinken-user/configuration/daemons/brokers/modules/webui/webui_cfg_overload.cfg.
  • Ils sont présents dans ce fichier pour vous indiquer qu'ils existent, mais leur modification dans le fichier de surcharge vous permettra une meilleure gestion ( ne pas modifier ce que l'on livre par défaut, mais le surcharger ).


Code Block
languagejs
themeConfluence
    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ───────────────────────────────────────    EXTERNAL AUTHENTICATION LOG    ─────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Log the webui authentication history in a file                                                                  ───

    # ─── Enable authentication log or not.                                                                               ───
    # ───       /!\ Need to be changed in the file [OVERLOAD_FROM] webui_cfg_overload.cfg                                 ───
    #           Default : 0 => Disable                                                                                    ───
    #           ...     : 1 => Enable                                                                                     ───
    #                                                                                                                     ───
    # broker__module_webui__log_users__enabled            0

    # ─── File used for log authentication history.                                                                       ───
    # ───       /!\ Need to be changed in the file [OVERLOAD_FROM] webui_cfg_overload.cfg                                 ───
    #                                                                                                                     ───
    # broker__module_webui__log_users__file_path          /var/log/shinken/webui/log_users.log

    # ─── Add user name to log.                                                                                           ───
    # ───       /!\ Need to be changed in the file [OVERLOAD_FROM] webui_cfg_overload.cfg                                 ───
    #           Default : 0 => Disable                                                                                    ───
    #           ...     : 1 => Enable                                                                                     ───
    #                                                                                                                     ───
    # broker__module_webui__log_users__add_user_name      0

    # ─── The log files will be rotated daily, up to the number of days configured.                                       ───
    # ─── All log files older than the configured number of days will be deleted automatically.                           ───
    # ───       /!\ Need to be changed in the file [OVERLOAD_FROM] webui_cfg_overload.cfg                                 ───
    #           Default : 7 (days)                                                                                        ───
    #                                                                                                                     ───
    # broker__module_webui__log_users__logs_rotation__nb_days_before_deletion 7



CléTypeUnitéValeur par défautDescription
No Format
broker__module_webui__log_users__enabled
Booléen--- 0 Active ou non le log de connexion et de session des utilisateurs dans un fichier de logs à part :
  • 1 : Activé
  • 0 : Désactivé
No Format
broker__module_webui__log_users__file_path 
Texte--- /var/log/shinken/webui/log_users.log Précise le chemin vers lequel les logs vont être écrits.
No Format
broker__module_webui__log_users__add_user_name
Booléen--- 0

Ajoute le nom des utilisateurs dans les logs. Par défaut, seul un identifiant anonyme sera présent à la place.

  • 1 : Nom d'utilisateurs visibles
  • 0 : Nom d'utilisateurs remplacés par des identifiants anonymes
No Format
broker__module_webui__log_users__logs_rotation__nb_days_before_deletion
Entier positifJour(s)
7Paramètre la rotation des logs en jours. Tous les fichiers journaux plus anciens que le nombre de jours configuré seront supprimés automatiquement.

Options pour l'export de la liste en CSV

Il est possible d'effectuer un export CSV depuis une liste dans l'interface de Visualisation. Pour des raisons de performances, ces exports, si ils sont trop importants, sont divisés en plusieurs parties. Ceci afin de ne pas faire tomber le navigateur. Il est possible de modifier ce comportement via les paramètres ci-dessous, afin de correspondre au mieux avec vos besoins.

Warning

Ces paramètres sont dédiés au fonctionnement interne du module, il est fortement recommandé de ne pas les modifier sans votre support dédié. 

Code Block
languagejs
themeConfluence
    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ─────────────────────────────────────────    LIST CSV EXPORT OPTIONS    ───────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── INTERNAL : DO NOT EDIT FOLLOWING PARAMETER WITHOUT YOUR DEDICATED SUPPORT                                       ───

    # ─── Time (in minutes) to keep a list in cache for CSV export                                                        ───
    #                                                                                                                     ───
    #           Default : 1 (minutes)                                                                                     ───
    #                                                                                                                     ───
    broker__module_webui__csv_export_cache__limit_time_to_keep_in_cache 1

    # ─── RAM allowed (in megabytes) to the CSV export cache                                                              ───
    #                                                                                                                     ───
    #           Default : 4000 (MB)                                                                                       ───
    #                                                                                                                     ───
    broker__module_webui__csv_export_cache__limit_memory_to_use_in_cache 4000

    # ─── Number of items to send per CSV Export request                                                                  ───
    #                                                                                                                     ───
    #           Default : 25000                                                                                           ───
    #                                                                                                                     ───
    broker__module_webui__csv_export_cache__number_of_items_per_part 25000
CléTypeValeur par défautDescription
No Format
languagejs
themeConfluence
broker__module_webui__csv_export_cache__limit_time_to_keep_in_cache
Entier 1

Défini le temps maximum de rétention d'un cache d'export en RAM ( en minutes ).

Ce temps est réinitialisé entre chaque requête. Si une partie d'un export est demandée, on remet à 0 le temps limite de rétention de l'export.

No Format
languagejs
themeConfluence
broker__module_webui__csv_export_cache__limit_memory_to_use_in_cache
Entier 4000 Défini la limite de RAM allouée au cache d'export. Si cette limite est dépassée au moment d'un nouvel export, celui-ci ne peut être effectué ( en mégaoctets ).
No Format
languagejs
themeConfluence
 broker__module_webui__csv_export_cache__number_of_items_per_part 
Entier 25000

Défini le nombre d'éléments Shinken par part à envoyer lors de l'export CSV. Ceci défini plus globalement la taille des données envoyées à votre navigateur à chaque requête de l'interface de Visualisation.

Supervision du module WebUI

Code Block
languagejs
themeConfluence
    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ─────────────────────────────────────    MONITORING INFORMATION IN WEBUI    ───────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
 
    # ─── If the loading of the configuration exceeds a given time, shinken-healthcheck and the check                     ───
    # ─── "Broker - $KEY$ - Module Visualisation UI" can warn you.                                                        ───
    # ───       This parameter ( in minutes ) allows you to define the time before the warning.                           ───
    # ───                                                                                                                 ───
    # broker__module_webui__loading_new_configuration__time_before_warning_if_load_is_long 10
NomTypeUnitéDéfautCommentaire
No Format
languagejs
themeConfluence
broker__module_webui__loading_new_configuration__time_before_warning_if_load_is_long
Entierminute10

Ce paramètre permet de définir le temps avant que les outils de vérifications ( Shinken-healthcheck et check "Broker - $KEY$ - Module Visualisation UI" ) considère que le temps de réponse de la WebUI est trop long

Les Synthèses

Les paramètres suivants permettent de modifier le comportement des options dans le menu "Les Synthèses" de la WebUI ( voir la page Les Synthèses pour plus de détail ).


Code Block
languagejs
themeConfluence
    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ────────────────────────────────────────────────    SYNTHESIS    ──────────────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── These parameters are used to configure the Synthesis (or "Wall") menu.                                          ───

    # ────────────────  Reporting Parameters  ───────────────────────────────────────────────────────────────────────────── #

    # ─── This property enables or disables the reports in the Synthesis menu.                                            ───
    # ───       /!\ Need to be changed in the file [OVERLOAD_FROM] webui_cfg_overload.cfg                                 ───
    #           ...     : 0 => Disable                                                                                    ───
    #           Default : 1 => Enable                                                                                     ───
    #                                                                                                                     ───
    # broker__module_webui__synthesis__report__enable     1
NomTypeUnitéDéfautCommentaire
Code Block
languagejs
themeConfluence
broker__module_webui__synthesis__report__enable
Texte--- 1

Permet d'activer/désactiver les rapports Historique & SLA.

  • 1 : Activé ( Le bouton "Rapport" du menu et la génération CSV par script sont disponibles ).
  • 0 : Désactivé ( Le bouton "Rapport" est caché, et la génération CSV par script est désactivé ).

Surcharge de la configuration

Code Block
languagejs
themeConfluence
    # ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ─────────────────────────────────────────    EXTENDED CONFIGURATION    ────────────────────────────────────────── │ #
    # └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── The first file ( in /etc/shinken/_default ) contains the default values provided by Shinken. This file :        ───
    # ───       will be erased each update/patch                                                                          ───
    # ───       must be present                                                                                           ───
    # ───       must not be changed.                                                                                      ───
    [OVERLOAD_FROM] /etc/shinken/_default/daemons/brokers/modules/webui.cfg
    [OVERLOAD_FROM] /etc/shinken-user/configuration/daemons/brokers/modules/webui/webui_cfg_overload.cfg
NomTypeUnitéDéfautCommentaire
No Format
 [OVERLOAD_FROM]
Texte---

Ce paramètre permet de surcharger les paramètres de la webui. Il contient les paramètres de l'interface, qui peuvent être commun avec d'autres WebUI.

Le premier fichier contient les valeurs livrées par défaut par Shinken. Il sera écrasé et mis à jour à chaque mise à jour et installation de patch. Il doit être présent et non modifié.

Ce paramètre peut être utilisé plusieurs fois pour ajouter plusieurs fichiers.


Warning
titleOrdre de priorité des surcharges

Si une même clé est définie dans webui.cfg et dans un fichier de surcharge, c'est la valeur dans le fichier de surcharge qui est conservée. Si une même clé est définie dans plusieurs fichiers de surcharge, c'est la valeur du dernier fichier de surcharge listé dans webui.cfg qui est conservée.

Propriétés uniquement présente dans le fichier de surcharge

Pour toutes les propriétés suivantes, l'explication est la page Surcharge des paramètres du module ( webui_cfg_overload.cfg )

Nom
Code Block
languagejs
themeConfluence
tiles_background
Code Block
languagejs
themeConfluence
colors_graphics
Code Block
languagejs
themeConfluence
history__nb_changes_displayed
Code Block
languagejs
themeConfluence
history__size_sla_pane
Code Block
languagejs
themeConfluence
history__default_collapse_outputs
Code Block
languagejs
themeConfluence
history__default_collapse_outputs