Обмен данными сервер - прокси основывается на JSON формате.
Сообщения запроса и ответа должны начинаться с длины заголовка и данных.
Запрос proxy config отправляется сервером, чтобы обеспечить прокси данными конфигурации. Этот запрос отправляется каждые ProxyConfigFrequency (параметр конфигурации сервера) секунд.
| имя | тип значения | описание | |||
|---|---|---|---|---|---|
| сервер→прокси: | |||||
| request | строка | 'proxy config' | |||
| <таблица> | объект | один или несколько объектов с <таблица> данными | |||
| поля | массив | массив имен полей | |||
| - | строка | имя поля | |||
| данные | массив | массив строк | |||
| - | массив | массив колонок | |||
| - | строка,число | значение колонки с типом, зависящим от типа колонки в схеме базы данных | |||
| прокси→сервер: | |||||
| response | строка | информация об успешности запроса ('success' или 'failed') | |||
| version | строка | версия прокси (<мажорная>.<минорная>.<номер сборки>) | |||
Пример:
сервер→прокси:
{
           "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,
                       "Template OS Linux",
                       3,
                       -1,
                       2,
                       "",
                       "",
                       "Template OS Linux",
                       1,
                       1,
                       "",
                       "",
                       "",
                       ""
                   ],
                   [
                       10050,
                       "Template App Zabbix Agent",
                       3,
                       -1,
                       2,
                       "",
                       "",
                       "Template App 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 data используется для получения данных доступности узлов сети, истории, обнаружения и авторегистрации с прокси. Этот запрос отправляется каждые ProxyDataFrequency (параметр конфигурации сервера) секунд.
| имя | тип значения | описание | |
|---|---|---|---|
| сервер→прокси: | |||
| request | строка | 'proxy data' | |
| прокси→сервер: | |||
| session | строка | Токен сеанса передачи данных | |
| host availability | массив | (опционально) массив объектов с данными о доступности узлов сети | |
| hostid | число | идентификатор узла сети | |
| available | число | доступность Zabbix агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен  | 
       |
| error | строка | сообщение об ошибке Zabbix агента или пустая строка | |
| snmp_available | число | доступность SNMP агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен  | 
       |
| snmp_error | строка | сообщение об ошибке SNMP агента или пустая строка | |
| ipmi_available | число | доступность IPMI агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен  | 
       |
| ipmi_error | строка | сообщение об ошибке IPMI агента или пустая строка | |
| jmx_available | число | доступность JMX агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен  | 
       |
| jmx_error | строка | сообщение об ошибке JMX агента или пустая строка | |
| history data | массив | (опционально) массив объектов с данными истории | |
| itemid | число | идентификатор элемента данных | |
| clock | число | штамп времени значения элемента данных (секунды) | |
| ns | число | штамп времени значения элемента данных (наносекунды) | |
| value | строка | (опционально) значение элемента данных | |
| id | число | идентификатор числа (возрастающий счётчик, уникальный в пределах одного сеанса передачи данных) | |
| timestamp | число | (опционально) штамп времени у элементов данных с типом журнал (лог) | |
| source | строка | (опционально) значение источника элемента данных журнала событий | |
| severity | число | (опционально) значение важности элемента данных журнала событий | |
| eventid | число | (опционально) значение eventid элемента данных журнала событий | |
| state | строка | (опционально) статус элемента данных 0, ITEM_STATE_NORMAL 1, ITEM_STATE_NOTSUPPORTED  | 
       |
| lastlogsize | число | (опционально) последний размер журнала у элементов данных с типом журнал (лог) | |
| mtime | число | (опционально) время модификации журнала у элементов данных с типом журнал (лог) | |
| discovery data | массив | (опционально) массив объектов с данными обнаружения | |
| clock | число | штамп времени данных обнаружения | |
| druleid | число | идентификатор правила обнаружения | |
| dcheckid | число | идентификатор проверки обнаружения или null для данных правила обнаружения | |
| type | число | тип проверки обнаружения: -1 данные правила обнаружения 0, SVC_SSH - проверка SSH сервиса 1, SVC_LDAP - проверка LDAP сервиса 2, SVC_SMTP - проверка SMTP сервиса 3, SVC_FTP - проверка FTP сервиса 4, SVC_HTTP - проверка HTTP сервиса 5, SVC_POP - проверка POP сервиса 6, SVC_NNTP - проверка NNTP сервиса 7, SVC_IMAP - проверка IMAP сервиса 8, SVC_TCP - проверка доступности TCP порта 9, SVC_AGENT - Zabbix агент 10, SVC_SNMPv1 - SNMPv1 агент 11, SVC_SNMPv2 - SNMPv2 агент 12, SVC_ICMPPING - ICMP пинг 13, SVC_SNMPv3 - SNMPv3 агент 14, SVC_HTTPS - проверка HTTPS сервиса 15, SVC_TELNET - проверка доступности Telnet  | 
       |
| ip | строка | IP адрес хоста | |
| dns | строка | DNS имя хоста | |
| port | число | (опционально) номер порта сервиса | |
| key_ | строка | (опционально) ключ элемента данных для проверки обнаружения с типом 9 SVC_AGENT | |
| value | строка | (опционально) полученное значение от сервиса, может быть пустым по большинству сервисов | |
| status | число | (опционально) состояние сервиса: 0, DOBJECT_STATUS_UP - Сервис ДОСТУПЕН 1, DOBJECT_STATUS_DOWN - Сервис НЕДОСТУПЕН  | 
       |
| auto registration | массив | (опционально) массив объектов с данными авторегистрации | |
| clock | число | штамп времени данных авторегистрации | |
| host | строка | имя хоста | |
| ip | строка | (опционально) IP адрес хоста | |
| dns | строка | (опционально) разрешенный DNS имя с IP адреса | |
| port | строка | (опционально) порт хоста | |
| host_metadata | строка | (опционально) метаданные хоста, которые отправил агент (на основе параметров конфигурации агента HostMetadata или HostMetadataItem) | |
| tasks | массив | (опционально) массив задач | |
| type | число | тип задачи: 0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - результат удаленной команды  | 
       |
| status | число | состояние выполнения удаленной команды: 0, ZBX_TM_REMOTE_COMMAND_COMPLETED - удаленная команда завершена успешно 1, ZBX_TM_REMOTE_COMMAND_FAILED - удаленная команда завершилась с ошибкой  | 
       |
| error | строка | (опционально) сообщение об ошибке | |
| parent_taskid | число | id родительской задачи | |
| more | число | (опционально) 1 - имеются еще данные истории к отправке | |
| clock | число | (опционально) штамп времени передачи данных (секунды) | |
| ns | число | (опционально) штамп времени передачи данных (наносекунды) | |
| version | строка | версия прокси (<мажорная>.<минорная>.<номер сборки>) | |
| сервер→прокси: | |||
| response | строка | информация об успешности запроса ('success' или 'failed') | |
| tasks | массив | (опционально) array of tasks | |
| type | число | тип задачи: 1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - удаленная команда  | 
       |
| clock | число | время создания задачи | |
| ttl | число | время в секундах после которого срок задачи истекает | |
| commandtype | число | тип удаленной команды: 0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - использование пользовательского скрипта 1, ZBX_SCRIPT_TYPE_IPMI - использование IPMI 2, ZBX_SCRIPT_TYPE_SSH - использование SSH 3, ZBX_SCRIPT_TYPE_TELNET - использование Telnet 4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - использование глобального скрипта (в настоящее время возможности эквивалентны пользовательской команде)  | 
       |
| command | строка | выполняемая удаленная команда | |
| execute_on | число | цель выполнения для пользовательских скриптов: 0, ZBX_SCRIPT_EXECUTE_ON_AGENT - выполнение скрипта на стороне агента 1, ZBX_SCRIPT_EXECUTE_ON_SERVER - выполнение скрипта на стороне сервера 2, ZBX_SCRIPT_EXECUTE_ON_PROXY - выполнение скрипта на стороне прокси  | 
       |
| port | число | (опционально) порт для telnet и ssh команд | |
| authtype | число | (опционально) тип аутентификации для ssh команд | |
| username | строка | (опционально) имя пользователя для telnet и ssh команд | |
| password | строка | (опционально) пароль для telnet и ssh команд | |
| publickey | строка | (опционально) публичный ключ для ssh команд | |
| privatekey | строка | (опционально) приватный ключ для ssh команд | |
| parent_taskid | число | id родительской задачи | |
| hostid | число | hostid цели | |
Пример:
сервер→прокси:
прокси→сервер:
{
           "session": "12345678901234567890123456789012"
           "host availability":[
               {
                   "hostid":10106,
                   "available":1,
                   "error":"",
                   "snmp_available":0,
                   "snmp_error":"",
                   "ipmi_available":0,
                   "ipmi_error":"",
                   "jmx_available":0,
                   "jmx_error":""
               },
               {
                   "hostid":10107,
                   "available":1,
                   "error":"",
                   "snmp_available":0,
                   "snmp_error":"",
                   "ipmi_available":0,
                   "ipmi_error":"",
                   "jmx_available":0,
                   "jmx_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":"3.4.0"
       }сервер→прокси:
{
         "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 heartbeat отправляется прокси, чтобы сообщить, что прокси запущен. Этот запрос отправляется каждые HeartbeatFrequency (параметр конфигурации прокси) секунд.
| имя | тип значения | описание | |
|---|---|---|---|
| прокси→сервер: | |||
| request | строка | 'proxy heartbeat' | |
| host | строка | имя прокси | |
| version | строка | версия прокси (<мажорная>.<минорная>.<номер сборки>) | |
| сервер→прокси: | |||
| response | строка | информация об успешности запроса ('success' или 'failed') | |
прокси→сервер:
сервер→прокси:
Запрос proxy config отправляется прокси, чтобы получить данные конфигурации прокси. Запрос отправляется каждые ConfigFrequency (параметр конфигурации прокси) секунд.
| имя | тип значения | описание | |||
|---|---|---|---|---|---|
| прокси→сервер: | |||||
| request | строка | 'proxy config' | |||
| host | строка | имя прокси | |||
| version | строка | версия прокси (<мажорная>.<минорная>.<номер сборки>) | |||
| сервер→прокси: | |||||
| request | строка | 'proxy config' | |||
| <table> | объект | один или несколько объектов с <таблица> данными | |||
| fields | массив | массив имен полей | |||
| - | строка | имя поля | |||
| data | массив | массив строк | |||
| - | массив | массив колонок | |||
| - | строка,число | значение колонки с типом, зависящим от типа колонки в схеме базы данных | |||
| прокси→сервер: | |||||
| response | строка | информация об успешности запроса ('success' или 'failed') | |||
Пример:
прокси→сервер:
сервер→прокси:
{
           "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,
                       "Template OS Linux",
                       3,
                       -1,
                       2,
                       "",
                       "",
                       "Template OS Linux",
                       1,
                       1,
                       "",
                       "",
                       "",
                       ""
                   ],
                   [
                       10050,
                       "Template App Zabbix Agent",
                       3,
                       -1,
                       2,
                       "",
                       "",
                       "Template App 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 data отправляется прокси, чтобы предоставить данные доступности узлов сети, истории, обнаружения и авторегистрации. Этот запрос отправляется каждые DataSenderFrequency (параметр конфигурации прокси) секунд.
| имя | тип значения | описание | |
|---|---|---|---|
| прокси→сервер: | |||
| request | строка | 'proxy data' | |
| host | строка | имя прокси | |
| session | строка | Токен сеанса передачи данных | |
| host availability | массив | (опционально) массив объектов с данными о доступности узлов сети | |
| hostid | число | идентификатор узла сети | |
| available | число | доступность Zabbix агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен  | 
       |
| error | строка | сообщение об ошибке Zabbix агента или пустая строка | |
| snmp_available | число | доступность SNMP агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен  | 
       |
| snmp_error | строка | сообщение об ошибке SNMP агента или пустая строка | |
| ipmi_available | число | доступность IPMI агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен  | 
       |
| ipmi_error | строка | сообщение об ошибке IPMI агента или пустая строка | |
| jmx_available | число | доступность JMX агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен  | 
       |
| jmx_error | строка | сообщение об ошибке JMX агента или пустая строка | |
| history data | массив | (опционально) массив объектов с данными истории | |
| itemid | число | идентификатор элемента данных | |
| clock | число | штамп времени значения элемента данных (секунды) | |
| ns | число | штамп времени значения элемента данных (наносекунды) | |
| value | строка | (опционально) значение элемента данных | |
| id | число | идентификатор числа (возрастающий счётчик, уникальный в пределах одного сеанса передачи данных) | |
| timestamp | число | (опционально) штамп времени у элементов данных с типом журнал (лог) | |
| source | строка | (опционально) значение источника элемента данных журнала событий | |
| severity | число | (опционально) значение важности элемента данных журнала событий | |
| eventid | число | (опционально) значение eventid элемента данных журнала событий | |
| state | строка | (опционально) статус элемента данных 0, ITEM_STATE_NORMAL 1, ITEM_STATE_NOTSUPPORTED  | 
       |
| lastlogsize | число | (опционально) последний размер журнала у элементов данных с типом журнал (лог) | |
| mtime | число | (опционально) время модификации журнала у элементов данных с типом журнал (лог) | |
| discovery data | массив | (опционально) массив объектов с данными обнаружения | |
| clock | число | штамп времени данных обнаружения | |
| druleid | число | идентификатор правила обнаружения | |
| dcheckid | число | идентификатор проверки обнаружения или null для данных правила обнаружения | |
| type | число | тип проверки обнаружения: -1 данные правила обнаружения 0, SVC_SSH - проверка SSH сервиса 1, SVC_LDAP - проверка LDAP сервиса 2, SVC_SMTP - проверка SMTP сервиса 3, SVC_FTP - проверка FTP сервиса 4, SVC_HTTP - проверка HTTP сервиса 5, SVC_POP - проверка POP сервиса 6, SVC_NNTP - проверка NNTP сервиса 7, SVC_IMAP - проверка IMAP сервиса 8, SVC_TCP - проверка доступности TCP порта 9, SVC_AGENT - Zabbix агент 10, SVC_SNMPv1 - SNMPv1 агент 11, SVC_SNMPv2 - SNMPv2 агент 12, SVC_ICMPPING - ICMP пинг 13, SVC_SNMPv3 - SNMPv3 агент 14, SVC_HTTPS - проверка HTTPS сервиса 15, SVC_TELNET - проверка доступности Telnet  | 
       |
| ip | строка | IP адрес хоста | |
| dns | строка | DNS имя хоста | |
| port | число | (опционально) номер порта сервиса | |
| key_ | строка | (опционально) ключ элемента данных для проверки обнаружения с типом 9 SVC_AGENT | |
| value | строка | (опционально) полученное значение от сервиса, может быть пустым по большинству сервисов | |
| status | число | (опционально) состояние сервиса: 0, DOBJECT_STATUS_UP - Сервис ДОСТУПЕН 1, DOBJECT_STATUS_DOWN - Сервис НЕДОСТУПЕН  | 
       |
| auto registration | массив | (опционально) массив объектов с данными авторегистрации | |
| clock | число | штамп времени данных авторегистрации | |
| host | строка | имя хоста | |
| ip | строка | (опционально) IP адрес хоста | |
| dns | строка | (опционально) разрешенный DNS имя с IP адреса | |
| port | строка | (опционально) порт хоста | |
| host_metadata | строка | (опционально) метаданные хоста, которые отправил агент (на основе параметров конфигурации агента HostMetadata или HostMetadataItem) | |
| tasks | массив | (опционально) массив задач | |
| type | число | тип задачи: 0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - результат удаленной команды  | 
       |
| status | число | состояние выполнения удаленной команды: 0, ZBX_TM_REMOTE_COMMAND_COMPLETED - удаленная команда завершена успешно 1, ZBX_TM_REMOTE_COMMAND_FAILED - удаленная команда завершилась с ошибкой  | 
       |
| error | строка | (опционально) сообщение об ошибке | |
| parent_taskid | число | id родительской задачи | |
| more | число | (опционально) 1 - имеются еще данные истории к отправке | |
| clock | число | (опционально) штамп времени передачи данных (секунды) | |
| ns | число | (опционально) штамп времени передачи данных (наносекунды) | |
| version | строка | версия прокси (<мажорная>.<минорная>.<номер сборки>) | |
| сервер→прокси: | |||
| response | строка | информация об успешности запроса ('success' или 'failed') | |
| tasks | массив | (опционально) array of tasks | |
| type | число | тип задачи: 1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - удаленная команда  | 
       |
| clock | число | время создания задачи | |
| ttl | число | время в секундах после которого срок задачи истекает | |
| commandtype | число | тип удаленной команды: 0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - использование пользовательского скрипта 1, ZBX_SCRIPT_TYPE_IPMI - использование IPMI 2, ZBX_SCRIPT_TYPE_SSH - использование SSH 3, ZBX_SCRIPT_TYPE_TELNET - использование Telnet 4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - использование глобального скрипта (в настоящее время возможности эквивалентны пользовательской команде)  | 
       |
| command | строка | выполняемая удаленная команда | |
| execute_on | число | цель выполнения для пользовательских скриптов: 0, ZBX_SCRIPT_EXECUTE_ON_AGENT - выполнение скрипта на стороне агента 1, ZBX_SCRIPT_EXECUTE_ON_SERVER - выполнение скрипта на стороне сервера 2, ZBX_SCRIPT_EXECUTE_ON_PROXY - выполнение скрипта на стороне прокси  | 
       |
| port | число | (опционально) порт для telnet и ssh команд | |
| authtype | число | (опционально) тип аутентификации для ssh команд | |
| username | строка | (опционально) имя пользователя для telnet и ssh команд | |
| password | строка | (опционально) пароль для telnet и ssh команд | |
| publickey | строка | (опционально) публичный ключ для ssh команд | |
| privatekey | строка | (опционально) приватный ключ для ssh команд | |
| parent_taskid | число | id родительской задачи | |
| hostid | число | hostid цели | |
Пример:
пркси→сервер:
{
         "request": "proxy data",
         "host": "Proxy #12", 
         "session": "12345678901234567890123456789012",
           "host availability":[
               {
                   "hostid":10106,
                   "available":1,
                   "error":"",
                   "snmp_available":0,
                   "snmp_error":"",
                   "ipmi_available":0,
                   "ipmi_error":"",
                   "jmx_available":0,
                   "jmx_error":""
               },
               {
                   "hostid":10107,
                   "available":1,
                   "error":"",
                   "snmp_available":0,
                   "snmp_error":"",
                   "ipmi_available":0,
                   "ipmi_error":"",
                   "jmx_available":0,
                   "jmx_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":"3.4.0"
       }сервер→прокси:
{
         "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
             }
         ]
       }Сервер поддерживает частичную обратную совместимость, принимая старые запросы host availability, history data, discovery data и auto registration.