4 Zabbix agent 2 plugin protocol

Zabbix agent 2 protocol is based on code, size and data model.

Code

Typ Größe Kommentare
Byte 4 Payload-Typ, derzeit wird nur JSON unterstützt.

Größe

Type Größe Kommentare
Byte 4 Größe der aktuellen Nutzlast in Byte.

Payload-Daten

Typ Größe Kommentare
Byte Durch das Feld Größe definiert JSON-formatierte Daten.
Definition der Payload-Daten
Allgemeine Daten

Diese Parameter sind in allen Anfragen/Antworten vorhanden:

Name Type Comments
id uint32 Für Anfragen – die fortlaufende Kennung, die verwendet wird, um Anfragen mit Antworten zu verknüpfen. Eindeutig innerhalb einer Anfragerichtung (d. h. vom Agent zum Plugin oder vom Plugin zum Agent).
Für Antworten – ID der entsprechenden Anfrage.
type uint32 Der Anfragetyp.
Log-Anfrage

Eine von einem Plugin gesendete Anfrage, um eine Protokollmeldung in die Agent-Protokolldatei zu schreiben.

direction plugin → agent
response no

Für Log-Anfragen spezifische Parameter:

Name Type Comments
severity uint32 Der Schweregrad der Meldung (Log-Level).
message string Die zu protokollierende Meldung.

Beispiel:

{"id":0,"type":1,"severity":3,"message":"message"}
Registrierungsanfrage

Eine Anfrage, die vom Agent während der Startphase des Agent gesendet wird, um bereitgestellte Metriken zu erhalten und ein Plugin zu registrieren.

direction Agent → Plugin
response ja

Für Registrierungsanfragen spezifische Parameter:

Name Type Comments
version string Die Protokollversion <major>.<minor>

Beispiel:

{"id":1,"type":2,"version":"1.0"}
Registrierungsantwort

Antwort des Plugins auf die Registrierungsanfrage.

Richtung Plugin → Agent
Antwort n/v

Für Registrierungsantworten spezifische Parameter:

Name Type Kommentare
name string Der Plugin-Name.
metrics array of strings (optional) Die im Plugin verwendeten Metriken mit Beschreibungen. Gibt RegisterMetrics() zurück. Fehlt, wenn ein Fehler zurückgegeben wird.
interfaces uint32 (optional) Die Bitmaske der vom Plugin unterstützten Schnittstellen. Fehlt, wenn ein Fehler zurückgegeben wird.
error string (optional) Eine Fehlermeldung, die zurückgegeben wird, wenn ein Plugin nicht gestartet werden kann. Fehlt, wenn Metriken zurückgegeben werden.

Beispiele:

{"id":2,"type":3,"metrics":["external.test", "External exporter Test."], "interfaces": 4}

oder

{"id":2,"type":3,"error":"error message"}
Start-Anfrage

Eine Anfrage zur Ausführung der Funktion Start der Runner-Schnittstelle.

Richtung Agent → Plugin
Antwort nein

Die Anfrage hat keine spezifischen Parameter; sie enthält nur die Parameter der allgemeinen Daten.

Beispiel:

{"id":3,"type":4}
Anfrage beenden

Eine vom Agent gesendete Anfrage, um ein Plugin herunterzufahren.

direction Agent → Plugin
response nein

Die Anfrage hat keine spezifischen Parameter; sie enthält nur Parameter der allgemeinen Daten.

Beispiel:

{"id":3,"type":5}
Export-Anfrage

Eine Anfrage zur Ausführung der Export-Funktion der Exporter-Schnittstelle.

direction Agent → plugin
response nein

Für Export-Anfragen spezifische Parameter:

Name Type Comments
key string Der Plugin-Schlüssel.
parameters array of strings (optional) Die Parameter für die Export-Funktion.

Beispiel:

{"id":4,"type":6,"key":"test.key","parameters":["foo","bar"]}
Export-Antwort

Antwort der Export-Funktion der Exporter-Schnittstelle.

direction plugin → Agent
response n/a

Für Export-Antworten spezifische Parameter:

Name Type Comments
value string (optional) Antwortwert der Export-Funktion. Fehlt, wenn ein Fehler zurückgegeben wird.
error string (optional) Fehlermeldung, wenn die Export-Funktion nicht erfolgreich ausgeführt wurde. Fehlt, wenn value zurückgegeben wird.

Beispiele:

{"id":5,"type":7,"value":"response"}

oder

{"id":5,"type":7,"error":"error message"}
Anfrage konfigurieren

Eine Anfrage zur Ausführung der Funktion Configure der Schnittstelle Configurator.

Richtung Agent → Plugin
Antwort n/v

Für Configure-Anfragen spezifische Parameter:

Name Type Comments
global_options JSON object JSON-Objekt mit globalen Agent-Konfigurationsoptionen.
private_options JSON object (optional) JSON-Objekt mit privaten Plugin-Konfigurationsoptionen, falls angegeben.

Beispiel:

{"id":6,"type":8,"global_options":{...},"private_options":{...}}
Anfrage validieren

Eine Anfrage zur Ausführung der Funktion Validate der Schnittstelle Configurator.

direction Agent → plugin
response ja

Spezifische Parameter für Validate-Anfragen:

Name Type Comments
private_options JSON object (optional) JSON-Objekt mit privaten Plugin-Konfigurationsoptionen, falls angegeben.

Beispiel:

{"id":7,"type":9,"private_options":{...}}
Antwort validieren

Antwort der Validate-Funktion der Configurator-Schnittstelle.

Richtung plugin → Agent
Antwort n/a

Für Validate-Antworten spezifische Parameter:

Name Type Kommentare
error string (optional) Eine Fehlermeldung, die zurückgegeben wird, wenn die Validate-Funktion nicht erfolgreich ausgeführt wird. Fehlt, wenn sie erfolgreich ausgeführt wurde.

Beispiel:

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

oder

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