L'API Zabbix supporta i seguenti tipi di dati come input:
|Tipo|Descrizione| |---------|-------------------------- -----------| |boolean|Un valore booleano, accetta true
o false
.| |flag|Il valore è considerato true
se viene passato e non uguale a null
e false
in caso contrario.| |intero|Un numero intero.| |float|Un numero in virgola mobile.| |stringa|Una stringa di testo.| |testo|Una stringa di testo più lunga.| |timestamp|Un timestamp Unix.| |array|Una sequenza ordinata di valori, ovvero un semplice array.| |oggetto|Un array associativo.| |query|Un valore che definisce quali dati devono essere restituiti.
Può essere definito come un array di nomi di proprietà per restituire solo proprietà specifiche o come uno dei valori predefiniti:extend
- restituisce tutte le proprietà dell'oggetto;count
- restituisce il numero di record recuperati, supportato solo da alcune sottoselezioni.|
::: nota importante L'API Zabbix restituisce sempre valori come stringhe o solo array. :::
####Etichette delle proprietà
Alcune delle proprietà degli oggetti sono contrassegnate da brevi etichette per descrivere il loro comportamento. Vengono utilizzate le seguenti etichette:
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.
Il valore ID riservato "0" può essere utilizzato per filtrare gli elementi e rimuoverli oggetti di riferimento. Ad esempio, per rimuovere un proxy referenziato da a host, proxy_hostid deve essere impostato su 0 ("proxy_hostid": "0") o su filtro host monitorati da proxyid opzione server deve essere impostato su 0 ("proxyids": "0").
I seguenti parametri sono supportati da tutti i metodi get
:
|Parametro|Tipo|Descrizione| |---------|------|-------------------------------- -------------------| |countOutput|boolean|Restituisce il numero di record nel risultato invece dei dati effettivi.| |editable|boolean|Se impostato su true
restituisce solo gli oggetti per i quali l'utente ha i permessi di scrittura.
Predefinito: false
.| |excludeSearch|boolean|Restituisce risultati che non corrispondono ai criteri forniti nel parametro search
.| |filter|object|Restituisce solo i risultati che corrispondono esattamente al filtro specificato.
Accetta una matrice, in cui le chiavi sono nomi di proprietà e i valori sono un singolo valore o una matrice di valori con cui confrontare.
Non funziona per i campi testo
.| |limit|intero|Limita il numero di record restituiti.| |output|query|Proprietà dell'oggetto da restituire.
Predefinito: extend
.| |preservekeys|boolean|Utilizza gli ID come chiavi nell'array risultante.| |search|object|Restituisce risultati che corrispondono alla ricerca con caratteri jolly specificata (senza distinzione tra maiuscole e minuscole).
Accetta una matrice, in cui le chiavi sono nomi di proprietà e i valori sono stringhe da cercare. Se non vengono fornite opzioni aggiuntive, verrà eseguita una ricerca LIKE "%…%"
.
Funziona solo per i campi string
e text
.| |searchByAny|boolean|Se impostato su true
restituisce risultati che corrispondono a uno qualsiasi dei criteri forniti nel parametro filter
o search
invece di tutti.
Predefinito: false
.| |searchWildcardsEnabled|boolean|Se impostato su true
abilita l'uso di "*" come carattere jolly nel parametro search
.
Predefinito: false
.| |sortfield|string/array|Ordina il risultato in base alle proprietà date. Fare riferimento a una descrizione del metodo get API specifica per un elenco di proprietà che possono essere utilizzate per l'ordinamento. Le macro non vengono espanse prima dell'ordinamento.
Se non viene specificato alcun valore, i dati verranno restituiti non ordinati.| |sortorder|stringa/array|Ordine di ordinamento. Se viene passato un array, ogni valore verrà abbinato alla proprietà corrispondente fornita nel parametro sortfield
.
I valori possibili sono:ASC
- (default) ascendente;
DESC
- discendente.| |startSearch|boolean|Il parametro search
confronterà l'inizio dei campi, ovvero eseguirà invece una ricerca LIKE "…%"
.
Ignorato se searchWildcardsEnabled
è impostato su true
. |
L'utente dispone dell'autorizzazione per scrivere agli host i cui nomi iniziano con "MySQL" o "Linux"?
Richiesta:
{
"jsonrpc": "2.0",
"metodo": "host.get",
"parametri": {
"countOutput": vero,
"ricerca": {
"host": ["MySQL", "Linux"]
},
"modificabile": vero,
"startSearch": vero,
"searchByAny": vero
},
"auth": "766b71ee543230a1182ca5c44d353e36",
"id": 1
}
Risposta:
Risultato zero significa nessun host con lettura/scrittura permessi.
Conta il numero di host i cui nomi non contengono la sottostringa "ubuntu"
Richiesta:
{
"jsonrpc": "2.0",
"metodo": "host.get",
"parametri": {
"countOutput": vero,
"ricerca": {
"ospite": "ubuntu"
},
"excludeSearch": vero
},
"auth": "766b71ee543230a1182ca5c44d353e36",
"id": 1
}
Risposta:
Trova host il cui nome contiene la parola "server" e dispongono di porte di interfaccia "10050" o "10071". Ordina il risultato per nome host in ordine decrescente e limitalo a 5 host.
Richiesta:
{
"jsonrpc": "2.0",
"metodo": "host.get",
"parametri": {
"output": ["hostid", "host"],
"selectInterfaces": ["porta"],
"filtro": {
"porta": ["10050", "10071"]
},
"ricerca": {
"host": "*server*"
},
"searchWildcardsEnabled": vero,
"searchByAny": vero,
"sortfield": "host",
"sortorder": "DESC",
"limite": 5
},
"auth": "766b71ee543230a1182ca5c44d353e36",
"id": 1
}
Risposta:
{
"jsonrpc": "2.0",
"risultato": [
{
"hostid": "50003",
"host": "WebServer-Tomcat02",
"interfacce": [
{
"porta": "10071"
}
]
},
{
"hostid": "50005",
"host": "WebServer-Tomcat01",
"interfacce": [
{
"porta": "10071"
}
]
},
{
"hostid": "50004",
"host": "WebServer-Nginx",
"interfacce": [
{
"porta": "10071"
}
]
},
{
"hostid": "99032",
"host": "Server MySQL 01",
"interfacce": [
{
"porta": "10050"
}
]
},
{
"hostid": "99061",
"host": "server Linux 01",
"interfacce": [
{
"porta": "10050"
}
]
}
],
"id": 1
}
Se si aggiunge il parametro "preservekeys" alla richiesta precedente, il il risultato viene restituito come un array associativo, in cui le chiavi sono l'id di gli oggetti.
Richiesta:
{
"jsonrpc": "2.0",
"metodo": "host.get",
"parametri": {
"output": ["hostid", "host"],
"selectInterfaces": ["porta"],
"filtro": {
"porta": ["10050", "10071"]
},
"ricerca": {
"host": "*server*"
},
"searchWildcardsEnabled": vero,
"searchByAny": vero,
"sortfield": "host",
"sortorder": "DESC",
"limite": 5,
"preservekeys": vero
},
"auth": "766b71ee543230a1182ca5c44d353e36",
"id": 1
}
Risposta:
{
"jsonrpc": "2.0",
"risultato": {
"50003": {
"hostid": "50003",
"host": "WebServer-Tomcat02",
"interfacce": [
{
"porta": "10071"
}
]
},
"50005": {
"hostid": "50005",
"host": "WebServer-Tomcat01",
"interfacce": [
{
"porta": "10071"
}
]
},
"50004": {
"hostid": "50004",
"host": "WebServer-Nginx",
"interfacce": [
{
"porta": "10071"
}
]
},
"99032": {
"hostid": "99032",
"host": "Server MySQL 01",
"interfacce": [
{
"porta": "10050"
}
]
},
"99061": {
"hostid": "99061",
"host": "server Linux 01",
"interfacce": [
{
"porta": "10050"
}
]
}
},
"id": 1
}