This is a translation of the original English documentation page. Help us make it better.

1 Protocole d'échange de données serveur-proxy

Aperçu

L'échange de données serveur - proxy est basé sur le format JSON.

Les messages de requête et de réponse doivent commencer par un en-tête et une longueur des données.

Proxy passif

Demande de configuration proxy

La requête proxy config est envoyée par le serveur pour fournir les données de configuration du proxy. Cette requête est envoyée chaque ProxyConfigFrequency (paramètre de configuration du serveur) secondes.

Nom Type de valeur Description
serveur→proxy :
request chaîne 'proxy config'
<table> objet Un ou plusieurs objets avec des données <table>.
fields tableau Tableau de noms de champs.
- chaîne Nom du champ.
data tableau Tableau de lignes.
- tableau Tableau de colonnes.
- chaîne,nombre Valeur de colonne dont le type dépend du type de colonne dans le schéma de la base de données.
proxy→serveur :
response chaîne Demande d'informations sur le succès ('success' ou 'failed').
version chaîne Version du proxy (<majeur>.<mineur>.<build>).

Exemple :

serveur→proxy :

{
           "request": "proxy config",
           "globalmacro":{
               "fields":[
                   "globalmacroid",
                   "macro",
                   "value"
               ],
               "data":[
                   [
                       2,
                       "{$SNMP_COMMUNITY}",
                       "public"
                   ]
               ]
           },
           "hosts":{
               "fields":[
                   "hostid",
                   "host",
                   "status",
                   "ipmi_authtype",
                   "ipmi_privilege",
                   "ipmi_username",
                   "ipmi_password",
                   "name",
                   "tls_connect",
                   "tls_accept",
                   "tls_issuer",
                   "tls_subject",
                   "tls_psk_identity",
                   "tls_psk"
               ],
               "data":[
                   [
                       10001,
                       "Linux",
                       3,
                       -1,
                       2,
                       "",
                       "",
                       "Linux",
                       1,
                       1,
                       "",
                       "",
                       "",
                       ""
                   ],
                   [
                       10050,
                       "Zabbix Agent",
                       3,
                       -1,
                       2,
                       "",
                       "",
                       "Zabbix Agent",
                       1,
                       1,
                       "",
                       "",
                       "",
                       ""
                   ],
                   [
                       10105,
                       "Logger",
                       0,
                       -1,
                       2,
                       "",
                       "",
                       "Logger",
                       1,
                       1,
                       "",
                       "",
                       "",
                       ""
                   ]
               ]
           },
           "interface":{
               "fields":[
                   "interfaceid",
                   "hostid",
                   "main",
                   "type",
                   "useip",
                   "ip",
                   "dns",
                   "port",
                   "bulk"
               ],
               "data":[
                   [
                       2,
                       10105,
                       1,
                       1,
                       1,
                       "127.0.0.1",
                       "",
                       "10050",
                       1
                   ]
               ]
           },
           ...
       }

proxy→serveur :

{
         "response": "success",
         "version": "6.0.0"
       }
Requête de proxy

La demande de données prox est utilisée pour obtenir des données de disponibilité, d'historique, de découverte et d'enregistrement automatique de l'interface hôte à partir du proxy. Cette requête est envoyée toutes les ProxyDataFrequency (paramètre de configuration du serveur) secondes.

nom type de valeur description
serveur→proxy :
request chaîne 'proxy data'
proxy→serveur :
session chaîne Jeton de session de données.
interface availability tableau (optionnel) Tableau d'objets de données de disponibilité d'interface.
interfaceid nombre Identificateur d'interface.
available nombre Disponibilité des interfaces :

0, INTERFACE_AVAILABLE_UNKNOWN - inconnue
1, INTERFACE_AVAILABLE_TRUE - disponible
2, INTERFACE_AVAILABLE_FALSE - indisponible
error chaîne Message d'erreur d'interface ou chaîne vide.
history data tableau (optionnel) Tableau d'objets de données d'historique.
itemid nombre Identificateur d'élément.
clock nombre Horodatage de la valeur de l'élément (secondes).
ns nombre Horodatage de la valeur de l'élément (nanosecondes).
value chaîne (optionnel) Valeur de l'élément.
id nombre Identificateur de valeur (compteur croissant, unique dans une session de données).
timestamp nombre (optionnel) Horodatage des éléments de type journal.
source chaîne (optionnel) Valeur source de l'élément du journal des événements.
severity nombre (optionnel) Valeur de sévérité de l'élément du journal des événements.
eventid nombre (optionnel) Valeur de l'ID d'événement de l'élément du journal des événements.
state chaîne (optionnel) État de l'élément :
0, ITEM_STATE_NORMAL
1, ITEM_STATE_NOTSUPPORTED
lastlogsize nombre (optionnel) Taille du dernier journal des éléments de type journal.
mtime nombre (optionnel) Heure de modification des rubriques de type log.
discovery data tableau (optionnel) Tableau d'objets de données de découverte.
clock nombre Horodatage des données de découverte.
druleid nombre Identificateur de règle de découverte.
dcheckid nombre Identifiant de vérification de découverte ou nul pour les données de règle de découverte.
type nombre Type de contrôle de découverte :

