L'API fournie par les écouteurs est de type REST ; elle fonctionne donc par l'intermédiaire des différentes actions du protocole HTTP:
L'identifiant des objets est fournie dans l'URL, et les données supplémentaires, quand cela est nécessaire, sont fournies dans le corps de la requête HTTP sous la forme d'un objet JSON.
Cette page décrit les différentes actions réalisables ainsi que le format des données.
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.
Une requête est composée de plusieurs éléments :
Si l'authentification HTTP est configurée dans le listener, vous devez fournir les informations d'authentification lors de l'exécution de la requête HTTP. Avec curl, il s'agit de l'option -u :
$ curl -u 'root:root' -X PUT .... |
|
|
Cette action permet d'envoyer à l'écouteur un nouvel objet ou de modifier un objet existant
$ curl -u 'root:root' -X PUT http://localhost:7761/shinken/listener-rest/v1/hosts -d '{ "host_name": "hote-example", "use":"linux", "_SSH_USER":"root", "_SSH_KEY_PASSPHRASE":"root" }'
"core-hosts-22b48e7408a549f6895badada2fd3690" |
$ curl -u 'root:root' -X PUT http://localhost:7761/shinken/listener-rest/v1/hosts/core-hosts-22b48e7408a549f6895badada2fd3690 -d '{ "address": "192.168.1.42" }'
done |
Cette action a deux significations possibles :
$ curl -u 'root:root' http://localhost:7761/shinken/listener-rest/v1/hosts/core-hosts-22b48e7408a549f6895badada2fd3690 | python -mjson.tool
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 381 100 381 0 0 72668 0 --:--:-- --:--:-- --:--:-- 76200
{
"_SE_UUID": "core-hosts-22b48e7408a549f6895badada2fd3690",
"_SSH_KEY_PASSPHRASE": "root",
"_SSH_USER": "root",
"_SYNC_KEYS": "core-hosts-22b48e7408a549f6895badada2fd3690,hote-example",
"_id": "22b48e7408a549f6895badada2fd3690",
"host_name": "hote-example",
"imported_from": "listener-rest envoy\u00e9 depuis l'adresse 127.0.0.1",
"update_date": 1527839180.6257291,
"use": "linux"
}
|
$ curl -u 'root:root' http://localhost:7761/shinken/listener-rest/v1/hosts/ | python -m json.tool
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 785 100 785 0 0 104k 0 --:--:-- --:--:-- --:--:-- 109k
[
{
"_SE_UUID": "core-hosts-22b48e7408a549f6895badada2fd3690",
"_SSH_KEY_PASSPHRASE": "root",
"_SSH_USER": "root",
"_SYNC_KEYS": "core-hosts-22b48e7408a549f6895badada2fd3690,hote-example",
"_id": "22b48e7408a549f6895badada2fd3690",
"host_name": "hote-example",
"imported_from": "listener-rest envoy\u00e9 depuis l'adresse 127.0.0.1",
"update_date": 1527839180.6257291,
"use": "linux"
},
{
"_SE_UUID": "core-hosts-bafe4fae3fc447b992daa3f10ee260f2",
"_SYNC_KEYS": "core-hosts-bafe4fae3fc447b992daa3f10ee260f2,hote-example-2",
"_id": "bafe4fae3fc447b992daa3f10ee260f2",
"address": "192.168.0.42",
"host_name": "hote-example-2",
"imported_from": "listener-rest envoy\u00e9 depuis l'adresse 127.0.0.1",
"update_date": 1527839954.469449,
"use": "shinken-full"
}
]
|
Cette action permet de supprimer un élément des objets importés par le listener. Il n'est pas possible de supprimer les éléments ne provenant pas de la même source, pour des raisons de sécurité.
$ curl -u 'root:root' -X DELETE http://localhost:7761/shinken/listener-rest/v1/hosts/core-hosts-22b48e7408a549f6895badada2fd3690 done |