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 :

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 module

La source ne peut s'activer que sur le Synchronizer.

  • L'activation de la source s'effectue en ajoutant le nom de cette source dans le fichier de configuration du démon Synchronizer.
  • Pour ce faire, ouvrer le fichier de configuration à l'emplacement /etc/shinken/synchronizer/, et ajouter le nom de votre listener "listener-rest".


Exemple: par défaut, nous livrons un module dont le nom est "listener-rest":

define DEMON-TYPE {
    [...]
    sources                   Module 1, Module 2, Module 3, listener-rest
    [...]
}


Pour prendre en compte le changement de configuration, redémarrer l'Arbiter:

service shinken-arbiter restart


Configuration

Voici le fichier CFG de configuration présent dans : /etc/shinken/listeners/listener-rest.cfg.

Exemple de fichier de configuration


#===============================================================================
# listener-rest
#===============================================================================
# Daemons that can load this listener:
# - synchronizer
#===============================================================================


define listener {
    listener_name		    listener-rest
    order		        10
    import_interval	    0

    # enabled: is this listener enabled or not
    enabled		           0

    #======== Module identity =========
    # Listener type (to load module code). Do not edit.
    module_type     	listener-rest

    # description: display a description on the interface for this source
    description		       The listener-rest allow to listen by HTTP(s)/REST hosts


    #======== Listening address =========
    # host: IP address to listen to.
    #       note: 0.0.0.0 = all interfaces.
    host                      0.0.0.0

    # port to listen
    port                      7761

}


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.

NomTypeUnitéDéfautCommentaire


module_name


Texte---listener-rest 

Chaîne de caractères composée de lettres, de chiffres et des caractères _  et -

  • Doit être unique 
  • Doit commencer par une lettre.
  • D'une longueur maximum à 40 caractères
  • Ne doit pas contenir le caractère "$"


module_type


Texte---listener-restValeur obligatoire et non modifiable ( permet au Synchronizer de charger le code logiciel correspondant ).


Fonctionnement de la source


	
	order 10
	import_interval 0

	# enabled: is this listener enabled or not
	enabled 0



NomTypeUnitéDéfautCommentaire


order




Nombre---5

L'ordre de la source dans l'interface de configuration ( A un impact dans la fusion des données lors des imports de sources ).

  • Un nombre
  • Voir la page du Synchronizer pour plus d'information au sujet des fusions. 

Remarque : Si vous changez l'ordre depuis l'interface ( page d’accueil ), le fichier .cfg sera mis à jour.


import_interval		


Nombre minutes0Intervalle de temps en minutes entre les imports automatiques de la source.
Remarque : Si l'intervalle est 0, l'import de la source ne sera jamais importée automatiquement.


enabled	


Booléen---1Permets d'activer ou désactiver l'écouteur ( 1 pour activer, 0 pour désactiver ).


Communication avec l'API


	#======== Listening address =========
	# host: IP address to listen to.
	# note: 0.0.0.0 = all interfaces.
	host 0.0.0.0

	# port to listen
	port 7761


Permet de préciser comment communiquer avec l'API ( son adresse et son port ).


NomTypeUnitéDéfautCommentaire


host


Texteadresse IP0.0.0.0

Interface réseau sur laquelle l'API REST va écouter.
Il n'est possible de mettre qu'une seule valeur.

Remarque :
L'adresse 0.0.0.0 correspond à toutes les interfaces réseau.


port	


Texteport réseau7761Le port réseau sur lequel l'API REST va écouter.