-1 données de règle de découverte
0, SVC_SSH - Vérification du service SSH
1, SVC_LDAP - Vérification du service LDAP
2, SVC_SMTP - Vérification du service SMTP
3, SVC_FTP - Vérification du service FTP
4, SVC_HTTP - Vérification du service HTTP
5, SVC_POP - Vérification du service POP
6, SVC_NNTP - Vérification du service NNTP
7, SVC_IMAP - Vérification du service IMAP
8, SVC_TCP - Vérification de la disponibilité du port TCP
9, SVC_AGENT - Agent Zabbix
10, SVC_SNMPv1 - Agent SNMPv1
11, SVC_SNMPv2 - Agent SNMPv2
12, SVC_ICMPPING - Ping ICMP
13, SVC_SNMPv3 - Agent SNMPv3
14, SVC_HTTPS - Vérification du service HTTPS
15, SVC_TELNET - Vérification de la disponibilité Telnet
ip chaîne Adresse IP de l'hôte.
dns chaîne Nom DNS de l'hôte.
port nombre (optionnel) Numéro de port de service.
key_ chaîne (optionnel) Clé d'élément pour le contrôle de découverte de type 9 SVC_AGENT
value chaîne (optionnel) Valeur reçue du service, peut être vide pour la plupart des services.
status nombre (optionnel) État du service:

