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 els resultats que corresponen al filtre proveït. Accepta un objecte, on les claus són noms de propietats i els valors són un únic valor o una matriu de valors que corresponen. No funciona amb propietats de tipus text . |
limit | integer | Limita el nombre de registres retornats. |
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 | Retorna els resultats que corresponen a la cerca amb comodins (sensible a mejúscules i minúscules). Accepta un objecte, on les claus són noms de propietats i els valors són les cadenes que seran cercades. Si no s'especifica cap opció addicional, s'executarà una cerca LIKE "%…%" .Funciona només amb propietats tipus string i text . |
searchByAny | boolean | Si s'estableix a true , retorna els resultats que corresponen al criteri donat als paràmetres filter o search , enlloc de retornar-los tots.Per defecte: false . |
searchWildcardsEnabled | boolean | Si s'estableix a true , permet l'us de "*" com a comodí al paràmetre search .Per defecte: 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. Si n os'especifiquen valors, la informació es retorna sense ordenar. |
sortorder | string/array | Ordre de classificació. Si es passa una matriu, cada valor correspondrà amb la propietat donada al paràmetre sortfield .Els valors possibles són: ASC - (per defecte) ascendent;DESC - descendent. |
startSearch | boolean | El paràmetre search es compara amb el principi dels camps; és a dir, es farà una cerca LIKE "…%" .S'ignorarà si el 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
}