Lorsqu'un utilisateur fait une demande de rapport SLA dans l'Interface de Visualisation, la génération peut avoir un impact non négligeable sur le fonctionnement de l'Interface de Visualisation.

Le fait de déporter la génération des rapports sur le module "broker--module-report-builder" permet :
"broker--module-report-builder".( voir la page Répartition de charge lors de la génération des rapports SLA depuis le module WebUI )
Les modules de type "broker__module_report_builder" sont des modules qui doivent être activés sur un démon de type "broker" qu'on appellera le démon.
broker" ), et ajouter dans le paramètre modules, le nom du module de type "broker__module_report_builder"."broker__module_report_builder"."broker" ( voir la page Le Broker )."broker__module_report_builder" sur un démon de type "broker".Pour prendre en compte le changement de configuration, il faut redémarrer l'Arbiter :
L'exemple suivant
"broker--module-report-builder" , "broker-master",dont la configuration est dans le fichier /etc/shinken/brokers/broker-master.cfg.Modification dans le fichier du module /etc/shinken/brokers/broker-master.cfg :
define broker {
[...]
modules Module 1, Module 2, Module 3, broker--module-report-builder
[...]
} |
Puis redémarrage de l'Arbiter
Pour pouvoir configurer un module de type "broker__module_report_builder", il faut faire un nouveau fichier de configuration grâce au fichier d'exemple fourni par défaut.
Mon-Module-Report-Builder".Mon-Module-Report-Builder" par le nom qui a été choisi.Copier le fichier de définition du module d'exemple : /etc/shinken-user-example/configuration/daemons/brokers/modules/broker__module_report_builder/broker--module-report-builder-example.cfg dans le répertoire de définition des modules /etc/shinken/modules/ .
( Exemple : /etc/shinken/modules/broker--module-report-builder__Mon-Module-Report-Builder.cfg )
|
Il faut vérifier que le fichier appartienne à l'utilisateur shinken et qu'il possède le droit d'édition. Si ce n'est pas le cas, il faut effectuer les commandes suivantes :
chown -R shinken:shinken /etc/shinken/modules/broker--module-report-builder__Mon-Module-Report-Builder.cfg chmod u+w /etc/shinken/modules/broker--module-report-builder__Mon-Module-Report-Builder.cfg |
On change le nom du module en "Mon-Module-Report-Builder" dans le fichier /etc/shinken/modules/broker--module-report-builder__Mon-Module-Report-Builder.cfg
...
# ─── Module name [ Must be unique ] [ MANDATORY ] ───
# ─── ───
module_name Mon-Module-Report-Builder
...
|
Ensuite, il faut ajouter le nouveau module dans le démon de type "broker" correspondant.
Dans notre exemple, on ajoute le module "Mon-Module-Report-Builder" au démon "broker-master" définie dans le fichier /etc/shinken/brokers/broker-master.cfg
define module {
[...]
modules Module 1, Module 2, Module 3, Mon-Module-Report-Builder
[...]
} |
Puis pour finir, il faut redémarrer l'Arbiter pour que le Broker puisse prendre en compte ce nouveau module.
La configuration du module se trouve par défaut dans le fichier /etc/shinken/modules/broker--module-report-builder.cfg
# CFG_FORMAT_VERSION 1 ( SHINKEN : DON'T TOUCH THIS LINE )
#================================================================================
# broker--module-report-builder
#================================================================================
# Daemon that can load this module:
# - broker
# This module is used to generate reports on Broker
#================================================================================
define module {
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ────────────────────────────────────── MODULE IDENTITY ────────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── Module name [ Must be unique ] [ MANDATORY ] ───
# ─── ───
module_name broker--module-report-builder
# ─── Module type [ Do not edit ] [ MANDATORY ] ───
# ─── ───
module_type broker__module_report_builder
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ─────────────────────────────────── LISTENING PARAMETERS ──────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── IP address to listen to ───
# ───
# Default : 0.0.0.0 ( all interfaces ) ───
# ─── ───
# broker__module_report_builder__listening_address 0.0.0.0
# ─── Port to listen to ───
# ───
# Default : 24100 ───
# ─── ───
# broker__module_report_builder__listening_port 24100
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ───────────────────────────────────── HTTPS PARAMETERS ────────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── Enable this parameter if you want to receive requests in HTTPs mode ───
# ───
# Default : 0 => Disable ───
# ... : 1 => Enable ───
# ─── ───
# broker__module_report_builder__use_ssl 0
# ─── Certificate file ───
# ───
# Default : /etc/shinken/certs/server.cert ───
# ─── ───
# broker__module_report_builder__ssl_cert /etc/shinken/certs/server.cert
# ─── Key file ───
# ───
# Default : /etc/shinken/certs/server.key ───
# ─── ───
# broker__module_report_builder__ssl_key /etc/shinken/certs/server.key
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ────────────────────────────────────── AUTHENTICATION ─────────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── Token used to authenticate on this module ───
# ───
# Default : change_me ───
# ─── ───
# broker__module_report_builder__token change_me
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ────────────────────────────────────────── MODULES ────────────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── This parameter defines the name of SLA module to use for report generation ───
# ───
# ... : report-builder--module-sla-reader => [mandatory] read sla from ───
# this module definition ───
# ─── ───
modules report-builder--module-sla-reader
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ──────────────────────────────────────── STATISTICS ───────────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── Ranges definition for the check "Broker - $KEY$ - Module Report Builder - Performance" ───
# ─── Example: ───
# ─── - Reports written in less than 5 seconds will be classified in the first category. ───
# ─── - Those made in less than 10 seconds will be in the second. ───
# ─── - etc. ───
# ───
# Default : 5,10,20,30,60,120,300,600 ( seconds ) ───
# ─── ───
# broker__module_report_builder__exec_stats_ranges 5,10,20,30,60,120,300,600
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ────────────────────────────────── BROKS GETTER PARAMETERS ────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── These parameters allow some internal tuning in broks management in this module ───
# ─── Late broks sets catchup ───
# ───
# ... : 0 => Disable ───
# Default : 1 => Enable ───
# ─── ───
# broker__module_report_builder__broks_getter__activate_late_set_catchup 1
# ─── Take extra broks sets to manage if more than this parameter sets are waiting ───
# ───
# Default : 10 ───
# ─── ───
# broker__module_report_builder__broks_getter__nb_late_set_allowed_before_catchup 10
# ─── Stop taking extra broks sets in catchup when we reach this number of broks ───
# ───
# Default : 200000 ───
# ─── ───
# broker__module_report_builder__broks_getter__catchup_broks_managed_by_module_in_a_catchup_loop 200000
# ─── Continue catchup if too many late broks sets remains after ───
# ───
# ... : 0 => Disable ───
# Default : 1 => Enable ───
# ─── ───
# broker__module_report_builder__broks_getter__catchup_run_endless_until_nb_late_set_allowed_reached 1
# ─── Take the lock as soon as getter thread has some broks to manage ───
# ───
# Default : 0 => Disable ───
# ... : 1 => Enable ───
# ─── ───
# broker__module_report_builder__broks_getter__include_deserialisation_and_catchup_in_lock 0
} |
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ────────────────────────────────────── MODULE IDENTITY ────────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── Module name [ Must be unique ] [ MANDATORY ] ───
# ─── ───
module_name broker--module-report-builder
# ─── Module type [ Do not edit ] [ MANDATORY ] ───
# ─── ───
module_type broker__module_report_builder |
Il est possible de définir plusieurs instances de module de type "broker--module-report-builder" dans une architecture Shinken.
|
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ─────────────────────────────────── LISTENING PARAMETERS ──────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── IP address to listen to ───
# ───
# Default : 0.0.0.0 ( all interfaces ) ───
# ─── ───
# broker__module_report_builder__listening_address 0.0.0.0
# ─── Port to listen to ───
# ───
# Default : 24100 ───
# ─── ───
# broker__module_report_builder__listening_port 24100 |
|
Si le module doit répondre à des requêtes provenant du réseau, et que le système sur lequel s'exécute le Broker dispose d'un pare feu, il faudra autoriser le trafic entrant sur le port d'écoute configuré.
Par exemple, si firewalld est actif sur le serveur sur lequel s'exécute le Broker les commandes suivantes peuvent être utilisée pour autoriser le trafic entrant sur le port 24100 :
firewall-cmd --add-port=24100/tcp firewall-cmd --runtime-to-permanent |
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ───────────────────────────────────── HTTPS PARAMETERS ────────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── Enable this parameter if you want to receive requests in HTTPs mode ───
# ───
# Default : 0 => Disable ───
# ... : 1 => Enable ───
# ─── ───
# broker__module_report_builder__use_ssl 0
# ─── Certificate file ───
# ───
# Default : /etc/shinken/certs/server.cert ───
# ─── ───
# broker__module_report_builder__ssl_cert /etc/shinken/certs/server.cert
# ─── Key file ───
# ───
# Default : /etc/shinken/certs/server.key ───
# ─── ───
# broker__module_report_builder__ssl_key /etc/shinken/certs/server.key
|
|
Afin de sécuriser l'utilisation du module, un jeton d'identification est nécessaire et il doit être fourni avec chaque requête.
Ce jeton est défini via le paramètre suivant :
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ────────────────────────────────────── AUTHENTICATION ─────────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── Token used to authenticate on this module ───
# ───
# Default : change_me ───
# ─── ───
# broker__module_report_builder__token change_me |
|
Cette section permet de définir quel module SLA utiliser pour la génération des rapports.
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ────────────────────────────────────────── MODULES ────────────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── This parameter defines the name of SLA module to use for report generation ───
# ───
# ... : report-builder--module-sla-reader => [mandatory] read sla from ───
# this module definition ───
# ─── ───
modules report-builder--module-sla-reader |
|
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ──────────────────────────────────────── STATISTICS ───────────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── Ranges definition for the check "Broker - $KEY$ - Module Report Builder - Performance" ───
# ─── Example: ───
# ─── - Reports written in less than 5 seconds will be classified in the first category. ───
# ─── - Those made in less than 10 seconds will be in the second. ───
# ─── - etc. ───
# ───
# Default : 5,10,20,30,60,120,300,600 ( seconds ) ───
# ─── ───
# broker__module_report_builder__exec_stats_ranges 5,10,20,30,60,120,300,600 |
|
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ────────────────────────────────── BROKS GETTER PARAMETERS ────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── These parameters allow some internal tuning in broks management in this module ───
# ─── Late broks sets catchup ───
# ───
# ... : 0 => Disable ───
# Default : 1 => Enable ───
# ─── ───
# broker__module_report_builder__broks_getter__activate_late_set_catchup 1
# ─── Take extra broks sets to manage if more than this parameter sets are waiting ───
# ───
# Default : 10 ───
# ─── ───
# broker__module_report_builder__broks_getter__nb_late_set_allowed_before_catchup 10
# ─── Stop taking extra broks sets in catchup when we reach this number of broks ───
# ───
# Default : 200000 ───
# ─── ───
# broker__module_report_builder__broks_getter__catchup_broks_managed_by_module_in_a_catchup_loop 200000
# ─── Continue catchup if too many late broks sets remains after ───
# ───
# ... : 0 => Disable ───
# Default : 1 => Enable ───
# ─── ───
# broker__module_report_builder__broks_getter__catchup_run_endless_until_nb_late_set_allowed_reached 1
# ─── Take the lock as soon as getter thread has some broks to manage ───
# ───
# Default : 0 => Disable ───
# ... : 1 => Enable ───
# ─── ───
# broker__module_report_builder__broks_getter__include_deserialisation_and_catchup_in_lock 0 |
Ces paramètres sont dédiés au fonctionnement interne au module, il est fortement recommandé de ne pas les modifier sans le 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 :
|