Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Scroll Ignore
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmltrue
Panel
titleSommaire

Table of Contents
stylenone

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
themeEmacs
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
      languagebash
      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
    languagebash
    themeConfluence
    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
    languagebash
    themeConfluence
    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
      languagebash
      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
    languagebash
    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
    languagebash
    themeConfluence
    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
languagejs
#===============================================================================
# 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.
NomTypeUnitéDéfautCommentaire
Code Block
module_name
Texte---listener-rest 

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

  • Doit être unique 
  • D'une longueur maximum à 40 caractères
  • Ne doit pas contenir les caractères ?, &, ", ', $, /, #, \, ;
Code Block
module_type
Texte---listener-restNe peut être modifié.

Fonctionnement de la source

Code Block
languagejs
    import_interval	    0
    order		        10

    # enabled: is this listener enabled or not
    enabled	  

NomTypeUnitéDéfautCommentaire
Code Block
import_interval		
Nombre minutes0Valeur inutilisée, cette source s'active dès qu'elle reçoit une nouvelle requête. 
Code Block
order
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.

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

Communication avec l'API

Code Block
languagejs
	#======== 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 ).

NomTypeUnitéDéfautCommentaire
Code Block
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.

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