1 Protocol de bescanvi de dades servidor-proxy

Vista general

El bescanvi de dades servidor - proxy es basa en el format JSON.

Els missatges de petició de resposta han de començar amb una capçalera i longitud de les dades.

Proxy passiu

Petició de configuració del proxy

La petició proxy config s'envia per el servidor per proveir les dades de configuració del proxy. Aquesta petició s'envia cada ProxyConfigFrequency (paràmetre de configuració del servidor) segons.

nom tipus de valor descripció
server→proxy:
request string 'proxy config'
<table> object Un o més objectes amb dades <taula>.
fields array Matriu de noms de camps.
- string Nom del camp.
data array Matriu de fileres.
- array Matriu de columnes.
- string,number Valor de columna amb tipus en funció del tipus de columna a l'esquema de la base de dades.
proxy→server:
response string Petició d'informació ('èxit' o 'error').
version string Versió del proxy (<major>.<minor>.<build>).

Exemple:

server→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→server:

{
  "response": "success",
  "version": "6.0.0"
}
Petició del proxy

La petició de proxy data s'empra per obtindre dades de disponibilitat de la interfície d'equip, dades històriques, de descobriment i registre automàtic del proxy. Aquesta petició s'envia cada ProxyDataFrequency segons (paràmetre de configuració del servidor).

nom tipus de valor descripció
server→proxy:
sol·licitud string 'informació del proxy'
proxy→server:
session string Fitxa de sessió de dades.
interface availability array (opcional) Matriu d'objectes de dades de disponibilitat de la interfície.
interfaceid number Identificador de la interfície.
available number Disponibilitat de la interfície:

0, INTERFACE_AVAILABLE\UNKNOWN - desconegut
1, INTERFACE_AVAILABLE _TRUE - disponible
2, INTERFACE_AVAILABLE_FALSE - no disponible
error string Missatge d'error de la interfície o cadena buida.
history data array (opcional) Matriu d'objectes de dades de l'historial.
itemid number Identificador de l'element.
clock number Marca de temps del valor de l'element (segons).
ns number Marca de temps del valor de l'element (nanosegons).
value string (opcional) Valor de l'element.
id number Identificador del valor (comptador ascendent, únic en una sessió de dades).
timestamp number (opcional) Marca de temps dels elements del tipus de registre.
source string (opcional) Valor font de l'element del registre d'esdeveniments.
severity number (opcional) Valor de gravetat de l'element del registre d'esdeveniments.
eventid number (opcional) Valor d'event de l'element del registre d'esdeveniments.
status string (opcional) Estat de l'element:
0, ITEM_STATE_NORMAL
1, ITEM_STATE _NO SUPORT
lastlogsize number (opcional) Mida del darrer registre dels elements del tipus de registre.
mtime number (opcional) Hora de modificació dels elements del tipus de registre.
discovery data array (opcional) Matriu d'objectes de dades de descoberta.
clock number Marca de temps de les dades de descoberta.
druleid number Identificador de la regla de descoberta.
dcheckid number Identificador de comprovació de descoberta o res per a les dades de la regla de descoberta.
type number Tipus de comprovació de descoberta:

-1 dades de la regla de descoberta
0, SVC_SSH - Comprovació del servei SSH
1, SVC_LDAP - Comprovació del servei LDAP
2, SVC_SMTP - Comprovació del servei SMTP
3, SVC_FTP - Comprovació del servei FTP
4, SVC_HTTP - Comprovació del servei HTTP
5, SVC_POP - Comprovació del servei POP
6, SVC_NNTP - Comprovació del servei NNTP
7, SVC_IMAP - Comprovació del servei IMAP
8, SVC_TCP - Comprovació de la disponibilitat del 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 - Comprovació del servei HTTPS<br >15*, SVC_TELNET* - Comprovació de disponibilitat de Telnet
ip string Adreça IP de l'equip.
dns string Nom DNS de l'equip.
port number (opcional) Nombre de port de servei.
key_ string (opcional) Clau d'element per a la comprovació de descoberta de tipus 9 SVC_AGENT
value string (opcional) Valor rebut del servei, pot estar buit per a la majoria de serveis.
status number (opcional) Estat del servei:

