Додатак 1. Референтни коментар
Нотација
Типови података
Zabbix API подржава следеће типове података као улаз:
| Type | Description |
|---|---|
| ID | Јединствени идентификатор који се користи за референцирање на ентитет. |
| boolean | Буловска вредност (било true или false). |
| flag | Вредност која се сматра true ако је прослеђена и није једнака null; у супротном, вредност се сматра false. |
| integer | Цео број. |
| float | Децимални број у покретном зарезу. |
| string | Текстуални низ. |
| text | Дужи текстуални низ. |
| timestamp | Unix временска ознака. |
| array | Уређени низ вредности (обичан низ). |
| object | Асоцијативни низ. |
| query | Вредност која дефинише податке који ће бити враћени. Вредност се може дефинисати као низ имена својстава (да би се вратиле само одређена својства) или као једна од унапред дефинисаних вредности:extend - враћа сва својства објекта;count - враћа број преузетих записа, подржаних само одређеним подизборима. |
Zabbix API увек враћа вредности као стрингове или само низове.
Понашање својстава
Нека својства објеката су означена кратким ознакама да би описали њихово понашање. Користе се следеће ознаке:
- само за читање - вредност својства се поставља аутоматски и корисник не може да је дефинише или промени, чак ни у неким специфичним условима (нпр. само за читање за наслеђене објекте или откривене објекте);
- само за писање - вредност својства се може подесити, али јој се не може приступити након;
- константа - вредност својства се може подесити приликом креирања објекта, али се не може променити након;
- подржано - вредност својства се не мора подесити, али је дозвољено да се подеси у неким специфичним условима
(нпр. подржано ако је
typeподешен на "Једноставна провера", "Спољна провера", "SSH agent", "TELNET agent", или "HTTP agent"); - обавезно - потребно је да вредност својства буде подешена за све операције (осим get операција) или у неким специфичним условима
(нпр. обавезно за операције креирања; обавезно ако је
operationtypeподешен на "глобални скрипт" иopcommand_hstније подешен).
За операције ажурирања својство се сматра "постављеним" када се поставља током операције ажурирања.
Својства која нису означена ознакама су опциона.
Понашање параметара
Неки од параметара операције су означени кратким ознакама како би описали њихово понашање за операцију. Користе се следеће ознаке:
- само за читање - вредност параметра се поставља аутоматски и корисник не може да је дефинише или промени, чак ни у неким специфичним условима (нпр. само за читање за наслеђене објекте или откривене објекте);
- само за писање - вредност параметра се може подесити, али јој се не може приступити након;
- подржано - вредност параметра није потребна за подешавање, али је дозвољено да се подеси у неким специфичним условима
(нпр. подржано ако је
operating_modeпрокси објекта подешен на "пасивни прокси"); - обавезно - потребно је подесити вредност параметра.
Параметри који нису означени ознакама су опциони.
Резервисана вредност ID-ија "0"
Резервисана вредност ID-ијa "0" се може користити за филтрирање елемената и за уклањање референцираних објеката. На пример, за уклањање референцираног проксија са домаћина, proxytid треба да буде постављен на 0 ("proxyid": "0") или за филтрирање домаћина надгледаних од стране сервера, опција proxyids треба да буде постављена на 0 ("proxyids": "0").
Заједнички параметри "get" метода
Следећи парамтери су подржани од стране свих get метода:
| Parameter | Type | Description |
|---|---|---|
| countOutput | boolean | Враћа број записа у резултату уместо стварних података. |
| editable | boolean | Ако је постављено на true враћа само објекте за које корисник има дозволе за писање.Подразумевано: false. |
| excludeSearch | boolean | Враћа резултате који не одговарају критеријумима наведеним у параметру search. |
| filter | object | Враћа само оне резултате који се тачно подударају са датим филтером. Прихвата објекат, где су кључеви имена својстава(нпр, својства објекта домаћина у host.get, својства објекта ставке у item.get, итд), а вредности су или једна вредност или низ вредности за подударање. Не подржава својства text data type.Имајте на уму да неке методе имају специфичну функционалност за овај параметар, што је описано на страници методе (нпр, filter параметар у host.get такође подржава својства интерфејса домаћина). |
| limit | integer | Ограничава број враћених записа. |
| output | query | Својства објекта која се враћају. Подразумевано: extend. |
| preservekeys | boolean | Користи ID-ијеве као кључеве у резултујућем низу. |
| search | object | Враћа резултате који се поклапају са датим обрасцем (без обзира на велика и мала слова). Прихвата објекат, где су кључеви имена својстава (нпр, својства објекта домаћина у host.get,својства објекта ставке у item.get, итд), а вредности низови за претраживање. Ако нису дате додатне опције, извршиће се претрага LIKE "%…%".Подржава само својства string и text data type.Имајте на уму да неке методе имају специфичну функционалност за овај параметар, која је описана на страници методе (нпр, параметар search у host.get такође подржава својства домаћина интерфејса ). |
| 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
},
"id": 1
}
Одговор:
{
"jsonrpc": "2.0",
"result": "0",
"id": 1
}
Нулти резултат значи да нема домаћина са дозволама за читање/писање.
Бројање неслагања
Бројање домаћина, чија имена не садрже подстринг "ubuntu"
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"countOutput": true,
"search": {
"host": "ubuntu"
},
"excludeSearch": true
},
"id": 1
}
Одговор:
{
"jsonrpc": "2.0",
"result": "44",
"id": 1
}
Тражења домаћина помоћу џокер знакова
Наћи домаћине, чији назив садржи реч "server" и имају портове интерфејса "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
},
"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", претходном захтеву, резултат се враћа као асоциативни ред, где су кључеви ID-ијеви објеката.
{
"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
},
"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": [
{
"port": "10050"
}
]
}
},
"id": 1
}