| Scroll Ignore | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||
|
Introduction
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
Le module broker-module-livedata est un module qui peut être activé seulement sur un démon Broker.
L'activation du module s'effectue en ajoutant le module dans le fichier de configuration du Broker concerné.
Pour ce faire, dans le fichier de configuration de votre Broker à l'emplacement /etc/shinken/brokers/nom_de_votre_broker.cfg à la ligne suivante, et ajouter "broker-module-livedata"
| Code Block | ||
|---|---|---|
| ||
define broker {
[...]
modules Simple-log, WebUI, Graphite-Perfdata, sla, broker-module-livedata
[...]
} |
Pour prendre en compte le changement de configuration, redémarrer l'Arbiter:
| Code Block |
|---|
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
Configuration de l'interface et du port d'écoute
Par défaut, le port de l'API rendue disponible par le module "broker-module-livedata" est 50100. Ce port peut être changé via le paramètre "port" dans le fichier de configuration du module: /etc/shinken/modules/broker-module-livedata.cfg.
En plus du port, il est également possible de configurer l'interface réseau sur laquelle est mise à disposition l'API. Si par exemple l'API ne doit être accessible seulement via un réseau local, il est possible de n'écouter les requêtes que sur cette interface réseau.
Cette modification de configuration se fait via le paramètre "host" du fichier de configuration du module: /etc/shinken/modules/broker-module-livedata.cfg. Dans l'exemple suivant, l'API ne sera disponible que sur l'interface avec l'adresse 192.168.1.27:
| Code Block | ||||
|---|---|---|---|---|
| ||||
define module {
[...]
host 192.168.1.27
[...]
}
|
L'API du module est par défaut mise à disposition sur toutes les interfaces: le paramètre "host" est à 0.0.0.0
Pour prendre en compte le changement de configuration, il faut ensuite redémarrer l'Arbiter:
| Code Block |
|---|
service shinken-arbiter restart |
Activation du SSL
L'API du module est accessible via HTTP. Si pour des raisons de sécurité, cette API doit être accessible via HTTPS, il faut passer le paramètre "use_ssl" à 1 dans le fichier de configuration du module:
| Code Block | ||||
|---|---|---|---|---|
| ||||
define module {
[...]
# HTTPs part, enable if you want to set the visualisation interface listen in HTTPs mode
# disabled by default. Set your own certificates. Set your own token, it is usefull to get access to the API
use_ssl 1
ssl_cert /etc/shinken/certs/server.cert
ssl_key /etc/shinken/certs/server.key
[...]
}
|
Les paramètres "ssl_cert" et "ssl_key" permettent de spécifier la clé et le certificat SSL à utiliser pour la connexion.
Pour prendre en compte le changement de configuration, il faut ensuite redémarrer l'Arbiter:
| Code Block |
|---|
service shinken-arbiter restart |
Authentification
L'API du module broker-module-livedata est accessible à l'adresse suivante:
| Code Block |
|---|
http://<ip-broker>:<port-module>/ |
Les appels effectués à l'API demandent l'utilisation d'un token d'identification. Ce token est spécifié dans le fichier de configuration du module (/etc/shinken/modules/broker-module-livedata.cfg).
Il est fortement recommandé de changer ce token.
Ce token doit être ajouté en paramètre à chaque requête sous peine de recevoir une erreur 401 de la part de l'API.
Par exemple:
| Code Block |
|---|
http://192.168.1.59:50100/api/v1/host/408cd29ad37611e8810e0800277b7e16?token=ak5zv6t5s25r6g4 |
Chaque appel à l'API renvoie une réponse au format JSON.
| Info | ||
|---|---|---|
| ||
Avec le module configuré en HTTP, une simple écoute du réseau permet de trouver le token. Il est fortement recommandé de passer en HTTPS afin d'éviter une interception du token. |