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

№ Додаток 1. Опорний коментар

Позначення

Типи даних

Zabbix API підтримує такі типи даних як вхідні дані:

|Тип|Опис| |--------|------------------------------------------ ------------| |boolean|Логічне значення, яке приймає або true, або false.| |flag|Значення вважається true, якщо воно передане, і не дорівнює null і false інакше.| |ціле|Ціле число.| |float|Число з плаваючою комою.| |рядок|Текстовий рядок.| |текст|Довший текстовий рядок.| |timestamp|часова позначка Unix.| |масив|Упорядкована послідовність значень, тобто звичайний масив.| |об'єкт|Асоціативний масив.| |query|Значення, яке визначає, які дані мають бути повернуті.

Може бути визначено як масив назв властивостей для повернення лише певних властивостей, або як одне з попередньо визначених значень:
extend - повертає всі властивості об'єкта;
count - повертає кількість отриманих записів, підтримується лише певними підвиборами.|

Zabbix API завжди повертає значення лише як рядки або масиви.

Мітки властивостей

Деякі з властивостей об’єктів позначені короткими мітками для опису їх поведінки. Використовуються такі мітки:

  • readonly - значення властивості встановлюється автоматично і не може бути визначено або змінено клієнтом;
  • constant - значення властивості можна встановити під час створення об'єкта, але не можна змінити після.

Parameter behavior

Some of the operation parameters are marked with short labels to describe their behavior for the operation. The following labels are used:

  • read-only - the value of the parameter is set automatically and cannot be defined or changed by the user, even in some specific conditions (e.g., read-only for inherited objects or discovered objects);
  • write-only - the value of the parameter can be set, but cannot be accessed after;
  • supported - the value of the parameter is not required to be set, but is allowed to be set in some specific conditions (e.g., supported if status of Proxy object is set to "passive proxy");
  • required - the value of the parameter is required to be set.

Parameters that are not marked with labels are optional.

Зарезервоване значення ідентифікатора "0"

Зарезервоване значення ідентифікатора «0» можна використовувати для фільтрації елементів і видалення об’єктів, на які посилаються. Наприклад, щоб видалити проксі-сервер, на який посилається, з хоста, proxy_hostid має бути встановлено на 0 ("proxy_hostid": "0") або щоб фільтрувати хости, які контролюються параметром сервера, proxyids має бути встановлено на 0 ("proxyids": "0").

Загальні параметри методу "get".

Наступні параметри підтримуються всіма методами get:

|Параметр|Тип|Опис| |---------|------|-------------------------------- ------------------| |countOutput|boolean|Повертає кількість записів у результаті замість фактичних даних.| |editable|boolean|Якщо встановлено значення true, повертати лише ті об’єкти, до яких користувач має права на запис.

За замовчуванням: false.| |excludeSearch|boolean|Повернути результати, які не відповідають критеріям, указаним у параметрі search.| |фільтр|об'єкт|Повертає лише ті результати, які точно відповідають заданому фільтру.

Приймає масив, де ключі є іменами властивостей, а значення є або одним значенням, або масивом значень для порівняння.

Не працює для текстових полів.| |ліміт|ціле|Обмежити кількість повернутих записів.| |вивід|запит|Властивості об'єкта, які будуть повернуті.

За замовчуванням: extend.| |preservekeys|boolean|Використовувати ідентифікатори як ключі в отриманому масиві.| |пошук|об'єкт|Повертає результати, які відповідають наданому пошуковому знаку підстановки (незалежно від регістру).

Приймає масив, де ключі є іменами властивостей, а значення є рядками для пошуку. Якщо не вказано жодних додаткових параметрів, буде виконано пошук ЯК "%…%``.

Працює лише для полів
рядокітекст.| |searchByAny|boolean|Якщо встановлено значенняtrue, повертає результати, які відповідають будь-якому критерію, наведеному в параметріfilterабоsearchзамість усіх.

За замовчуванням:
false.| |searchWildcardsEnabled|boolean|Якщо встановлено значенняtrue, увімкнено використання "\*" як символу підстановки в параметріsearch.

За замовчуванням:
false.| |sortfield|рядок/масив|Сортувати результат за заданими властивостями. Зверніться до конкретного опису методу отримання API, щоб отримати список властивостей, які можна використовувати для сортування. Макроси не розгортаються перед сортуванням.

Якщо значення не вказано, дані повертатимуться без сортування.| |порядок сортування|рядок/масив|Порядок сортування. Якщо передано масив, кожне значення буде зіставлено з відповідною властивістю, указаною в параметрі
sortfield.

Можливі значення:
ASC- *(за замовчуванням)* за зростанням;
DESC- за спаданням.| |startSearch|boolean|Параметрsearchпорівнюватиме початок полів, тобто замість цього виконуватиме пошукЯК "…%`.