0, DOBJECT_STATUS_UP - Servei UP
*1 , DOBJECT_STATUS_DOWN* - Servei DOWN
auto registration array (opcional) Matriu d'objectes de dades de registre automàtic.
clock number Marca de temps de dades de registre automàtic.
host string Nom de l'equip.
ip string (opcional) Adreça IP de l'equip.
dns string (opcional) S'ha resolt el nom DNS des de l'adreça IP.
port string (opcional) Port de l'equip.
host_metadata string (opcional) Metadades de l'equip enviades per l'agent (basades en el paràmetre de configuració de l'agent HostMetadata o HostMetadataItem).
tasks array (opcional) Matriu de tasques.
type number Tipus de tasca:

0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - resultat de la comanda remota
status number Estat d'execució de l'ordre remota:

0, ZBX_TM_REMOTE_COMMAND_COMPLETED: l'ordre remota s'ha completat correctament
1, ZBX_TM_REMOTE_COMMAND_FAILED - l'ordre remota ha fallat
error string (opcional) Missatge d'error.
parent_taskid number ID de la tasca principal.
more number (opcional) 1 - hi ha més dades de l'historial per enviar.
clock number (opcional) Marca de temps de transferència de dades (segons).
ns number (opcional) Marca de temps de transferència de dades (nanosegons).
version string Versió del proxy (<major>.<menor>.<build>).
server→proxy:
response string Demanar informació sobre l'èxit ('èxit' o 'error').
task array (opcional) Matriu de tasques.
type number Tipus de tasca:

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - comanda remota
clock number Hora de creació de la tasca.
ttl number Temps en segons després del qual caduca la tasca.
commandtype number Tipus de comanda remota:

0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT: empreu un script personalitzat
1, ZBX_SCRIPT_TYPE_IPMI - emprar IPMI
2, ZBX_SCRIPT_TYPE_SSH - emprar SSH
3, ZBX_SCRIPT _TYPE_TELNET: empra Telnet
4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT: empra un script lobal (actualment equivalent funcionalment a script personalitzat)
command string Ordre remota per executar.
execute_on number Destí d'execució per a scripts personalitzats:

0, ZBX_SCRIPT_EXECUTE_ON_AGENT - executa l'script a l'agent< br>1, ZBX_SCRIPT_EXECUTE_ON_SERVER - executa l'script al servidor
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - executa l'script al proxy
port number (opcional) Port per a ordres Telnet i SSH.
authtype number (opcional) Tipus d'autenticació per a ordres SSH.
username string (opcional) Nom d'usuari per a ordres Telnet i SSH.
password string (opcional) Mot de pas per a ordres Telnet i SSH.
publickey string (opcional) Clau pública per a ordres SSH.
privatekey string (opcional) Clau privada per a ordres SSH.
parent_taskid number ID de la tasca principal.
hostid number ID de l'equip objectiu.

Exemple:

server→proxy:

{
  "request": "proxy data"
}

proxy→server:

{
    "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"
}

server→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 actiu

Petició de heartbeat proxy

La petició proxy heartbeat s'envia per proxy per assenyala que el proxy s'executa. Aquesta petició s'envia cada HeartbeatFrequency (paràmetre de configuració del proxy) segons.

nom vtipus de valor descripció
proxy→servidor:
request string 'proxy heartbeat'
host string Nom del proxy.
version string Versió del proxy (<major>.<minor>.<build>).
servidor→proxy:
response string Informació sobre el resultat de la petició ('success' o 'failed').

proxy→servidor:

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

servidor→proxy:

{
  "response": "success"
}
Petició de configuració proxy

La petició proxy config és enviada per el proxy per obtindre les dades de configuració del proxy. Aquesta petició s'envia cada ConfigFrequency segons (paràmetre de confuguració del proxy).

nom tipus de valor descripció
proxy→server :
request string 'proxy config'
host string Nom del proxy.
version string Versió del proxy (<major>.<menor>.<build>).
server→proxy :
request string 'proxy config'
<table> object Un o diversos objectes amb les dade <taula>.
fields array Taula de noms dels camps.
- string Nom del camp.
data array Taula de línies.
- array Taula de columnes.
- string,number Valor de columna d'on depèn el tipus del tipus de columna a l'esquema de la base de dades.
proxy→server :
response string Petició d'informació sobre l'èxit ('èxit' o 'fallit').

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"
}
Petició de dades del proxy

Les peticions proxy data s'envien per el proxy per proporcionar dades de disponibilitat, històric, descoberta i autoregistre de la interfície de l'equip. Aquesta patició s'envia cada DataSenderFrequency segons (paràmetre de configuració del proxy). Veieu que el proxy actiu anirà informant al servidor Zabbix cada segon de tasques de comandes remotes (amb una petició proxy data buida).

nom tipus de valor descripció
proxy→server:
request string 'proxy data'
host string Nom del proxy.
session string Fitxa de sessió de dades.
interface availability array (opcional) Matriu d'objectes de dades de disponibilitat de la interfície.
interfaceid number Identificador de la interfície.
available number Disponibilitat de la interfície:

