№ Додаток 1. Опорний коментар
Zabbix API підтримує такі типи даних як вхідні дані:
|Тип|Опис| |--------|------------------------------------------ ------------| |boolean|Логічне значення, яке приймає або true
, або false
.| |flag|Значення вважається true
, якщо воно передане, і не дорівнює null
і false
інакше.| |ціле|Ціле число.| |float|Число з плаваючою комою.| |рядок|Текстовий рядок.| |текст|Довший текстовий рядок.| |timestamp|часова позначка Unix.| |масив|Упорядкована послідовність значень, тобто звичайний масив.| |об'єкт|Асоціативний масив.| |query|Значення, яке визначає, які дані мають бути повернуті.
Може бути визначено як масив назв властивостей для повернення лише певних властивостей, або як одне з попередньо визначених значень:extend
- повертає всі властивості об'єкта;count
- повертає кількість отриманих записів, підтримується лише певними підвиборами.|
Zabbix API завжди повертає значення лише як рядки або масиви.
Деякі з властивостей об’єктів позначені короткими мітками для опису їх поведінки. Використовуються такі мітки:
Зарезервоване значення ідентифікатора «0» можна використовувати для фільтрації елементів і видалення об’єктів, на які посилаються. Наприклад, щоб видалити проксі-сервер, на який посилається, з хоста, proxy_hostid має бути встановлено на 0 ("proxy_hostid": "0") або щоб фільтрувати хости, які контролюються параметром сервера, proxyids має бути встановлено на 0 ("proxyids": "0").
Наступні параметри підтримуються всіма методами get
:
Параметр | Тип | Опис |
---|---|---|
countOutput | boolean | Повертає кількість записів у результаті замість фактичних даних. |
editable | boolean | Якщо встановлено значення true , повертати лише ті об’єкти, до яких користувач має права на запис.За замовчуванням: false . |
excludeSearch | boolean | Повертає результати, які не відповідають критеріям, указаним у параметрі search . |
filter | object | Повертає лише ті результати, які точно відповідають заданому фільтру. Приймає масив, де ключі є іменами властивостей, а значення є або одним значенням, або масивом значень для порівняння. Не працює для текстових полів. |
limit | integer | Обмежує кількість повернутих записів. |
output | query | Властивості об'єкта, які будуть повернуті. За замовчуванням: extend . |
preservekeys | boolean | Використовувати ідентифікатори як ключі в отриманому масиві. |
search | object | Повертає результати, які відповідають наданому пошуковому знаку підстановки (незалежно від регістру). Приймає масив, де ключі є іменами властивостей, а значення є рядками для пошуку. Якщо не вказано жодних додаткових параметрів, буде виконано пошук LIKE "%…%" .Працює лише для полів рядок і текст . |
searchByAny | boolean | Якщо встановлено значення true , повертає результати, які відповідають будь-якому критерію, наведеному в параметрі filter або search замість усіх.За замовчуванням: false . |
searchWildcardsEnabled | boolean | Якщо встановлено значення true , увімкнено використання "*" як символу підстановки в параметрі search .За замовчуванням: false . |
sortfield | string/array | Сортувати результат за заданими властивостями. Зверніться до конкретного опису методу отримання API, щоб отримати список властивостей, які можна використовувати для сортування. Макроси не розгортаються перед сортуванням. Якщо значення не вказано, дані повертатимуться без сортування. |
sortorder | string/array | Порядок сортування. Якщо передано масив, кожне значення буде зіставлено з відповідною властивістю, указаною в параметрі sortfield .Можливі значення: ASC - (за замовчуванням) за зростанням;DESC - за спаданням. |
startSearch | boolean | Параметр search порівнюватиме початок полів, тобто замість цього виконуватиме пошук LIKE "…%" .Ігнорується, якщо 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
}