| Scroll Ignore | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
Description
Le listener-rest permet est une source qui expose une API REST permettant d'ajouter des hôtes à l'aide de requêtes HTTPde 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 ========= # enabledhost: is this listener enabled or not IP address to listen to. # note: 0.0.0.0 = all interfaces. host enabled 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 } 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. |