| Scroll Ignore | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
Description
Le module broker-module-livedata permet de mettre ร disposition sur le Broker une API HTTP permettant d'accรฉder aux informations d'un hรดte, d'un cluster ou d'un check.
Cette API peut รชtre utilisรฉe pour accรฉder rapidement aux informations d'รฉlรฉments supervisรฉs pour ensuite les intรฉgrer dans des outils externes ( outil de ticketing, rรฉcolte de donnรฉes, etc... ).
Activation du module
Activer le module broker-module-livedata livrรฉ par dรฉfaut
Par dรฉfaut, lโinstallation ou la mise ร jour de Shinken Entreprise va mettre ร disposition une dรฉfinition du moduleย de type "broker_module_livedata" appelรฉ "broker-module-livedata-example"
- La configuration de ce module se trouve par dรฉfaut dans le fichier :ย /etc/shinken/modules/broker-module-livedata.cfg
L'activation de ce module s'effectue en ajoutant son nom dans le fichier de configuration du dรฉmon /etc/shinken/brokers/broker-master.cfg (ย ou le .cfg que vous utilisez pour dรฉfinir les options de votre brokerย ).
Exemple :
Code Block language js define broker { [...] broker_name broker-master ย [...] modules Module 1, Module 2, Module 3, broker-module-livedata [...] }
Pour prendre en compte le changement de configuration, il faut ensuite redรฉmarrer l'Arbiter :
Code Block service shinken-arbiter restart
Dรฉfinir vos propres modules de type broker_module_livedata
Pour pouvoir dรฉfinir ce module selon vos besoins, il vous sera possible de dรฉfinir votre module grรขce au module d'exemple fourni par dรฉfaut.
Pour configurer votre module de typeย broker_module_livedata, commencez par choisir un nom ร lui donner.
- Pour l'exemple, nous allons l'appeler "
Mon-Module-Broker-Livedata". - Remplacer dans l'exemple le mot "
Mon-Module-Broker-Livedata" par le nom que vous aurez choisi.
Pour dรฉfinir votre module ร partir du module fourni par dรฉfaut, vous devez :ย
Copier le fichier de dรฉfinition du module d'exemple :ย /etc/shinken-user-example/configuration/daemons/brokers/modules/broker-module-livedata/broker-module-livedata-example.cfgย dans le rรฉpertoire de dรฉfinition des modulesย /etc/shinken/modules/ .
( Exemple :ย /etc/shinken/modules/broker-module-livedata__Mon-Module-Broker-Livedata.cfg )
Code Block language bash theme Emacs cp /etc/shinken-user-example/configuration/daemons/brokers/modules/broker-module-livedata/broker-module-livedata-example.cfg /etc/shinken/modules/broker-module-livedata__Mon-Module-Broker-Livedata.cfg
Ouvrez ce fichier ( broker-module-livedata__Mon-Module-Broker-Livedata.cfg ) :
Modifier la ligne module_name en remplaรงant le nom par dรฉfaut "broker-module-livedata" par le nom que vous avez choisi "
Mon-Module-Broker-Livedata".Code Block ... # โโโ Module name [ Must be unique ] [ MANDATORY ] โโโ # โโโ โโโ module_name ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย Mon-Module-Broker-Livedata ...
Vรฉrifiez que l'utilisateur shinken possรจde les droits sur ce fichier. Si ce n'est pas le cas, effectuez la commande suivante :
Code Block language bash theme Emacs chown -R shinken:shinken /etc/shinken/modules/broker-module-livedata__Mon-Module-Broker-Livedata.cfg
Ajoutez le nom du nouveau module au Broker en modifiant le paramรจtre modules du fichierย /etc/shinken/brokers/broker-master.cfg (ย ou le .cfg que vous utilisez pour dรฉfinir les options de votre brokerย ).
Code Block language js define broker { [...] broker_name broker-master [...] modules Module 1, Module 2, Module 3, broker-module-livedata [...] }Redรฉmarrez l'Arbiter pour que le Broker puisse prendre en compte ce nouveau module.
Code Block language bash theme Emacs service shinken-arbiter restart
Configuration
La configuration du module se trouve par dรฉfaut dans le fichier suivant : /etc/shinken/modules/broker-module-livedata.cfg
- Vous trouverez aussi systรฉmatiquement un exemple dansย /etc/shinken-user-example/configuration/daemons/brokers/modules/broker-module-livedata/broker-module-livedata-example.cfg
Exemple de fichier de configuration
| Code Block | ||
|---|---|---|
| ||
#================================================================================
# broker-module-livedata
#================================================================================
# Daemon that can load this module:
# - broker
# This module provides REST API to fetch information on monitored elements
# CFG_FORMAT_VERSION 1
#================================================================================
define module {
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ #
# โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ MODULE IDENTITY โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ #
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ #
# โโโ Module name [ Must be unique ] [ MANDATORY ] โโโ
# โโโ โโโ
module_name broker-module-livedata
# โโโ Module type [ Do not edit ] [ MANDATORY ] โโโ
# โโโ โโโ
module_type broker_module_livedata
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ #
# โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ GENERAL โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ #
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ #
# โโโ Language (only used for the MISSING DATA status) โโโ
# โโโ
# Default : en => English โโโ
# ... : fr => French โโโ
# โโโ
# broker__module_livedata__lang en
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ #
# โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ LISTENING PARAMETERS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ #
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ #
# โโโ IP address to listen to โโโ
# โโโ
# Default : 0.0.0.0 ( all interfaces ) โโโ
# โโโ
# broker__module_livedata__listening_address 0.0.0.0
# โโโ Port to listen to โโโ
# โโโ
# Default : 50100 โโโ
# โโโ
# broker__module_livedata__listening_port 50100
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ #
# โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ HTTPS PARAMETERS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ #
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ #
# โโโ Enable this parameter if you want to receive API REST calls in HTTPs mode โโโ
# โโโ
# Default : 0 => Disable โโโ
# ... : 1 => Enable โโโ
# โโโ
# broker__module_livedata__use_ssl 0
# โโโ Certificate file โโโ
# โโโ
# Default : /etc/shinken/certs/server.cert โโโ
# โโโ
# broker__module_livedata__ssl_cert /etc/shinken/certs/server.cert
# โโโ Key file โโโ
# โโโ
# Default : /etc/shinken/certs/server.key โโโ
# โโโ
# broker__module_livedata__ssl_key /etc/shinken/certs/server.key
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ #
# โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ BROKS GETTER PARAMETERS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ #
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ #
# โโโ These parameters allow some internal tuning in broks management in broker-module-livedata โโโ
# โโโ Late broks sets catchup โโโ
# โโโ
# ... : 0 => Disable โโโ
# Default : 1 => Enable โโโ
# โโโ
# broker__module_livedata__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_livedata__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_livedata__broks_getter__catchup_broks_managed_by_module_in_a_catchup_loop 200000
# โโโ Continue catchup if too much late broks sets remains after โโโ
# โโโ
# ... : 0 => Disable โโโ
# Default : 1 => Enable โโโ
# โโโ
# broker__module_livedata__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_livedata__broks_getter__include_deserialisation_and_catchup_in_lock 0
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ #
# โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ย ย API PARAMETERS ย ย โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ #
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ #
# โโโ Token used to authenticate API REST calls on this module โโโ
# โโโ
# Default : change_me โโโ
# โโโ
# broker__module_livedata__token change_me
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ #
# โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ MODULES โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ #
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ #
# โโโ Extra modules can extend scope of broker-module-livedata, adding extra functionalities โโโ
# โโโ this parameter contains coma separated list of submodule names, available submodules are โโโ
# โโโ
# ... : livedata-module-sla-provider ( allowing to query SLA of elements ) โโโ
# โโโ
# modules
} |
Dรฉtails des sections composant le fichier de configuration
Identification du module
Il est possible de dรฉfinir plusieurs instances de module de type " broker-module-livedata" dans votre architecture Shinken .
- Chaque instance devra avoir un nom unique.
| Nom | Type | Unitรฉ | Dรฉfaut | Commentaire | ||
|---|---|---|---|---|---|---|
| Texte | --- | broker-module-livedata | Nous vous conseillons de choisir un nom en fonction de l'utilisation du module pour que votre configuration soit simple ร maintenir. Doit รชtre unique. | ||
| Texte | --- | broker-module-livedata | Ne peut รชtre modifiรฉ. |
Langue
| Code Block | ||
|---|---|---|
| ||
# โโโ Language (only used for the MISSING DATA status) โโโ
# โโโ
# Default : en => English โโโ
# ... : fr => French โโโ
# โโโ
# broker__module_livedata__lang en |
Quand le module broker-module-livedata ne reรงoit plus de mise ร jour pour le statut de certains รฉlรฉments ( hรดtes, clusters, checks ), il modifie
- leur statut ร ย Donnรฉes Manquantes ,
- leur rรฉsultat avec un texte gรฉnรฉrique expliquant le manque d'information.
- La langue de ce texte gรฉnรฉrique est dรฉfinie par le paramรจtreย broker_module_livedata__lang.
| Nom | Type | Unitรฉ | Dรฉfaut | Commentaire | ||
|---|---|---|---|---|---|---|
| Texte | --- | enย | Les langues disponibles sont
|
Adresse et port d'รฉcoute
| Code Block | ||
|---|---|---|
| ||
# โโโ IP address to listen to โโโ
# โโโ
# Default : 0.0.0.0 ( all interfaces ) โโโ
# โโโ
# broker__module_livedata__listening_address 0.0.0.0
# โโโ Port to listen to โโโ
# โโโ
# Default : 50100 โโโ
# โโโ
# broker__module_livedata__listening_port 50100 |
Le port et l'adresse d'รฉcoute du moduleย broker-module-livedataย sont paramรฉtrables via les options suivantes:
| Nom | Type | Unitรฉ | Dรฉfaut | Commentaire | ||
|---|---|---|---|---|---|---|
| Texte | Adresse IP | 0.0.0.0ย | Adresse IP sur laquelle le module doit se mettre en รฉcoute. | ||
| Entier | Port | 50100 | Port d'รฉcoute du module. |
Autorisation firewalld
Si firewalldย est actif sur le systรจme, il faut รฉgalement autoriser les connexions extรฉrieures vers le port qui vient d'รชtre configurรฉ.
Cela peut รชtre fait en exรฉcutant les commandes suivantes sur le serveur qui fait tourner le Broker (en remplaรงant 50100, ci dessous, par le port configurรฉ dans le fichier de configuration) :
| Code Block |
|---|
firewall-cmd --add-port=50100/tcp
firewall-cmd --runtime-to-permanent |
Activation du SSL
| Code Block | ||
|---|---|---|
| ||
# โโโ Enable this parameter if you want to receive API REST calls in HTTPs mode โโโ
# โโโ
# Default : 0 => Disable โโโ
# ... : 1 => Enable โโโ
# โโโ
# broker__module_livedata__use_ssl 0
# โโโ Certificate file โโโ
# โโโ
# Default : /etc/shinken/certs/server.cert โโโ
# โโโ
# broker__module_livedata__ssl_cert /etc/shinken/certs/server.cert
# โโโ Key file โโโ
# โโโ
# Default : /etc/shinken/certs/server.key โโโ
# โโโ
# broker__module_livedata__ssl_key /etc/shinken/certs/server.key |
Le module broker-module-livedata peut, au choix, servir le protocole http ou https sur le port configurรฉ ci-dessus.
Le mode https se configure avec les paramรจtres suivants :
| Nom | Type | Unitรฉ | Dรฉfaut | Commentaire | ||
|---|---|---|---|---|---|---|
| Boolรฉen | --- | 0 | Paramรจtre activant le mode SSL ( https ). Valeurs:
Par dรฉfaut le module fonctionne en mode http sur le port configurรฉ ci-dessus. | ||
| Texte | --- | /etc/shinken/certs/server.cert | Chemin du fichier contenant le certificat. | ||
| Texte | --- | /etc/shinken/certs/server.key | Chemin du fichier contenant la clรฉ du certificat. |
Absorption des broks ( รฉlรฉments de supervision )
| Code Block | ||
|---|---|---|
| ||
# โโโ These parameters allow some internal tuning in broks management in broker-module-livedata โโโ
# โโโ Late broks sets catchup โโโ
# โโโ
# ... : 0 => Disable โโโ
# Default : 1 => Enable โโโ
# โโโ
# broker__module_livedata__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_livedata__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_livedata__broks_getter__catchup_broks_managed_by_module_in_a_catchup_loop 200000
# โโโ Continue catchup if too much late broks sets remains after โโโ
# โโโ
# ... : 0 => Disable โโโ
# Default : 1 => Enable โโโ
# โโโ
# broker__module_livedata__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_livedata__broks_getter__include_deserialisation_and_catchup_in_lock 0 |
Le fonctionnement du thread de rรฉcupรฉration desย broks ย de ce moduleย 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 via son API.
| Warning |
|---|
Une mauvaise configuration de ces paramรจtres peut compromettre le bon fonctionnement du module, se rapprocher du support si vous avez le moindre doute. |
Principe de l'algorithme d'absorption des broks :
- 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 )
| Nom | Type | Unitรฉ | Dรฉfaut | Commentaire | ||
|---|---|---|---|---|---|---|
| Boolรฉen | --- | 1 | Utilisation deย laย fonctionnalitรฉ de rattrapage pour absorber des broks en retard :
| ||
| 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. | ||
| Nombre | Nombre de broks | 200000 | Nombre maximal de broks que l'algorithme de rattrapage rรฉcupรจre avant de lancer le traitement. | ||
| Boolรฉen | --- | 1 | Aprรจs traitement des broks, si le nombre de brok set en retard est trop รฉlevรฉ,
| ||
| 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 :
|
Configuration de l'authentification
| Code Block | ||
|---|---|---|
| ||
# โโโ Token used to authenticate API REST calls on this module โโโ
# โโโ
# Default : change_me โโโ
# โโโ
# broker__module_livedata__token change_me |
Afin de sรฉcuriser l'utilisation de l'API du module, un token est nรฉcessaire pour chaque requรชte. Ce token peut รชtre dรฉfini dans la configuration en modifiant le paramรจtreย broker_module_livedata__token.
| Nom | Type | Unitรฉ | Dรฉfaut | Commentaire | ||
|---|---|---|---|---|---|---|
| Texte | --- | change_me | Chaรฎne de texte utilisรฉe pour chaque requรชte au moduleย * |
| Warning | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||
Cette valeur est utilisรฉe en paramรจtre d'URL de typeย GET .ย Si elle contient des caractรจres interdits dans une URL, ils devront รชtre รฉchappรฉs (URL encodรฉs) lors de son utilisation pour une requรชte
Pour plus d'information, vous pouvez consulter :ย https://developer.mozilla.org/fr/docs/Glossary/percent-encodingย et rfc3986 Exemple: pour le token ch@nge_meย il faudra utiliser l'urlย http://broker-module-livedata:50100/api/v1/all-monitored-elements?token=ch%40nge_me |
Vรฉrification du bon fonctionnement ( est ce que vous avez accรจs aux APIs )
Tester l'API
Depuis une des machines qui va faire les requรชtes aux API,ย faire le test suivant :
| Code Block |
|---|
curl -s -S -k http://machinedubroker:50100/api/v1/ping |
| Code Block | ||||
|---|---|---|---|---|
| ||||
{"response": "pong"} |
Si la rรฉponse attendue n'arrive pas, contrรดler les autorisation d'accรจs du firewall
Vรฉrification du firewall
Si vous avez firewalld ( firewall par dรฉfaut de la Redhat )
Si firewalldย est actif sur le systรจme, il faut รฉgalement autoriser les connexions extรฉrieures vers le port qui vient d'รชtre configurรฉ.
Sur la machine du Broker qui fait tourner le module livedata, vรฉrifiez que le port est ouvert dans votre firewall :
| Code Block |
|---|
firewall-cmd --list-ports |
ย
| Code Block | ||||
|---|---|---|---|---|
| ||||
80/tcp 7763/tcp 7765/tcp 7766/tcp 7767/tcp 7768/tcp 7769/tcp 7770/tcp 7771/tcp 7772/tcp 7773/tcp 7777/tcp 7780/tcp 50000/tcp |
Dans cet exemple, le port 50100/tcp n'est pas listรฉ, il est donc bloquรฉ par dรฉfaut.
Il faut modifier le firewall pour autoriser les connexions.
Cela peut รชtre fait en exรฉcutant les commandes suivantes sur le serveur qui fait tourner le Broker ( en remplaรงant 50100, ci dessous, par le port configurรฉ dans le fichier de configuration, si vous n'utilisez pas celui par dรฉfaut ) :
| Code Block |
|---|
firewall-cmd --add-port=50100/tcp
firewall-cmd --runtime-to-permanent |