0, INTERFACE_AVAILABLE_UNKNOWN - desconegut
1, INTERFACE_AVAILABLE _TRUE - disponible
2, INTERFACE_AVAILABLE_FALSE - no disponible
error string Missatge d'error de la interfície o cadena buida.
history data array (opcional) Matriu d'objectes de dades de l'historial.
itemid number Identificador de l'element.
clock number Marca de temps del valor de l'element (segons).
ns number Marca de temps del valor de l'element (nanosegons).
value string (opcional) Valor de l'element.
id number Identificador del valor (comptador ascendent, únic en una sessió de dades).
timestamp number (opcional) Marca de temps dels elements del tipus de registre.
source string (opcional) Valor font de l'element del registre d'esdeveniments.
severity number (opcional) Valor de gravetat de l'element del registre d'esdeveniments.
eventid number (opcional) Valor d'event de l'element del registre d'esdeveniments.
status string (opcional) Estat de l'element:
0, ITEM_STATE_NORMAL
1, ITEM_STATE _NO SUPORT
lastlogsize number (opcional) Mida del darrer registre dels elements del tipus de registre.
mtime number (opcional) Hora de modificació dels elements del tipus de registre.
discovery data array (opcional) Matriu d'objectes de dades de descoberta.
clock number Marca de temps de les dades de descoberta.
druleid number Identificador de la regla de descoberta.
dcheckid number Identificador de comprovació de descoberta o nul per a les dades de la regla de descoberta.
type number Tipus de comprovació de descoberta:

-1 dades de la regla de descoberta
0, SVC_SSH - Comprovació del servei SSH
1, SVC_LDAP - Comprovació del servei LDAP
2, SVC_SMTP - Comprovació del servei SMTP
3, SVC_FTP - Comprovació del servei FTP
4, SVC_HTTP - Comprovació del servei HTTP
5, SVC_POP - Comprovació del servei POP
6, SVC_NNTP - Comprovació del servei NNTP
7, SVC_IMAP - Comprovació del servei IMAP
8, SVC_TCP - Comprovació de la disponibilitat del 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 - Comprovació del servei HTTPS<br >15*, SVC_TELNET* - Comprovació de disponibilitat de Telnet
ip string Adreça IP de l'equip.
dns string Nom DNS de l'equip.
port number (opcional) Número de port de servei.
key_ string (opcional) Clau d'element per a la comprovació de descoberta de tipus 9 SVC_AGENT
value string (opcional) Valor rebut del servei, pot estar buit per a la majoria de serveis.
status number (opcional) Estat del servei:

0, DOBJECT_STATUS_UP - Servei UP
*1 , DOBJECT_STATUS_DOWN* - Servei DOWN
autoregistration array (opcional) Matriu d'objectes de dades d'autoregistre.
clock number Marca de temps de dades de registre automàtic.
host string Nom de l'equip.
ip string (opcional) Adreça IP de l'equip.
dns string (opcional) S'ha resolt el nom DNS des de l'adreça IP.
port string (opcional) Port equip.
host_metadata string (opcional) Metadades de l'equip enviades per l'agent (segons el paràmetre de configuració de l'agent HostMetadata o HostMetadataItem).
tasks array (opcional) Matriu de tasques.
type number Tipus de tasca:

0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - resultat de la comanda remota
status number Estat d'execució de l'ordre remot:

0, ZBX_TM_REMOTE_COMMAND_COMPLETED: l'ordre remota s'ha completat correctament
1, ZBX_TM_REMOTE_COMMAND_FAILED - l'ordre remota ha fallat
error string (opcional) Missatge d'error.
parent_taskid number ID de la tasca principal.
more number (opcional) 1 - hi ha més dades de l'historial per enviar.
clock number (opcional) Marca de temps de transferència de dades (segons).
ns number (opcional) Marca de temps de transferència de dades (nanosegons).
version string Versió del proxy (<major>.<menor>.<build>).
servidor→proxy:
response string Demanar informació sobre l'èxit ('èxit' o 'error').
upload string Control de càrrega de dades històriques (historial, registre automàtic, disponibilitat de l'equip, descoberta de xarxa).

Valors possibles:
activat - funcionament normal
desactivat: el servidor no admet dades (possiblement a causa del límit de la memòria cau interna)
tasks array (opcional) Matriu de tasques.
type number Tipus de tasca:

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - comanda remota
clock number Hora de creació de la tasca.
ttl number Temps en segons després del qual caduca la tasca.
commandtype number Tipus de comanda remota:

0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT: utilitzeu un script personalitzat
1, ZBX_SCRIPT_TIP_IPMI: utilitza IPMI
2, ZBX_SCRIPT_TYPE_SSH: utilitza SSH
3, ZBX_SCRIPT_TYPE_TELNET: utilitza Telnet
4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - utilitza script global (actualment equival a un script personalitzat)
ordre string Ordre remota per executar.
execute_on number Destí d'execució per a scripts personalitzats:

0, ZBX_SCRIPT_EXECUTE_ON_AGENT - executa l'script a l'agent< br>1, ZBX_SCRIPT_EXECUTE_ON_SERVER - executa l'script al servidor
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - executa l'script al proxy
port number (opcional) Port per a ordres Telnet i SSH.
authtype number (opcional) Tipus d'autenticació per a ordres SSH.
username string (opcional) Nom d'usuari per a ordres Telnet i SSH.
password string (opcional) Mot de pas per a ordres Telnet i SSH.
publickey string (opcional) Clau pública per a ordres SSH.
privatekey string (opcional) Clau privada per a ordres SSH.
parent_taskid number ID de la tasca principal.
hostid number ID de l'equip objectiu.

Exemple:

proxy→server:

{
    "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"
}

server→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
      }
  ]
}