4 Zabbix agent 2 plugin protocol
Zabbix agent 2 protocol is based on code, size and data model.
Codice
| Tipo | Dimensione | Commenti |
|---|---|---|
| Byte | 4 | Tipo di payload, attualmente è supportato solo JSON. |
Dimensione
| Tipo | Dimensione | Commenti |
|---|---|---|
| Byte | 4 | Dimensione del payload corrente in byte. |
Dati del payload
| Tipo | Dimensione | Commenti |
|---|---|---|
| Byte | Definita dal campo Dimensione | Dati in formato JSON. |
Definizione dei dati del payload
Dati comuni
Questi parametri sono presenti in tutte le richieste/risposte:
| Name | Type | Comments |
|---|---|---|
| id | uint32 | Per le richieste - l'identificatore incrementale utilizzato per collegare le richieste con le risposte. Unico all'interno di una direzione della richiesta (cioè da agent a plugin o da plugin ad agent). Per le risposte - ID della richiesta corrispondente. |
| type | uint32 | Il tipo di richiesta. |
Richiesta di log
Una richiesta inviata da un plugin per scrivere un messaggio di log nel file di log dell'agent.
| direction | plugin → agent |
| response | no |
Parametri specifici delle richieste di log:
| Name | Type | Comments |
|---|---|---|
| severity | uint32 | La gravità del messaggio (livello di log). |
| message | string | Il messaggio da registrare. |
Esempio:
{"id":0,"type":1,"severity":3,"message":"message"}
Richiesta di registrazione
Una richiesta inviata dall'agent durante la fase di avvio dell'agent per ottenere le metriche fornite e registrare un plugin.
| direction | agent → plugin |
| response | yes |
Parametri specifici delle richieste di registrazione:
| Name | Type | Comments |
|---|---|---|
| version | string | La versione del protocollo <major>.<minor> |
Esempio:
{"id":1,"type":2,"version":"1.0"}
Risposta di registrazione
Risposta del plugin alla richiesta di registrazione.
| direction | plugin → agent |
| response | n/a |
Parametri specifici delle risposte di registrazione:
| Name | Type | Comments |
|---|---|---|
| name | string | Il nome del plugin. |
| metrics | array of strings (optional) | Le metriche con descrizioni come utilizzate nel plugin. Restituisce RegisterMetrics(). Assente se viene restituito un errore. |
| interfaces | uint32 (optional) | La maschera di bit delle interfacce supportate dal plugin. Assente se viene restituito un errore. |
| error | string (optional) | Un messaggio di errore restituito se un plugin non può essere avviato. Assente se vengono restituite le metriche. |
Esempi:
{"id":2,"type":3,"metrics":["external.test", "External exporter Test."], "interfaces": 4}
oppure
{"id":2,"type":3,"error":"error message"}
Richiesta di avvio
Una richiesta per eseguire la funzione Start dell'interfaccia Runner.
| direction | agent → plugin |
| response | no |
La richiesta non ha parametri specifici, contiene solo i parametri dei dati comuni.
Esempio:
{"id":3,"type":4}
Termina richiesta
Una richiesta inviata dall'agent per arrestare un plugin.
| direction | agent → plugin |
| response | no |
La richiesta non ha parametri specifici, contiene solo i parametri dei dati comuni.
Esempio:
{"id":3,"type":5}
Richiesta di esportazione
Una richiesta per eseguire la funzione Export dell'interfaccia Exporter.
| direction | agent → plugin |
| response | no |
Parametri specifici per le richieste di esportazione:
| Name | Type | Comments |
|---|---|---|
| key | string | La chiave del plugin. |
| parameters | array of strings (optional) | I parametri per la funzione Export. |
Esempio:
{"id":4,"type":6,"key":"test.key","parameters":["foo","bar"]}
Risposta di esportazione
Risposta dalla funzione Export dell'interfaccia Exporter.
| direction | plugin → agent |
| response | n/a |
Parametri specifici delle risposte di esportazione:
| Name | Type | Comments |
|---|---|---|
| value | string (optional) | Valore di risposta della funzione Export. Assente se viene restituito un errore. |
| error | string (optional) | Messaggio di errore se la funzione Export non è stata eseguita correttamente. Assente se viene restituito value. |
Esempi:
{"id":5,"type":7,"value":"response"}
oppure
{"id":5,"type":7,"error":"error message"}
Configurare la richiesta
Una richiesta per eseguire la funzione Configure dell'interfaccia Configurator.
| direction | agent → plugin |
| response | n/a |
Parametri specifici delle richieste Configure:
| Name | Type | Comments |
|---|---|---|
| global_options | JSON object | Oggetto JSON contenente le opzioni di configurazione globali dell'agent. |
| private_options | JSON object (optional) | Oggetto JSON contenente le opzioni di configurazione private del plugin, se fornite. |
Esempio:
{"id":6,"type":8,"global_options":{...},"private_options":{...}}
Convalida richiesta
Una richiesta per eseguire la funzione Validate dell'interfaccia Configurator.
| direction | agent → plugin |
| response | sì |
Parametri specifici delle richieste Validate:
| Name | Type | Comments |
|---|---|---|
| private_options | JSON object (optional) | Oggetto JSON contenente le opzioni di configurazione private del plugin, se fornite. |
Esempio:
{"id":7,"type":9,"private_options":{...}}
Convalida della risposta
Risposta della funzione Validate dell'interfaccia Configurator.
| direzione | plugin → agent |
| risposta | n/a |
Parametri specifici delle risposte Validate:
| Nome | Tipo | Commenti |
|---|---|---|
| error | string (opzionale) | Messaggio di errore restituito se la funzione Validate non viene eseguita correttamente. Assente se l'esecuzione ha esito positivo. |
Esempio:
{"id":8,"type":10}
oppure
{"id":8,"type":10,"error":"error message"}