Strumenti e risorse
Panoramica
Il server MCP di Zabbix espone le funzionalità di Zabbix ai client MCP come strumenti e risorse.
I nomi degli strumenti descrivono l'attività. Se il parametro ToolPrefix è impostato, il prefisso viene aggiunto a ogni nome dello strumento; le regole di accesso agli strumenti corrispondono ai nomi semplici elencati di seguito.
Strumenti di lettura
| Strumento | Metodo API Zabbix | Argomenti | Ordinato per | Risorsa |
|---|---|---|---|---|
hostgroup_get |
hostgroup.get | groupids, names, search, limit |
name | zabbix://hostgroup/<id> |
templategroup_get |
templategroup.get | groupids, names, search, limit |
name | zabbix://templategroup/<id> |
host_get |
host.get | hostids, groupids, search, limit |
name | zabbix://host/<id> |
template_get |
template.get | templateids, groupids, search, limit |
name | zabbix://template/<id> |
item_get |
item.get | hostids, itemids, search, limit |
name | zabbix://item/<id> |
lld_get |
discoveryrule.get | hostids, ruleids, limit |
name | - |
interface_get |
hostinterface.get | hostids, interfaceids, limit |
ID dell'interfaccia | - |
macro_get |
usermacro.get | hostids o global, macro_names, limit |
macro | - |
problem_get |
problem.get | eventids, groupids, hostids, severities, acknowledged, suppressed, recent, limit |
ID dell'evento, decrescente | - |
maintenance_get |
maintenance.get | maintenanceids, groupids, hostids, limit |
name | - |
history_get |
history.get | itemids, time_from, time_till, type, limit |
clock, decrescente | - |
trigger_get |
trigger.get | triggerids, hostids, search, limit |
description | zabbix://trigger/<id> |
Nota:
host_getetemplate_getrestituiscono anche i trigger di ciascun oggetto (un insieme limitato di campi), i tag e i template collegati. Gli item, le regole di discovery, le interfacce e le macro vengono restituiti dagli strumenti corrispondenti.history_getrichiede un intervallo di tempo non superiore a 7 giorni e con inizio non antecedente a 7 giorni fa. L'argomentotypedeve essere uno trafloat,unsigned,character,text,logojsone deve corrispondere al tipo di valore degli item; se il tipo è errato, viene restituito un risultato vuoto, che non può essere distinto da un item privo di dati. La cronologia degli item binari (tipo di valore 5) non può essere recuperata tramite il server MCP.- Gli strumenti di lettura richiedono un elenco fisso di campi; tutti i campi (
output: extend) non vengono mai richiesti. - I risultati degli strumenti che dispongono di una risorsa contengono il campo
uri, in modo che un agent possa passare da un elenco a una singola entità.
Formato della risposta
Tutti gli strumenti di lettura restituiscono la risposta nello stesso formato:
{
"results": [ ... ],
"count": 2,
"truncated": true,
"truncated_by": "count",
"limit": 2,
"note": "The result count limit was reached ..."
}
Una risposta è limitata dall'argomento limit (predefinito: 100, massimo: 1000) e dalla dimensione serializzata della risposta (MaxResponseSize, predefinita: 64K).
La risposta viene interrotta quando viene raggiunto uno dei due limiti.
La risposta viene troncata solo tra i risultati, mai all'interno di un risultato, e una risposta troncata indica quale limite è stato raggiunto.
Ogni strumento ha un ordine di ordinamento fisso, quindi una risposta troncata contiene sempre l'inizio dell'intero set di risultati.
La paginazione non è supportata; per ottenere altri risultati, restringere la query.
Strumenti per i problemi
Tutti gli strumenti per i problemi chiamano event.acknowledge con i flag di azione corrispondenti.
L'argomento eventids è obbligatorio; gli ID degli eventi possono essere recuperati con problem_get.
È possibile aggiungere un messaggio (commento) con qualsiasi strumento per i problemi.
L'argomento message è facoltativo, tranne che per problem_annotate, per il quale è obbligatorio; se specificato, il messaggio viene registrato nella stessa chiamata all'API di Zabbix.
| Strumento | Effetto | Argomenti aggiuntivi |
|---|---|---|
problem_acknowledge |
Conferma il problema. | - |
problem_unacknowledge |
Rimuove la conferma. | - |
problem_close |
Chiude manualmente il problema (solo per i trigger che consentono la chiusura manuale). | - |
problem_annotate |
Registra un messaggio. | message (obbligatorio) |
problem_change_severity |
Modifica la gravità del problema. | severity (0-5) |
problem_suppress |
Sopprime il problema fino a un'ora specificata o a tempo indeterminato. | suppress_until |
problem_unsuppress |
Rimuove la soppressione. | - |
Non è possibile creare o eliminare problemi; tutti gli strumenti per i problemi aggiornano i problemi esistenti.
Strumenti di manutenzione
| Strumento | Metodo API di Zabbix | Argomenti |
|---|---|---|
maintenance_create |
maintenance.create | name, groupids e/o hostids, active_since, active_till, timeperiods, description, tags, tags_evaltype |
maintenance_update |
maintenance.update | maintenanceid e uno qualsiasi degli argomenti precedenti. Gli argomenti elenco sostituiscono l'intero insieme di valori; un elenco vuoto cancella l'insieme. |
maintenance_delete |
maintenance.delete | maintenanceids |
Quando viene aggiornato un periodo di manutenzione, gli argomenti elenco (come hostids, groupids e timeperiods) sostituiscono i valori esistenti invece di aggiungervi nuovi valori.
Ad esempio, se un periodo di manutenzione include gli host A e B e maintenance_update viene chiamato con hostids contenente solo l'host C, il periodo di manutenzione includerà solo l'host C.
maintenance_create è l'unica operazione non idempotente e maintenance_delete è l'unica operazione che non può essere annullata.
Per impedirne l'utilizzo, negare questi strumenti con il parametro DenyTool.
Comportamento degli strumenti di scrittura
Gli strumenti per i problemi e la manutenzione sono strumenti di scrittura. Funzionano come segue:
- Gli argomenti vengono convalidati prima di qualsiasi chiamata all'API di Zabbix; se la convalida non riesce, l'errore indica il vincolo non rispettato.
- Se il client lo supporta, la modifica viene applicata solo dopo essere stata approvata dall'utente.
- La modifica viene eseguita da Zabbix utilizzando il token del chiamante. Zabbix verifica le autorizzazioni e registra la modifica nel registro di audit associandola al proprietario del token.
- Gli errori di Zabbix, inclusi gli errori di autorizzazione, vengono restituiti invariati come oggetto di errore con i campi
code,messageedata. - Gli strumenti di scrittura restituiscono direttamente il risultato di Zabbix; i limiti di risposta degli strumenti di lettura non si applicano.
- Le chiamate di scrittura non vengono mai ritentate dal server MCP.
Risorse
Le risorse utilizzano lo schema URI zabbix://<kind>/<id>.
Solo zabbix://about è incluso nella risposta resources/list; gli ID delle entità non possono essere enumerati e vengono ottenuti dai risultati degli strumenti.
La risposta resources/templates/list elenca i tipi di entità.
| URI | Contenuto |
|---|---|
zabbix://about |
L'URL dell'API, l'URL del frontend, la versione di Zabbix, l'identità a cui corrisponde il token del chiamante e l'elenco degli strumenti esposti. |
zabbix://host/<hostid> |
Il record del host senza item, trigger, interfacce e macro. |
zabbix://hostgroup/<groupid> |
Il record del gruppo di host senza l'elenco dei membri. |
zabbix://template/<templateid> |
Il record del template senza item, trigger e regole di discovery. |
zabbix://templategroup/<groupid> |
Il record del gruppo di template senza l'elenco dei membri. |
zabbix://item/<itemid> |
La definizione dell'item senza il valore corrente. |
zabbix://trigger/<triggerid> |
La definizione del trigger senza host, dipendenze, funzioni e tag. |
Una risorsa il cui strumento corrispondente è negato non esiste.
Un'entità inesistente e un'entità a cui il proprietario del token non ha accesso vengono entrambe segnalate come resource not found; questi casi sono deliberatamente indistinguibili.
La risorsa zabbix://about non è interessata dalle regole di accesso agli strumenti.