| Scroll Ignore | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
Description
Le listener-rest est une source qui expose une API REST permettant d'ajouter de nouveaux hôtes via des requêtes HTTP contenant un objet décrivant un hôte au format JSON.
Voici un exemple de requête avec cURL :
| Code Block | ||
|---|---|---|
| ||
curl -u USER:PASSWORD \
-H "Content-Type: application/json" \
-d '{"host_name":"my_host", "use":"linux", "address":"192.168.1.254"}' \
-X PUT 'http://SYNCHRONIZER-IP-INTERFACE:7761/shinken/listener-rest/v1/hosts/' |
Activation du listener
Vous pouvez essayer ce type de source soit en activant le collecteur "listener-rest" présent par défaut ou en activant vos propres listener de type listener-rest.
Activer le collecteur listener-rest livré par défaut
Par défaut, l’installation ou la mise à jour de Shinken Entreprise va mettre à disposition une définition de type listener-rest appelé "listener-rest".
- La configuration de ce collecteur se trouve par défaut dans le fichier : /etc/shinken/listeners/listener-rest.cfg
- Le collecteur listener-rest s'active comme les autres sources, c'est-à-dire en modifiant le fichier /etc/shinken/synchronizers/synchronizer-master.cfg ( ou le .cfg que vous utilisez pour définir les options du Synchronizer )
- Ce listener est déjà présent dans la liste des sources livrées par défaut, il n'y a donc rien à modifier.
S'il n'y est pas, vous pouvez le rajouter pour qu'il soit de nouveau actif.
Exemple:Code Block language bash define synchronizer { [...] sources Source 1, Source 2, Source 3, listener-rest [...] }
Redémarrez le Synchronizer pour qu'il puisse prendre en compte cette nouvelle source
Code Block language bash theme Confluence service shinken-synchronizer restart
Ajouter un autre collecteur de type listener-rest
Vous pouvez avoir plusieurs sources du type listener-rest, pour par exemple se connecter à plusieurs serveurs listeners.
Choisissez un nom pour ce nouveau collecteur.
- Pour l'exemple, nous allons l'appeler "Mon-Listener-Rest".
- Remplacer dans l'exemple le mot "Mon-Listener-Rest" par la nom que vous aurez choisi.
Pour ajouter une autre source, vous devez :
Copier le fichier de définition de la source d'exemple : /etc/shinken-user-example/configuration/daemons/synchronizers/listeners/listener-rest/listener-rest-example.cfg dans le répertoire de définition des listeners /etc/shinken/listeners/.
( Exemple : /etc/shinken/listeners/listener__listener-rest__Mon-Listener-Rest.cfg )Code Block language bash theme Confluence cp /etc/shinken-user-example/configuration/daemons/synchronizers/listeners/listener-rest/listener-rest-example.cfg /etc/shinken/listeners/listener__listener-rest__Mon-Listener-Rest.cfg- Ouvrer ce fichier ( listener__listener-rest__Mon-Listener-Rest.cfg ) :
modifier la ligne source_name en remplaçant le nom par défaut "listener-rest-example" par le nom que vous avez choisi "Mon-Listener-Rest".
Code Block language bash define source { [...] source_name Mon-Listener-Rest [...] }
Ajouter le nom de la nouvelle source au Synchronizer en modifiant le paramètre sources du fichier /etc/shinken/synchronizers/synchronizer-master.cfg.
Code Block language bash define synchronizer { [...] sources Source 1, Source 2, Source 3, Mon-Listener-Rest [...] }Redémarrez le Synchronizer pour qu'il puisse prendre en compte cette nouvelle source.
Code Block language bash theme Confluence service shinken-synchronizer restart
Configuration
Voici le fichier CFG de configuration présent dans : la détail du fichier de configuration de la source qui se trouve ( suivant la procédure choisi ) :
- soit dans le fichier que vous venez de créer en ajoutant le module ( par exemple /etc/shinken/listeners/listener__listener-rest__Mon-Listener-Rest.cfg ).
- soit dans le fichier /etc/shinken/listeners/listener-rest.cfg.
Exemple de fichier de configuration
| Code Block | ||
|---|---|---|
| ||
#=============================================================================== # listener-rest #=============================================================================== # Daemons that can load this listener: # - synchronizer #=============================================================================== define listener { listener_name listener-rest #======== ModuleListener identity ========= # Listener name. Must be unique listener_name listener-rest # Listener type (to load module code). Do not edit. module_type listener-rest import_interval 0 order 10 # enabled: is this listener enabled or 5not import_intervalenabled 0 #======== Listening address ========= # enabled: is this listener enabled or nothost: IP address to listen to. # note: 0.0.0.0 = all interfaces. enabledhost 0.0.0.0 # port to listen port 7761 # description: display a description on the interface for this source description The listener-rest allow listeningto listen by HTTP(s)/REST hosts } |
Détails des sections composant le fichier de configuration
Identification du module
Il est possible de définir plusieurs instances d'écouteurs de type "listener-rest", le paramètre module_name permet d'identifier une instance donnée.
- Chaque instance devra avoir un nom unique.
| Nom | Type | Unité | Défaut | Commentaire | ||
|---|---|---|---|---|---|---|
| Texte | --- | listener-rest | Chaîne de caractères composée de lettres, de chiffres et des caractères _ et -
| ||
| Texte | --- | listener-rest | Ne peut être modifié. |
Fonctionnement de la source
| Code Block | ||
|---|---|---|
| ||
import_interval 0 order 10 # enabled: is this listener enabled or not enabled |
| Nom | Type | Unité | Défaut | Commentaire | ||
|---|---|---|---|---|---|---|
| Nombre | minutes | 0 | Valeur inutilisée, cette source s'active dès qu'elle reçoit une nouvelle requête. | ||
| Nombre | --- | 5 | L'ordre de la source dans l'interface de configuration. Permet de prioriser l'import de cette source par rapport à d'autres. La priorité est prise en compte lors du calcul des différences des éléments importés.
Remarque : Si vous changez l'ordre depuis l'interface ( page d’accueil ), le fichier .cfg sera mis à jour. | ||
| Booléen | --- | 1 | Permets d'activer ou désactiver l'écouteur ( 1 pour activer, 0 pour désactiver ). |
Communication avec l'API
| Code Block | ||
|---|---|---|
| ||
#======== Listening address ========= # host: IP address to listen to. # note: 0.0.0.0 = all interfaces. host host 0.0.0.0 # port to listen port 7761 } |
Option du module
Adresse de l'API REST
port 7761 |
Permet de préciser comment communiquer avec l'API ( son adresse et son port ).
| Nom | Type | Unité | Défaut | Commentaire |
|---|
| Texte |
| adresse IP |
| 0.0.0.0 |
Interface réseau sur laquelle l'API REST va écouter. | |||
| Texte |
| port réseau |
| 7761 | Le port réseau sur lequel l'API REST va écouter. |