L'API de Zabbix suporta, com a dades d'entrada, els següents tipus:
Tipus | Descripció |
---|---|
boolean | Un valor booleà accepta tant true com false . |
flag | El valor es considera true si no és igual a null , i false en cas contrari. |
integer | Un nombre sencer. |
float | Un nombre de coma flotant. |
string | Una cadena de text. |
text | Una cadena llarga de text. |
timestamp | Una marca de temps de Unix. |
array | Una seqüència ordenada de valors; o sia, una matriu simple. |
object | Una matriu associativa. |
query | Un valor que defineix quina informació ha de retornar. Es pot definir com una matriu de noms de propietats, per tal de retornar només propietats específiques; o com un dels valors predefinits: extend - retorna totes les propietats de l'objecte;count - retorna el nombre de registres recuperats, suportats només per algunes subseleccions. |
L'API de Zabbix sempre retorna com a valors valors strings o arrays.
Algunes propietats d'objectes són marcats amb etiquetes per descriure el seu comportament. Les etiquetes emprades són les següents:
El valor "0" d'ID reservat es pot emprar per filtrar elements i esborrar objectes referenciats. Per exemple, per esborrar un proxy referenciat d'un equip, s'ha d'establir proxy_hostid should a 0 ("proxy_hostid": "0"), o per filtrar equips monitorats per l'opció del servidor, s'ha d'establir proxyids a 0 ("proxyids": "0").
Es suporten per tots els mètodes get
els paràmetres següents:
Paràmetre | Tipus | Descripció |
---|---|---|
countOutput | boolean | Torna el nombre de registres al resultat, enlloc de les dades reals. |
editable | boolean | Si s'estableix a true , només retorna els objectes per als quals l'usuari té permisos d'escriptura.Per defecte: false . |
excludeSearch | boolean | Retorna els resultats que no corresponen pas als criteris proveïts al paràmetre search . |
filter | object | Retorna només aquells resultats que coincideixen exactament amb el filtre donat. Accepta un objecte, on les claus són noms de propietat (p. ex., propietats de l'objecte de l'equip a host.get', propietats de l'objecte de l'element a item.get', etc.), i els valors són un valor únic o una matriu de valors amb els quals coincideix.type](#data-types). Tingueu en compte que alguns mètodes tenen una funcionalitat específica per a aquest paràmetre, que es descriu a la pàgina del mètode (per exemple, el paràmetre filter a host.get també admet propietats de la interfície de l'equip). |
output | query | Propietats de l'objecte que es retornaran. Per defecte: extend . |
preservekeys | boolean | Empra els IDs com a claus de la matriu resultant. |
search | object | Retorn resultats que coincideixen amb el patró donat (no distingeix entre majúscules i minúscules). Accepta un objecte, on les claus són noms de propietat (p. ex., propietats de l'objecte equip a host.get , propietats de l'objecte element a item.get', etc.) i els valors són cadenes per cercar. Si no es donen opcions addicionals, es realitzarà una cerca COM "%...%". stringi text[tipus de dades](#data-types). true, permet l'us de "\*" com a comodí al paràmetre search. false.| |sortfield|string/array|Ordena el resultat per les propietats donades. Consulteu una descripció específica del mètode get de l'API per obtindre una llista de propietats que es poden emprar per la classificació. Les macros no són pas ampliades abans d'ordenar. sortfield. ASC- *(per defecte)* ascendent; DESC- descendent.| |startSearch|boolean|El paràmetre searches compara amb el principi dels camps; és a dir, es farà una cerca LIKE "…%". searchWildcardsEnabledés establert a true`. |
Té permisos l'usuari per escriure als equips amb noms que comencen amb "MySQL" o "Linux" ?
Petició:
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"countOutput": true,
"search": {
"host": ["MySQL", "Linux"]
},
"editable": true,
"startSearch": true,
"searchByAny": true
},
"auth": "766b71ee543230a1182ca5c44d353e36",
"id": 1
}
Resposta:
El resultat zero vol dir que no hi ha equips amb permisos de lectura/escriptura.
Compta el nombre d'equips amb noms que no tenen pas la subcadena "ubuntu"
Petició:
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"countOutput": true,
"search": {
"host": "ubuntu"
},
"excludeSearch": true
},
"auth": "766b71ee543230a1182ca5c44d353e36",
"id": 1
}
Resposta:
Troba els equips amb nom que conté la paraula "servidor" i té ports de xarxa "10050" o "10071". Ordena el resultat per nom d'equip, en ordre decreixent, i limitat a 5 equips.
Petició:
{
"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
}
Resposta:
{
"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
}
Si afegeixes al paràmetre "preservekeys" a la consulta anterior, retorna el resultat com una matriu associativa, on les claus són els id dels objectes.
Petició:
{
"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
}
Resposta:
{
"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
}