№ Додаток 1. Опорний коментар
Zabbix API підтримує такі типи даних як вхідні дані:
|Тип|Опис| |--------|------------------------------------------ ------------| |boolean|Логічне значення, яке приймає або true
, або false
.| |flag|Значення вважається true
, якщо воно передане, і не дорівнює null
і false
інакше.| |ціле|Ціле число.| |float|Число з плаваючою комою.| |рядок|Текстовий рядок.| |текст|Довший текстовий рядок.| |timestamp|часова позначка Unix.| |масив|Упорядкована послідовність значень, тобто звичайний масив.| |об'єкт|Асоціативний масив.| |query|Значення, яке визначає, які дані мають бути повернуті.
Може бути визначено як масив назв властивостей для повернення лише певних властивостей, або як одне з попередньо визначених значень:extend
- повертає всі властивості об'єкта;count
- повертає кількість отриманих записів, підтримується лише певними підвиборами.|
Zabbix API завжди повертає значення лише як рядки або масиви.
Деякі з властивостей об’єктів позначені короткими мітками для опису їх поведінки. Використовуються такі мітки:
Some of the operation parameters are marked with short labels to describe their behavior for the operation. The following labels are used:
status
of Proxy object is set to "passive proxy");Parameters that are not marked with labels are optional.
Зарезервоване значення ідентифікатора «0» можна використовувати для фільтрації елементів і видалення об’єктів, на які посилаються. Наприклад, щоб видалити проксі-сервер, на який посилається, з хоста, proxy_hostid має бути встановлено на 0 ("proxy_hostid": "0") або щоб фільтрувати хости, які контролюються параметром сервера, proxyids має бути встановлено на 0 ("proxyids": "0").
Наступні параметри підтримуються всіма методами 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
}
Відповідь:
Нульовий результат означає відсутність хостів з дозволами на читання/запис.
Підрахувати кількість хостів, імена яких не містять підрядка «ubuntu»
Запит:
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"countOutput": true,
"search": {
"host": "ubuntu"
},
"excludeSearch": true
},
"auth": "766b71ee543230a1182ca5c44d353e36",
"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" до попереднього запиту, результат повертається у вигляді асоціативного масиву, де ключі є ідентифікаторами об'єктів.
Запит:
{
"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
}