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/'


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 {

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ──────────────────────────────────────    MODULE IDENTITY    ────────────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Listener name [ Must be unique ]                                                    [ MANDATORY ] ───
    listener_name                                       listener-rest

    # ─── Module type [ Do not edit ]                                                         [ MANDATORY ] ───
    listener_name                                       listener-rest

    # ─── Imply if a source is before another source when merging data                                   ───
    order                                               5

    # ─── Display a description on the interface for this source                                            ───
    description                                         The listener-rest allow listening by HTTP(s)/REST hosts

    # ─── In minutes, what is the schedule import interval for this source.                                 ───
    # ─── 0 = don't schedule this source, will run only if an administrator launch it from the interface    ───
    # >>> Default : 0                                                                                       ───
    # import_interval                                   0

    # ─── Enabled this source or not                                                                        ───
    # >>> Enable  : 1 ( enable the listener ) ( Default )                                                   ───
    # ─── Disable : 0 ( disable the listener )                                                              ───
    enabled                                             0

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ─────────────────────────────────────    LISTENER OPTIONS    ────────────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── The IPv4 listening interface to listen to                                                         ───
    # >>> Default : 0.0.0.0                                                                                 ───
    # ─── NOTE: The address 0.0.0.0 matches all interfaces                                                  ───
    # ───       You cannot use multiple interfaces ( except with 0.0.0.0 )                                 ───
    # host                                              0.0.0.0

    # ─── The port to listen to                                                                             ───
    # >>> Default : 7761                                                                                    ───
    # post                                              7761

}  



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

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

	order                   5
    import_interval         0
 
    # enabled: is this listener enabled or not
    enabled                 0
 
    # description: display a description on the interface for this source
    description             The listener-rest allow listening 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

 }


Option du module

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.

nomtypedéfautcommentaire


module_name


Textelistener-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


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


Fonctionnement de la source


nomtypedéfautcommentaire


import_interval		


Nombre  ( minutes )0

Intervalle 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.


order


Nombre5

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.


enabled	


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


Communication avec l'API

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

nomtypedéfautcommentaire


host


Texte ( adresse IP )0.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	


Texte ( port réseau )7761Le port réseau sur lequel l'API REST va écouter.