L'API fournie par les écouteurs est de type REST ; elle fonctionne donc par l'intermédiaire des différentes méthodes du protocole HTTP:
L'identifiant des éléments est fourni dans l'URL et les données supplémentaires, quand cela est nécessaire, sont fournies dans le corps de la requête HTTP en format JSON.
Cette page décrit le format des URL ainsi que les différentes actions réalisables.
Les exemples utilisent la commande curl, disponible dans la plupart des distributions Linux ; cependant la requête HTTP peut être réalisée avec l'outil de votre choix.
Notez que cet écouteur ne permet de travailler que sur les hôtes. |
|
Une requête est composée de plusieurs éléments :
Par défaut, l'écouteur transmet et reçoit les requêtes en clair ( non chiffrée ) et sans authentification. Vous pouvez sécuriser ces communications avec :
Il est fortement conseillé d'activer ces paramètres de sécurité en même temps. |
Il est possible d'authentifier les requêtes grâce à un couple identifiant /mot de passe, configurable uniquement sur la page de l'écouteur, dans l'onglet Configuration.
|
Lors des appels à cet écouteur, il faudra spécifier cet identifiant et ce mot de passe pour que les requêtes s'exécutent.
Par exemple, avec curl, il faut utiliser l'option -u :
$ curl -u 'admin-listener:mot_de_passe' -X PUT .... |
Afin de chiffrer les communications entre un écouteur et un client, il suffit d'activer l'option SSL ( Secure Socket Layer ).
Il suffit de cocher la case Utiliser SSL et saisir une clé SSL et un certificat SSL qui ne sera valable que pour cet écouteur.
Shinken fournit un certificat SSL qui permet de chiffrer les communications pour tous les démons et/ou modules. Il se situe dans le répertoire /etc/shinken/certs/ Il est aussi possible de faire son propre certificat voir : Création d'un certificat SSL gratuit |
Validez ensuite cette configuration en cliquant sur le bouton Envoyer.
L'écouteur va se relancer avec cette nouvelle configuration ( ou lors de l'activation de la source si celle-ci est désactivée au moment de l'édition ).
|
Lors des appels à cet écouteur, il faudra penser à modifier le protocole HTTP en HTTPS.
$ curl -X PUT "https://synchronizer-server:7761/shinken/listener-rest/v1/hosts" |
Si vous utilisez le certificat fournit par Shinken ou un certificat auto signé ( non émis et vérifiés par une autorité de certification ), vous aurez besoin de spécifier l'option -k ou --insecure dans la ligne de commande curl |
| Si vous avez le certificat de l'autorité de certification vous pouvez le spécifiez dans la ligne de commande curl avec l'option --cacert <chemin du certificat de l'autorité> |
Dans ces différents exemples, nous allons utiliser des des requêtes :
L'URL utilisé sera donc
http://localhost:7761/shinken/listener-rest/v1/hosts/" |
Pensez à adaptez cette URL en fonction de votre configuration
Afin d'avoir un affichage plus esthétique des résultat de la méthode GET, vous pouvez rediriger la sortie vers Pyhon et utiliser le module json.tool grâce à la commande suivante a ajouter en fin de ligne :
|
Vous pouvez obtenir la liste des hôtes présent dans l'écouteur via l'Appel /shinken/listener-rest/v1/hosts, et la Méthode GET
Vous pouvez créer un hôte via l'Appel /shinken/listener-rest/v1/hosts, et la Méthode PUT
Vous pouvez obtenir les informations définissant un hôte via l'Appel /shinken/listener-rest/v1/hosts/SE_UUID, et la Méthode GET
Vous pouvez modifier un hôte via l'Appel /shinken/listener-rest/v1/hosts/SE_UUID, et l'une des métodes POST ou PUT ou PATCH
Vous pouvez supprimer un hôte via l'Appel /shinken/listener-rest/v1/hosts/SE_UUID, et l'une des métodes DELETE
Lorsqu'on importe un hôte existant qui contient la propriété "use", la liste des modèle décrits dans la propriété "use" est ajoutée à la liste des modèles actuellement utilisée par l'hôte.