Démarrage du synchronizer
Ces logs sont communs à chaque démarrage :
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] Configuration is OK : [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - Host --------------------------------------- : 0.0.0.0 [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - Port --------------------------------------- : 7761 [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - Authentication required ( login/password ) - : Yes [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - login ----------------------------------- : ******** [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - password -------------------------------- : ******** [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - SSL required ( HTTPS ) --------------------- : No [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - ssl_cert -------------------------------- : [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - ssl_key --------------------------------- :
Avec une interface d'écoute en 0.0.0.0
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] The listener URL is : http://SYNCHRONIZER_IP:7761/shinken/LISTENER-NAME/v1/hosts [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] The source listen an all interfaces, SYNCHRONIZER_IP can be one of these address found on this system : [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - IP_ADDRESS_01_SERVER [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - IP_ADDRESS_02_SERVER [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - 127.0.0.1
Avec une interface d'écoute spécifique
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] The listener URL is : http://IP_ADDRESS_01_SERVER:7761/shinken/LISTENER-NAME/v1/hosts
Avec la source activée
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] The source is enabled, it will start listen. [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ LISTENING ] Opening connections on 0.0.0.0:7761
Avec la source désactivée
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] The source is disabled, it will not listen until it is enabled.
Activation de la source
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ LISTENING ] Opening connections on 0.0.0.0:7761 (Source is enabled)
Désactivation de la source
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ LISTENING ] Closing connections on 0.0.0.0:7761 (Source is disabled)
Mise à jour de la configuration de la source
Les logs sur l'interface d'écoute sont les mêmes qu'au démarrage du module
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ CONFIGURATION ] New configuration received, restart the source [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] Configuration is OK : [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - Host --------------------------------------- : 0.0.0.0 [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - Port --------------------------------------- : 7761 [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - Authentication required ( login/password ) - : No [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - login ----------------------------------- : [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - password -------------------------------- : [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - SSL required ( HTTPS ) --------------------- : No [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - ssl_cert -------------------------------- : /etc/shinken/certs/server.cert [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - ssl_key --------------------------------- : /etc/shinken/certs/server.key [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] The listener URL is : http://SYNCHRONIZER_IP:7761/shinken/LISTENER-NAME/v1/hosts [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] The source listen an all interfaces, SYNCHRONIZER_IP can be one of these address found on this system : [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - IP_ADDRESS_01_SERVER [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - IP_ADDRESS_02_SERVER [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] - 127.0.0.1
Avec la source allumée
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] The source is enabled, it will start listen. [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ LISTENING ] Opening connections on 0.0.0.0:7761
Avec la source éteinte
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ INITIALISATION ] The source is disabled, it will not listen until it is enabled.
Requêtes reçues
URL : /shinken/LISTENER-NAME/v1/hosts
Cette URL requête tous les éléments du listener ou en créer de nouveaux
Obtention de la liste de tous les éléments du listener
# Correspond à la requête : curl -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/" -X GET [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ LIST REQUEST ] item_type : hosts => ( HTTP GET request from IP_ADDRESS_CLIENT )
Création d'un élément
Lors de la création de nouveaux éléments, le code retour est 201 et non 200 pour être compliance REST
Nouvel élément
# Correspond à la requête : curl -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/" -X PUT -d '{"host_name": "host_name_01", "address":"10.10.10.1"}'
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ CREATION REQUEST ] item_type : hosts, name : "host_name_01" => ( HTTP PUT request from IP_ADDRESS_CLIENT )
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ CREATION REQUEST ] item_type : hosts, name : "host_name_01" => Hosts is valid and CREATED
Élément déjà existant dans le listener
# Correspond à la requête : curl -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/" -X PUT -d '{"host_name": "host_name_02", "address":"10.10.10.2"}'
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ CREATION REQUEST ] item_type : hosts, name : "host_name_02" => ( HTTP PUT request from IP_ADDRESS_CLIENT )
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ CREATION REQUEST ] item_type : hosts, name : "host_name_02" => Hosts already exists in listener with the same name ( se_uuid "SE_UUID" ). This request will UPDATE the item instead of creating it
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ CREATION REQUEST ] item_type : hosts, name : "host_name_02" => Hosts is valid and UPDATED
Élément existant dans la Zone de travail ou Staging
# Correspond à la requête : curl -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/" -X PUT -d '{"host_name": "host_name_03", "address":"10.10.10.3"}'
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ CREATION REQUEST ] item_type : hosts, name : "host_name_03" => ( HTTP PUT request from IP_ADDRESS_CLIENT )
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ CREATION REQUEST ] item_type : hosts, name : "host_name_03" => Hosts already exists in stagging with the same name ( se_uuid "SE_UUID" ). This request will CREATE item in listener with same SE_UUID
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ CREATION REQUEST ] item_type : hosts, name : "host_name_03" => Hosts is valid and CREATED
Élément invalide ( pas de nom )
# Correspond à la requête : curl -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/" -X PUT -d '{"address":"10.10.10.4"}'
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ CREATION REQUEST ] item_type : hosts, name : "" => ( HTTP PUT request from IP_ADDRESS_CLIENT )
[YYYY-MM-DD HH:MM:SS] ERROR : [ synchronizer ] [ listener-name ] [ CREATION REQUEST ] Bad request object received ( HTTP PUT request from IP_ADDRESS_CLIENT ) : Le champ host_name est absent
URL : /shinken/LISTENER-NAME/v1/hosts/SE_UUID_HOST
Ces URL sont spécifiques à un objet précis, son SE_UUID est donc précisé dans l'url. si le SE_UUID n'existe pas dans Shinken, une erreur est levée : voir log suivant.
Cas d'un SE_UUID inexistant
# Correspond aux requêtes : curl -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/SE_UUID_HOST" [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ DELETE REQUEST ] item_type : hosts, se_uuid : SE_UUID_INEXISTING => There is no Hosts with this se_uuid ( HTTP DELETE request from IP_ADDRESS_CLIENT )
Visualisation d'un élément
# Correspond à la requête : curl -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/SE_UUID_HOST" -X GET [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ GET REQUEST ] item_type : hosts, name : "host_name_05", se_uuid : "SE_UUID_HOST" => ( HTTP GET request from IP_ADDRESS_CLIENT )
Mise à jour d'un élément
Les mises à jour peuvent se faire sur cette url avec des requêtes
- POST
- PUT
- PATCH
mais ne seront présenté qu'avec le POST dans ces logs
Mise à jour simple
# Correspond à la requête : curl -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/SE_UUID_HOST" -X POST -d '{"business_impact":"5"}'
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ UPDATE REQUEST ] item_type : hosts, se_uuid : SE_UUID_HOST => ( HTTP POST request from IP_ADDRESS_CLIENT )
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ UPDATE REQUEST ] item_type : hosts, name : "host_name_05", se_uuid : "SE_UUID_HOST" => Hosts is valid and UPDATED
Mise à jour avec un nouveau nom
# Correspond à la requête : curl -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/SE_UUID_HOST" -X POST -d '{"host_name":"new name"}'
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ UPDATE REQUEST ] item_type : hosts, se_uuid : "SE_UUID_HOST" => ( HTTP PUT request from IP_ADDRESS_CLIENT )
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ UPDATE REQUEST ] item_type : hosts, name : "host_name_05", se_uuid : "SE_UUID_HOST" => the request will change the name to "new name"
[YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ UPDATE REQUEST ] item_type : hosts, name : "new name", se_uuid : "SE_UUID_HOST" => Hosts is valid and UPDATED
Suppression d'un hôte
# Correspond à la requête : curl -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/SE_UUID_HOST" -X DELETE [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ DELETE REQUEST ] item_type : hosts, name "new name", se_uuid : "SE_UUID_HOST" => ( HTTP DELETE request from IP_ADDRESS_CLIENT ) [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ DELETE REQUEST ] item_type : hosts, name "new name", se_uuid : "SE_UUID_HOST" => Hosts is DELETED
Suppression d'un hôte depuis l'interface de configuration
# Correspond à la requête : curl -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/SE_UUID_HOST" -X DELETE [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ DELETE REQUEST ] item_type : hosts, name "new name", se_uuid : "SE_UUID_HOST" => ( request from Configuration UI ) [YYYY-MM-DD HH:MM:SS] INFO : [ synchronizer ] [ listener-name ] [ DELETE REQUEST ] item_type : hosts, name "new name", se_uuid : "SE_UUID_HOST" => Hosts is DELETED
Erreurs d'authentification
L'authentification du listener est activée, mais le mot de passe et / ou le nom d'utilisateur n'est pas défini
[YYYY-MM-DD HH:MM:SS] WARNING: [ synchronizer ] [ listener-name ] [ AUTHENTICATION ] Authentication is activated, but username or password parameters are not defined. Please check their values or deactivate authentication.
Requête sans authentification alors que l'authentification est requise
# Correspond à la requête : curl -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts" -X GET [YYYY-MM-DD HH:MM:SS] ERROR : [ synchronizer ] [ listener-name ] [ AUTHENTICATION ] Refuse unauthenticated request ( HTTP GET request from IP_ADDRESS_CLIENT ) # Correspond à la requête : curl -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/SE_UUID_HOST" -X GET [YYYY-MM-DD HH:MM:SS] ERROR : [ synchronizer ] [ listener-name ] [ AUTHENTICATION ] Refuse unauthenticated request for item se_uuid : "SE_UUID_HOST" ( HTTP DELETE request from IP_ADDRESS_CLIENT )
Requête avec mauvais login
# Correspond à la requête : curl -u root:root -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts" -X GET [YYYY-MM-DD HH:MM:SS] ERROR : [ synchronizer ] [ listener-name ] [ AUTHENTICATION ] Refuse request with bad credentials ( username used was "root") ( HTTP GET request from IP_ADDRESS_CLIENT ) # Correspond à la requête : curl -u root:root -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/SE_UUID_HOST" -X GET [YYYY-MM-DD HH:MM:SS] ERROR : [ synchronizer ] [ listener-name ] [ AUTHENTICATION ] Refuse request for item se_uuid : "SE_UUID_HOST" with bad credentials ( username used was "root") ( HTTP DELETE request from IP_ADDRESS_CLIENT )
Requête avec mauvais mot de passe ( mais bon login )
# Correspond à la requête : curl -u admin:bad_password -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/" [YYYY-MM-DD HH:MM:SS] ERROR : [ synchronizer ] [ listener-name ] [ AUTHENTICATION ] Refuse request with bad credentials ( HTTP GET request from IP_ADDRESS_CLIENT ) # Correspond à la requête : curl -u admin:bad_password -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/SE_UUID_HOST" [YYYY-MM-DD HH:MM:SS] ERROR : [ synchronizer ] [ listener-name ] [ AUTHENTICATION ] Refuse request for item se_uuid : "SE_UUID_HOST" with bad credentials ( HTTP DELETE request from IP_ADDRESS_CLIENT )
Erreur d'URL
Les URL suivantes et leur méthode associées, sont ouvertes et gérée par le module :
/shinken/LISTENER-NAME/v1/hosts
- GET
- PUT
- /shinken/LISTENER-NAME/v1/hosts/
- GET
- PUT
- /shinken/LISTENER-NAME/v1/hosts/SE_UUID
- GET
- DELETE
- POST
- PUT
- PATCH
Si ces URL ne sont pas respectée, alors vous pouvez avoir les erreurs suivantes.
404
Cette erreur est appelée lorsque l'URL est différente de celles listées.
# Correspond à la requête : curl -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/"
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>Error 404: Not Found</title>
<style type="text/css">
html {background-color: #eee; font-family: sans;}
body {background-color: #fff; border: 1px solid #ddd;
padding: 15px; margin: 15px;}
pre {background-color: #eee; border: 1px solid #ddd; padding: 5px;}
</style>
</head>
<body>
<h1>Error 404: Not Found</h1>
<p>Sorry, the requested URL <tt>'http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts/'</tt>
caused an error:</p>
<pre>Not found: '/shinken/LISTENER-NAME/v1/hosts/'</pre>
</body>
</html>
405
Cette erreur est appelée lorsque la méthode n'est pas gérée par l'URL.
# Correspond à la requête : curl -H "Content-Type: application/json" "http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts" -X DELETE
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>Error 405: Method Not Allowed</title>
<style type="text/css">
html {background-color: #eee; font-family: sans;}
body {background-color: #fff; border: 1px solid #ddd;
padding: 15px; margin: 15px;}
pre {background-color: #eee; border: 1px solid #ddd; padding: 5px;}
</style>
</head>
<body>
<h1>Error 405: Method Not Allowed</h1>
<p>Sorry, the requested URL <tt>'http://IP_ADDRESS_SYNCHRONIZER:7761/shinken/LISTENER-NAME/v1/hosts'</tt>
caused an error:</p>
<pre>Method not allowed.</pre>
</body>
</html>