Sommaire

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.

Les URL non ouvertes et géreés par le modules ne peuvent donc pas être loguée. Voici un exemple d'erreur 404 reçue par un client, mais qui ne présente aucun log
# 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.

Les méthodes géreés par le modules ne peuvent donc pas être loguée. Voici un exemple d'erreur 405 reçue par un client, mais qui ne présente aucun log
# 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>