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

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"}