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