Ігнорується, якщо
searchWildcardsEnabledмає значенняtrue`. |

Приклади

Перевірка прав користувача

Чи має користувач дозвіл записувати на хости, імена яких починаються з "MySQL" або "Linux"?

Запит:

{
            "jsonrpc": "2.0",
            "method": "host.get",
            "params": {
                "countOutput": true,
                "search": {
                    "host": ["MySQL", "Linux"]
                },
                "editable": true,
                "startSearch": true,
                "searchByAny": true
            },
            "auth": "766b71ee543230a1182ca5c44d353e36",
            "id": 1
       }

Відповідь:

{
            "jsonrpc": "2.0",
            "result": "0",
            "id": 1
       }

Нульовий результат означає відсутність хостів з дозволами на читання/запис.

Підрахунок невідповідності

Підрахувати кількість хостів, імена яких не містять підрядка «ubuntu»

Запит:

{
            "jsonrpc": "2.0",
            "method": "host.get",
            "params": {
                "countOutput": true,
                "search": {
                    "host": "ubuntu"
                },
                "excludeSearch": true
            },
            "auth": "766b71ee543230a1182ca5c44d353e36",
            "id": 1
       }

Відповідь:

{
            "jsonrpc": "2.0",
            "result": "44",
            "id": 1
       }

Пошук хостів за допомогою символів підстановки

Знайдіть хости, назва яких містить слово «сервер» і мають порти інтерфейсу «10050» або «10071». Відсортуйте результат за назвою хоста в порядку спадання та обмежте його 5 хостами.

Запит:

{
           "jsonrpc": "2.0",
           "method": "host.get",
           "params": {
               "output": ["hostid", "host"],
               "selectInterfaces": ["port"],
               "filter": {
                   "port": ["10050", "10071"]
               },
               "search": {
                   "host": "*server*"
               },
               "searchWildcardsEnabled": true,
               "searchByAny": true,
               "sortfield": "host",
               "sortorder": "DESC",
               "limit": 5
           },
           "auth": "766b71ee543230a1182ca5c44d353e36",
           "id": 1
       }

Відповідь:

{
           "jsonrpc": "2.0",
           "result": [
               {
                   "hostid": "50003",
                   "host": "WebServer-Tomcat02",
                   "interfaces": [
                       {
                           "port": "10071"
                       }
                   ]
               },
               {
                   "hostid": "50005",
                   "host": "WebServer-Tomcat01",
                   "interfaces": [
                       {
                           "port": "10071"
                       }
                   ]
               },
               {
                   "hostid": "50004",
                   "host": "WebServer-Nginx",
                   "interfaces": [
                       {
                           "port": "10071"
                       }
                   ]
               },
               {
                   "hostid": "99032",
                   "host": "MySQL server 01",
                   "interfaces": [
                       {
                           "port": "10050"
                       }
                   ]
               },
               {
                   "hostid": "99061",
                   "host": "Linux server 01",
                   "interfaces": [
                       {
                           "port": "10050"
                       }
                   ]
               }
           ],
           "id": 1
       }

Пошук хостів за допомогою символів підстановки з "preservekeys"

Якщо ви додаєте параметр "preservekeys" до попереднього запиту, результат повертається у вигляді асоціативного масиву, де ключі є ідентифікаторами об'єктів.

Запит:

{
           "jsonrpc": "2.0",
           "method": "host.get",
           "params": {
               "output": ["hostid", "host"],
               "selectInterfaces": ["port"],
               "filter": {
                   "port": ["10050", "10071"]
               },
               "search": {
                   "host": "*server*"
               },
               "searchWildcardsEnabled": true,
               "searchByAny": true,
               "sortfield": "host",
               "sortorder": "DESC",
               "limit": 5,
               "preservekeys": true
           },
           "auth": "766b71ee543230a1182ca5c44d353e36",
           "id": 1
       }

Відповідь:

{
            "jsonrpc": "2.0",
            "result": {
                "50003": {
                    "hostid": "50003",
                    "host": "WebServer-Tomcat02",
                    "interfaces": [
                        {
                            "port": "10071"
                        }
                    ]
                },
                "50005": {
                    "hostid": "50005",
                   "host": "WebServer-Tomcat01",
                   "interfaces": [
                        {
                            "port": "10071"
                        }
                    ]
                },
                "50004": {
                    "hostid": "50004",
                    "host": "WebServer-Nginx",
                    "interfaces": [
                        {
                            "port": "10071"
                        }
                    ]
                },
                "99032": {
                    "hostid": "99032",
                    "host": "MySQL server 01",
                    "interfaces": [
                        {
                            "port": "10050"
                        }
                    ]
                },
                "99061": {
                    "hostid": "99061",
                    "host": "Linux server 01",
                    "interfaces": [
                        {
                            "порт": "10050"
                        }
                    ]
                }
            },
            "id": 1
       }