Protocollo del plugin di Zabbix agent 2

Il protocollo di Zabbix agent 2 si basa su codice, dimensione e modello dei dati.

Codice

Type Size Comments
Byte 4 Tipo di payload, attualmente è supportato solo JSON.

Dimensione

Type Size Comments
Byte 4 Dimensione del payload corrente in byte.

Dati del payload

Type Size Comments
Byte Definito dal campo Size 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 usato per collegare le richieste alle risposte. Unico all'interno di una direzione di richiesta (cioè da agent al plugin o dal plugin all'agent).
Per le risposte - l'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 usate 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}
Richiesta di terminazione

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 della 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"}
Configurazione richiesta

Una richiesta per eseguire la funzione Configure dell'interfaccia Configurator.

direction agent → plugin
response n/a

Parametri specifici per le 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 yes

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 risposta

Risposta della funzione Validate dell'interfaccia Configurator.

direction plugin → agent
response n/a

Parametri specifici delle risposte Validate:

Name Type Comments
error string (optional) Un messaggio di errore restituito se la funzione Validate non viene eseguita correttamente. Assente se eseguita correttamente.

Esempio:

{"id":8,"type":10}

oppure

{"id":8,"type":10,"error":"error message"}