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

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

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/synchronizers/, et ajouter le nom de votre listener "listener-rest".

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
          [...]
      }
Exemple: par défaut, nous livrons un module dont le nom est "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                   
Module
  • Source 1, 
Module
  • Source 2, 
Module
  • Source 3, 
listener
  • Mon-Listener-
rest
  • Rest
        [...]
    }
Pour Code Block
  • Redémarrez le Synchronizer pour qu'il puisse prendre en compte

le changement de configuration, redémarrer l'Arbiter:
  • cette nouvelle source.

    Code Block
    languagebash
    themeConfluence
  • service shinken-
arbiter
  • 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#======== Listener identity =========
    order		# Listener name. Must be    10unique
    importlistener_interval	    0

    # enabled: is this listener enabled or not
    enabled		           0

    #======== Module identity =========name		    listener-rest

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


    import_interval	    0
     # description: display a description on the interface for this sourceorder		        10

    # enabled: is this listener enabled or not
    descriptionenabled		       The listener-rest allow to listen by HTTP(s)/REST hosts
 0

    #======== 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


    # description: display a description on the interface for this source
    description		       The listener-rest allow to 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 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 "$"les caractères ?, &, ", ', $, /, #, \, ;
Code Block
module_type
Texte---listener-restValeur obligatoire et non modifiable ( permet au Synchronizer de charger le code logiciel correspondant )Ne peut être modifié.

Fonctionnement de la source

Code Block
languagejs
	
	order 10
	    import_interval	    0

	
    order		        10

    # enabled: is this listener enabled or not
    enabled	enabled 0

 

d'import ( Sources ( Taggers .
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.

  • Plus l'ordre de la source est petit, plus elle est prioritaire.
  • Plus d'informations sur l'ordre des sources : Créer et organiser ses sources
  • Plus d'informations sur le calcul des différences : Modules

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

Code Block
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

.

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