| Scroll Ignore |
|---|
| scroll-viewport | true |
|---|
| scroll-pdf | true |
|---|
| scroll-office | true |
|---|
| scroll-chm | true |
|---|
| scroll-docbook | true |
|---|
| scroll-eclipsehelp | true |
|---|
| scroll-epub | true |
|---|
| scroll-html | false |
|---|
|
|
( ) requête peut avoir un coût non négligeable sur interface qui gèle et qui met le surcoût consommation mémoire engendré peut Pour permettre de gérer au mieux ce coût en ressources et pour garder une Interface de Visualisation réactive, il est possible de configurer un ( ou plusieurs ) modules broker__module_report_builder
Ce module peut être attaché au Broker pour décharger l'Interface de Visualisation,et il est même possible d'installer ces modules sur un Broker distant pour soulager le systèmeLe module broker--module-report-builder peut uniquement être activé sur un démon de type Broker.
- L'activation du module s'effectue en ajoutant le nom de ce module dans le fichier de configuration du Broker.
- Ouvrir le fichier de configuration du Broker à l'emplacement /etc/shinken/brokers/nom_du_broker.cfg,
- trouver la ligne du paramètre "modules"
- et ajouter le nom du module "broker--module-report-builder".
| Code Block |
|---|
| language | js |
|---|
| theme | Confluence |
|---|
|
define broker {
[...]
modules Module 1, Module 2, Module 3, broker--module-report-builder
[...]
} |
Redémarrer l'Arbiter pour prendre en compte le changement de configuration
| Code Block |
|---|
|
service shinken-arbiter restart |
Exemple de fichier de configuration
| Code Block |
|---|
| language | js |
|---|
| theme | Confluence |
|---|
|
# 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-example
# ─── 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 ───
# ───
# ... : sla => [mandatory] read sla from this module definition ───
# ─── ───
modules sla
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ──────────────────────────────────────── STATISTICS ───────────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── Ranges definition for the performance check ───
# ───
# 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
} |
Détails des sections composant le fichier de configuration
| Code Block |
|---|
| language | js |
|---|
| theme | Confluence |
|---|
|
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ────────────────────────────────────── 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.
- Chaque instance devra avoir un nom unique.
| Scroll Title |
|---|
|
| Nom | Type | Unité | Défaut | Commentaire |
|---|
| Texte | --- | broker--module-report-builder | Il est conseillé de choisir un nom en fonction de l'utilisation qui va être faite du module pour que la configuration soit plus simple à maintenir. Doit être unique. | | Texte | --- | broker__module_report_builder | Ne peut être modifié. |
|
| Code Block |
|---|
| language | js |
|---|
| theme | Confluence |
|---|
|
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ─────────────────────────────────── 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 |
| Scroll Title |
|---|
|
| Nom | Type | Unité | Défaut | Commentaire |
|---|
| No Format |
|---|
broker__module_report_builder__listening_address |
| Texte | --- | 0.0.0.0 | Ce paramètre précise sur quelle interface réseau le module va se mettre en écoute pour recevoir des requêtes à traiter. Les valeurs possibles sont : - 0.0.0.0 pour écouter sur toutes les interfaces réseau disponibles sur le système où s'exécute le Broker,
- 127.0.0.1 pour ne répondre qu'aux requêtes locales ( le module n'est pas accessible sur le réseau et ne répond qu'aux requêtes issues de la même machine ),
- l'adresse IP d'une des interfaces réseau du système où s'exécute le Broker.
| | No Format |
|---|
broker__module_report_builder__listening_port |
| Entier | --- | 24100 | Port d'écoute utilisé par le module pour attendre des requêtes. |
|
Autorisation dans le pare feu
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 :
| Code Block |
|---|
|
firewall-cmd --add-port=24100/tcp
firewall-cmd --runtime-to-permanent |
Chiffrement des échanges réseau
| Code Block |
|---|
| language | js |
|---|
| theme | Confluence |
|---|
|
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ───────────────────────────────────── 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
|
| Scroll Title |
|---|
|
| Nom | Type | Unité | Défaut | Commentaire |
|---|
| No Format |
|---|
broker__module_report_builder__use_ssl |
| Booléen | --- | 0 | Chiffrer les échanges en utilisant le protocole https au lieu de http ( 1 pour activer, 0 pour désactiver ) | | No Format |
|---|
broker__module_report_builder__ssl_cert |
| Texte | --- | /etc/shinken/certs/server.cert | Chemin du fichier contenant le certificat. | | No Format |
|---|
broker__module_report_builder__ssl_key |
| Texte | --- | /etc/shinken/certs/server.key | Chemin du fichier contenant la clé du certificat. |
|
Paramètre d'identification
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 :
| Code Block |
|---|
| language | js |
|---|
| theme | Confluence |
|---|
|
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ────────────────────────────────────── AUTHENTICATION ─────────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── Token used to authenticate on this module ───
# ───
# Default : change_me ───
# ─── ───
# broker__module_report_builder__token change_me |
| Scroll Title |
|---|
|
| Nom | Type | Unité | Défaut | Commentaire |
|---|
| No Format |
|---|
broker__module_report_builder__token |
| Texte | --- | change_me | Chaîne de texte utilisée pour chaque requête au module | |
Cette section permet de définir quel module SLA utiliser pour la génération des rapports.
| Code Block |
|---|
| language | js |
|---|
| theme | Confluence |
|---|
|
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ────────────────────────────────────────── MODULES ────────────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── This parameter defines the name of SLA module to use for report generation ───
# ───
# ... : sla => [mandatory] read sla from this module definition ───
# ─── ───
modules sla |
| Scroll Title |
|---|
|
| Nom | Type | Unité | Défaut | Commentaire |
|---|
| Texte | --- | sla | Nom du module SLA à utiliser pour la génération des rapports. - ne peut être vide,
- ne doit contenir qu'un seul nom de module SLA.
| |
Statistiques ( pour la supervision )
| Code Block |
|---|
| language | js |
|---|
| theme | Confluence |
|---|
|
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ──────────────────────────────────────── STATISTICS ───────────────────────────────────────── │ #
# └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #
# ─── Ranges definition for the performance check ───
# ───
# 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 |
| Scroll Title |
|---|
|
| Nom | Type | Unité | Défaut | Commentaire |
|---|
| No Format |
|---|
broker__module_report_builder__exec_stats_ranges |
| Liste de nombres | Seconde | 5,10,20,30,60,120,300,600 | Regroupe le nombre de rapports effectués sur les dernières 24h selon leur durée d'exécution, à des fins statistiques pour la supervision. |
|
| Code Block |
|---|
| language | js |
|---|
| theme | Confluence |
|---|
|
# ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
# │ ────────────────────────────────── 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 |
| Warning |
|---|
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 :
- Attente de broks à traiter
- Récupération de broks en retard ( fonctionnalité de rattrapage )
- Dé-sérialisation des broks
- Entrée en session critique ( les requêtes à l'API sont bloquées )
- Traitement des broks
- 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 )
| Scroll Title |
|---|
|
| Nom | Type | Unité | Défaut | Commentaire |
|---|
| No Format |
|---|
broker__module_report_builder__broks_getter__activate_late_set_catchup |
| Booléen | --- | 1 | Utilisation de la fonctionnalité de rattrapage pour absorber des broks en retard : | | No Format |
|---|
broker__module_report_builder__broks_getter__nb_late_set_allowed_before_catchup |
| Nombre | Nombre 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_report_builder__broks_getter__catchup_broks_managed_by_module_in_a_catchup_loop |
| Nombre | Nombre 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_report_builder__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_report_builder__broks_getter__include_deserialisation_and_catchup_in_lock |
| Booléen | --- | 0 | Dans le cas où on veut disposer d'un maximum de temps CPU pour traiter les broks en retard, on peut 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 : | |