0, DOBJECT_STATUS_UP - Service démarré
1, DOBJECT_STATUS_DOWN - Service arrêté
auto registration tableau (optionnel) Tableau d'objets de données d'enregistrement automatique.
clock nombre Horodatage des données d'enregistrement automatique.
host chaîne Nom d'hôte.
ip chaîne (optionnel) Adresse IP de l'hôte.
dns chaîne (optionnel) Nom DNS résolu à partir de l'adresse IP.
port chaîne (optionnel) Port de l'hôte.
host_metadata chaîne (optionnel) Métadonnées de l'hôte envoyées par l'agent (basées sur le paramètre de configuration de l'agent HostMetadata ou HostMetadataItem).
tasks tableau (optionnel) Tableau de tâches.
type nombre Type de tâche :

0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - résultat de la commande à distance
status nombre Statut d'exécution de la télécommande :

0, ZBX_TM_REMOTE_COMMAND_COMPLETED - commande à distance terminée avec succès
1, ZBX_TM_REMOTE_COMMAND_FAILED - la commande à distance a échoué
error chaîne (optionnel) Message d'erreur.
parent_taskid nombre ID de tâche parent.
more nombre (optionnel) 1 - il y a plus de données d'historique à envoyer.
clock nombre (optionnel) Horodatage du transfert de données (secondes).
ns nombre (optionnel) Horodatage du transfert de données (nanosecondes).
version chaîne Version proxy (<major>.<minor>.<build>).
serveur→proxy :
response chaîne Demander des informations sur le succès ('success' ou 'failed').
tasks tableau (optionnel) Tableau de tâches.
type nombre Type de tâche :

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - commande à distance
clock nombre Heure de création de la tâche.
ttl nombre Temps en secondes après lequel la tâche expire.
commandtype nombre Type de commande à distance :

0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - utiliser un script personnalisé
1, ZBX_SCRIPT_TYPE_IPMI - utiliser IPMI
2, ZBX_SCRIPT_TYPE_SSH - utiliser SSH
3, ZBX_SCRIPT_TYPE_TELNET - utiliser Telnet
4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - utiliser le script global (actuellement équivalent fonctionnellement du script personnalisé)
command chaîne Commande distante à exécuter.
execute_on nombre Cible d'exécution pour les scripts personnalisés :

0, ZBX_SCRIPT_EXECUTE_ON_AGENT - exécuter le script sur l'agent
1, ZBX_SCRIPT_EXECUTE_ON_SERVER - exécuter le script sur le serveur
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - exécuter le script sur le proxy
port nombre (optionnel) Port pour les commandes Telnet et SSH.
authtype nombre (optionnel) Type d'authentification pour les commandes SSH.
username chaîne (optionnel) Nom d'utilisateur pour les commandes Telnet et SSH.
password chaîne (optionnel) Mot de passe pour les commandes Telnet et SSH.
publickey chaîne (optionnel) Clé publique pour les commandes SSH.
privatekey chaîne (optionnel) Clé privée pour les commandes SSH.
parent_taskid nombre ID de tâche parent.
hostid nombre ID de l'hôte cible.

Exemple :

serveur→proxy :

{
         "request": "proxy data"
       }

proxy→serveur :

{
           "session": "12345678901234567890123456789012"
           "interface availability": [
               {
                   "interfaceid": 1,
                   "available": 1,
                   "error": ""
           },
               {
                   "interfaceid": 2,
                   "available": 2,
                   "error": "Get value from agent failed: cannot connect to [[127.0.0.1]:10049]: [111] Connection refused"
           },
               {
                   "interfaceid": 3,
                   "available": 1,
                   "error": ""
           },
               {
                   "interfaceid": 4,
                   "available": 1,
                   "error": ""
           }
           ],
           "history data":[
               {
                   "itemid":"12345",
                   "clock":1478609647,
                   "ns":332510044,
                   "value":"52956612",
                   "id": 1
               },
               {
                   "itemid":"12346",
                   "clock":1478609647,
                   "ns":330690279,
                   "state":1,
                   "value":"Cannot find information for this network interface in /proc/net/dev.",
                   "id": 2
               }
           ],
           "discovery data":[
               {
                   "clock":1478608764,
                   "drule":2,
                   "dcheck":3,
                   "type":12,
                   "ip":"10.3.0.10",
                   "dns":"vdebian",
                   "status":1
               },
               {
                   "clock":1478608764,
                   "drule":2,
                   "dcheck":null,
                   "type":-1,
                   "ip":"10.3.0.10",
                   "dns":"vdebian",
                   "status":1
               }
           ],
           "auto registration":[
               {
                   "clock":1478608371,
                   "host":"Logger1",
                   "ip":"10.3.0.1",
                   "dns":"localhost",
                   "port":"10050"
               },
               {
                   "clock":1478608381,
                   "host":"Logger2",
                   "ip":"10.3.0.2",
                   "dns":"localhost",
                   "port":"10050"
               }
           ],
           "tasks":[
               {
                   "type": 0,
                   "status": 0,
                   "parent_taskid": 10
               },
               {
                   "type": 0,
                   "status": 1,
                   "error": "No permissions to execute task.",
                   "parent_taskid": 20
               }
           ],    
           "version":"5.4.0"
       }

serveur→proxy :

{
         "response": "success",
         "tasks":[
             {
                "type": 1,
                "clock": 1478608371,
                "ttl": 600,
                "commandtype": 2,
                "command": "restart_service1.sh",
                "execute_on": 2,
                "port": 80,
                "authtype": 0,
                "username": "userA",
                "password": "password1",
                "publickey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe",
                "privatekey": "lsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5QCqGKukO1De7zhd",
                "parent_taskid": 10,
                "hostid": 10070
             },
             {
                "type": 1,
                "clock": 1478608381,
                "ttl": 600,
                "commandtype": 1,
                "command": "restart_service2.sh",
                "execute_on": 0,
                "authtype": 0,
                "username": "",
                "password": "",
                "publickey": "",
                "privatekey": "",
                "parent_taskid": 20,
                "hostid": 10084
             }
         ]
       }

Proxy actif

Demande de configuration proxy

La requête proxy config est envoyée par le proxy pour obtenir les données de configuration du proxy. Cette requête est envoyée à chaque ConfigFrequency (paramètre de configuration du proxy) secondes.

|nom|<|<|<|type de valeur|description| |-|-|-|----------|----------|--------------------- -------------------| |proxy→server :|<|<|<|<|<| |request|<|<|<|chaîne|'proxy config'| |host|<|<|<|chaîne|Nom du proxy.| |version|<|<|<|chaîne|Version du proxy (<majeur>.<mineur>.<build>).| |server→proxy :|<|<|<|<|<| |request|<|<|<|chaîne|'proxy config'| |<table>|<|<|<|objet|Un ou plusieurs objets avec des données <table>.| | |fields|<|<|tableau|Tableau de noms de champs.| |^| |-|<|chaîne|Nom du champ.| |^|data|<|<|tableau|Tableau de lignes.| |^| |-|<|array|Tableau de colonnes.| ||| |-|chaîne,nombre|Valeur de colonne dont le type dépend du type de colonne dans le schéma de la base de données.| |proxy→server :|<|<|<|<|<| |response|<|<|<|chaîne|Demande d'informations sur le succès ('success' ou 'failed').|

Exemple:

proxy→server :

{
         "request": "proxy config",
         "host": "Proxy #12",
         "version":"5.4.0"
       }

server→proxy :

{
           "globalmacro":{
               "fields":[
                   "globalmacroid",
                   "macro",
                   "value"
               ],
               "data":[
                   [
                       2,
                       "{$SNMP_COMMUNITY}",
                       "public"
                   ]
               ]
           },
           "hosts":{
               "fields":[
                   "hostid",
                   "host",
                   "status",
                   "ipmi_authtype",
                   "ipmi_privilege",
                   "ipmi_username",
                   "ipmi_password",
                   "name",
                   "tls_connect",
                   "tls_accept",
                   "tls_issuer",
                   "tls_subject",
                   "tls_psk_identity",
                   "tls_psk"
               ],
               "data":[
                   [
                       10001,
                       "Linux",
                       3,
                       -1,
                       2,
                       "",
                       "",
                       "Linux",
                       1,
                       1,
                       "",
                       "",
                       "",
                       ""
                   ],
                   [
                       10050,
                       "Zabbix Agent",
                       3,
                       -1,
                       2,
                       "",
                       "",
                       "Zabbix Agent",
                       1,
                       1,
                       "",
                       "",
                       "",
                       ""
                   ],
                   [
                       10105,
                       "Logger",
                       0,
                       -1,
                       2,
                       "",
                       "",
                       "Logger",
                       1,
                       1,
                       "",
                       "",
                       "",
                       ""
                   ]
               ]
           },
           "interface":{
               "fields":[
                   "interfaceid",
                   "hostid",
                   "main",
                   "type",
                   "useip",
                   "ip",
                   "dns",
                   "port",
                   "bulk"
               ],
               "data":[
                   [
                       2,
                       10105,
                       1,
                       1,
                       1,
                       "127.0.0.1",
                       "",
                       "10050",
                       1
                   ]
               ]
           },
           ...
       }

proxy→server :

{
         "response": "success"
       }
Demande de données proxy

La demande de données proxy est envoyée par proxy pour fournir des données de disponibilité, d'historique, de découverte et d'enregistrement automatique de l'interface hôte. Cette requête est envoyée toutes les DataSenderFrequency (paramètre de configuration du proxy) secondes. Notez que le proxy actif interrogera toujours le serveur Zabbix toutes les secondes pour les tâches de commande à distance (avec une requête proxy data vide).

nom type de valeur description
proxy→serveur :
request chaîne 'proxy data'
host chaîne Nom du proxy.
session chaîne Jeton de session de données.
interface availability tableau (optionnel) Tableau d'objets de données de disponibilité d'interface.
interfaceid nombre Identifiant d'interface.
available nombre Disponibilité des interfaces :

0, INTERFACE_AVAILABLE_UNKNOWN - inconnue
1, INTERFACE_AVAILABLE_TRUE - disponible
2, INTERFACE_AVAILABLE_FALSE - indisponible
error chaîne Message d'erreur d'interface ou chaîne vide.
history data tableau (optionnel) Tableau d'objets de données d'historique.
itemid nombre Identifiant de l'élément.
clock nombre Horodatage de la valeur de l'élément (secondes).
ns nombre Horodatage de la valeur de l'élément (nanosecondes).
value chaîne (optionnel) Valeur de l'élément.
id nombre Identifiant de valeur (compteur croissant, unique dans une session de données).
timestamp nombre (optionnel) Horodatage des éléments de type journal des événements.
source chaîne (optionnel) Valeur source de l'élément du journal des événements.
severity nombre (optionnel) Valeur de sévérité de l'élément du journal des événements.
eventid nombre (optionnel) Valeur de l'ID d'événement de l'élément du journal des événements.
state chaîne (optionnel) État de l'élément :
0, ITEM_STATE_NORMAL
1, ITEM_STATE_NOTSUPPORTED
lastlogsize nombre (optionnel) Taille du dernier journal des éléments de type journal.
mtime nombre (optionnel) Heure de modification des éléments de type journal.
discovery data tableau (optionnel) Tableau d'objets de données de découverte.
clock nombre Horodatage des données de découverte.
druleid nombre Identifiant de règle de découverte.
dcheckid nombre Identifiant de vérification de découverte ou null pour les données de règle de découverte.
type nombre Type de contrôle de découverte :

-1 données de règle de découverte
0, SVC_SSH - Vérification du service SSH
1, SVC_LDAP - Vérification du service LDAP
2, SVC_SMTP - Vérification du service SMTP
3, SVC_FTP - Vérification du service FTP
4, SVC_HTTP - Vérification du service HTTP
5, SVC_POP - Vérification du service POP
6, SVC_NNTP - Vérification du service NNTP
7, SVC_IMAP - Vérification du service IMAP
8, SVC_TCP - Vérification de la disponibilité du port TCP
9, SVC_AGENT - Zabbix agent
10, SVC_SNMPv1 - SNMPv1 agent
11, SVC_SNMPv2 - SNMPv2 agent
12, SVC_ICMPPING - Ping ICMP
13, SVC_SNMPv3 - Agent SNMPv3
14, SVC_HTTPS - Vérification du service HTTPS
15, SVC_TELNET - Vérification de la disponibilité Telnet
ip chaîne Adresse IP de l'hôte.
dns chaîne Nom DNS de l'hôte.
port nombre (optionnel) Numéro de port de service.
key_ chaîne (optionnel) Clé d'élément pour le contrôle de découverte de type 9 SVC_AGENT
value chaîne (optionnel) Valeur reçue du service, peut être vide pour la plupart des services.
status nombre (optionnel) Statut du service :

0, DOBJECT_STATUS_UP - Service démarré
**1* , DOBJECT_STATUS_DOWN* - Service arrêté
autoregistration tableau (optionnel) Tableau d'objets de données d'auto-enregistrement.
clock nombre Horodatage des données d'enregistrement automatique.
host chaîne Nom d'hôte.
ip chaîne (optionnel) Adresse IP de l'hôte.
dns chaîne (optionnel) Nom DNS résolu à partir de l'adresse IP.
port chaîne (optionnel) Port de l'hôte.
host_metadata chaîne (optionnel) Métadonnées de l'hôte envoyées par l'agent (basées sur le paramètre de configuration de l'agent HostMetadata ou HostMetadataItem).
tasks tableau (optionnel) Tableau de tâches.
type nombre Type de tâche :

0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - résultat de la commande à distance
status nombre Statut d'exécution de la commande à distance :

0, ZBX_TM_REMOTE_COMMAND_COMPLETED - commande à distance terminée avec succès
1, ZBX_TM_REMOTE_COMMAND_FAILED - la commande à distance a échoué
error chaîne (optionnel) Message d'erreur.
parent_taskid nombre ID de la tâche parent.
more nombre (optionnel) 1 - il y a plus de données d'historique à envoyer.
clock nombre (optionnel) Horodatage du transfert de données (secondes).
ns nombre (optionnel) Horodatage du transfert de données (nanosecondes).
version chaîne Version du Proxy(<major>.<minor>.<build>).
serveur→proxy :
response chaîne Demander des informations sur le succès ('success' ou 'failed').
upload chaîne Contrôle de téléchargement des données historiques (historique, enregistrement automatique, disponibilité de l'hôte, découverte du réseau) :
activé - fonctionnement normal
désactivé - le serveur n'accepte pas les données (peut-être en raison d'un dépassement de la limite du cache interne )
tasks tableau (optionnel) Tableau de tâches.
type nombre Type de tâche :

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - commande à distance
clock nombre Heure de création de la tâche.
ttl nombre Temps en secondes après lequel la tâche expire.
commandtype nombre Type de commande à distance :

0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - utiliser un script personnalisé
1, ZBX_SCRIPT_TYPE_IPMI - use IPMI
2, ZBX_SCRIPT_TYPE_SSH - utiliser SSH
3, ZBX_SCRIPT_TYPE_TELNET - utiliser Telnet
4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - utiliser le script global (actuellement équivalent fonctionnellement au script personnalisé)
command chaîne Commande distante à exécuter.
execute_on nombre Cible d'exécution pour les scripts personnalisés :

0, ZBX_SCRIPT_EXECUTE_ON_AGENT - exécuter le script sur l'agent
1, ZBX_SCRIPT_EXECUTE_ON_SERVER - exécuter le script sur le serveur
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - exécuter le script sur le proxy
port nombre (optionnel) Port for Telnet and SSH commands.
authtype nombre (optionnel) Type d'authentification pour les commandes SSH.
username chaîne (optionnel) Nom d'utilisateur pour les commandes Telnet et SSH.
password chaîne (optionnel) Mot de passe pour les commandes Telnet et SSH.
publickey chaîne (optionnel) Clé publique pour les commandes SSH.
privatekey chaîne (optionnel) Clé privée pour les commandes SSH.
parent_taskid nombre ID de la tâche parent.
hostid nombre ID de l'hôte cible.

Exemple :

proxy→serveur :

{
           "request": "proxy data",
           "host": "Proxy #12", 
           "session": "12345678901234567890123456789012",
           "interface availability": [
               {
                   "interfaceid": 1,
                   "available": 1,
                   "error": ""
           },
               {
                   "interfaceid": 2,
                   "available": 2,
                   "error": "Get value from agent failed: cannot connect to [[127.0.0.1]:10049]: [111] Connection refused"
           },
               {
                   "interfaceid": 3,
                   "available": 1,
                   "error": ""
           },
               {
                   "interfaceid": 4,
                   "available": 1,
                   "error": ""
           }
           ],
           "history data":[
               {
                   "itemid":"12345",
                   "clock":1478609647,
                   "ns":332510044,
                   "value":"52956612",
                   "id": 1
               },
               {
                   "itemid":"12346",
                   "clock":1478609647,
                   "ns":330690279,
                   "state":1,
                   "value":"Cannot find information for this network interface in /proc/net/dev.",
                   "id": 2
               }
           ],
           "discovery data":[
               {
                   "clock":1478608764,
                   "drule":2,
                   "dcheck":3,
                   "type":12,
                   "ip":"10.3.0.10",
                   "dns":"vdebian",
                   "status":1
               },
               {
                   "clock":1478608764,
                   "drule":2,
                   "dcheck":null,
                   "type":-1,
                   "ip":"10.3.0.10",
                   "dns":"vdebian",
                   "status":1
               }
           ],
           "auto registration":[
               {
                   "clock":1478608371,
                   "host":"Logger1",
                   "ip":"10.3.0.1",
                   "dns":"localhost",
                   "port":"10050"
               },
               {
                   "clock":1478608381,
                   "host":"Logger2",
                   "ip":"10.3.0.2",
                   "dns":"localhost",
                   "port":"10050"
               }
           ],
           "tasks":[
               {
                   "type": 2,
                   "clock":1478608371,
                   "ttl": 600,
                   "commandtype": 2,
                   "command": "restart_service1.sh",
                   "execute_on": 2,
                   "port": 80,
                   "authtype": 0,
                   "username": "userA",
                   "password": "password1",
                   "publickey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe",
                   "privatekey": "lsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5QCqGKukO1De7zhd",
                   "parent_taskid": 10,
                   "hostid": 10070
               },
               {
                   "type": 2,
                   "clock":1478608381,
                   "ttl": 600,
                   "commandtype": 1,
                   "command": "restart_service2.sh",
                   "execute_on": 0,
                   "authtype": 0,
                   "username": "",
                   "password": "",
                   "publickey": "",
                   "privatekey": "",
                   "parent_taskid": 20,
                   "hostid": 10084
               }
           ],
           "tasks":[
               {
                   "type": 0,
                   "status": 0,
                   "parent_taskid": 10
               },
               {
                   "type": 0,
                   "status": 1,
                   "error": "No permissions to execute task.",
                   "parent_taskid": 20
               }
           ], 
           "version":"5.4.0"
       }

serveur→proxy :

{
         "response": "success",
         "upload": "enabled",
         "tasks":[
             {
                "type": 1,
                "clock": 1478608371,
                "ttl": 600,
                "commandtype": 2,
                "command": "restart_service1.sh",
                "execute_on": 2,
                "port": 80,
                "authtype": 0,
                "username": "userA",
                "password": "password1",
                "publickey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe",
                "privatekey": "lsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5QCqGKukO1De7zhd",
                "parent_taskid": 10,
                "hostid": 10070
             },
             {
                "type": 1,
                "clock": 1478608381,
                "ttl": 600,
                "commandtype": 1,
                "command": "restart_service2.sh",
                "execute_on": 0,
                "authtype": 0,
                "username": "",
                "password": "",
                "publickey": "",
                "privatekey": "",
                "parent_taskid": 20,
                "hostid": 10084
             }
         ]
       }