Zabbix Agent 2-Plugin-Protokoll
Das Zabbix Agent 2-Protokoll basiert auf Code, Größe und Datenmodell.
Code
| Type | Size | Comments |
|---|---|---|
| Byte | 4 | Payload-Typ, derzeit wird nur JSON unterstützt. |
Größe
| Type | Size | Comments |
|---|---|---|
| Byte | 4 | Größe der aktuellen Nutzlast in Bytes. |
Nutzdaten
| Type | Size | Comments |
|---|---|---|
| Byte | Definiert durch das Feld Size | JSON-formatierte Daten. |
Definition der Payload-Daten
Gemeinsame Daten
Diese Parameter sind in allen Anfragen/Antworten vorhanden:
| Name | Type | Comments |
|---|---|---|
| id | uint32 | Für Anfragen - der fortlaufende Bezeichner, der verwendet wird, um Anfragen mit Antworten zu verknüpfen. Innerhalb einer Nachrichtenrichtung eindeutig (d. h. vom Agent zum Plugin oder vom Plugin zum Agent). Für Antworten - die ID der entsprechenden Anfrage. |
| type | uint32 | Der Anfragetyp. |
Protokollanforderung
Eine von einem Plugin gesendete Anforderung, um eine Protokollmeldung in die Protokolldatei des Agent zu schreiben.
| direction | plugin → agent |
| response | no |
Parameter, die für Protokollanforderungen spezifisch sind:
| Name | Type | Comments |
|---|---|---|
| severity | uint32 | Die Schwere der Meldung (Protokollstufe). |
| 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 abzurufen und ein Plugin zu registrieren.
| direction | Agent → plugin |
| response | yes |
Für Registrierungsanfragen spezifische Parameter:
| Name | Type | Comments |
|---|---|---|
| version | string | Die Protokollversion <major>.<minor> |
Beispiel:
{"id":1,"type":2,"version":"1.0"}
Register-Antwort
Antwort des Plugins auf die Register-Anfrage.
| direction | plugin → Agent |
| response | n/a |
Für Register-Antworten spezifische Parameter:
| Name | Type | Comments |
|---|---|---|
| name | string | Der Name des Plugins. |
| metrics | array of strings (optional) | Die Metriken mit Beschreibungen, wie sie im Plugin verwendet werden. Gibt RegisterMetrics() zurück. Nicht vorhanden, wenn ein Fehler zurückgegeben wird. |
| interfaces | uint32 (optional) | Die Bitmaske der vom Plugin unterstützten Schnittstellen. Nicht vorhanden, wenn ein Fehler zurückgegeben wird. |
| error | string (optional) | Eine Fehlermeldung, die zurückgegeben wird, wenn ein Plugin nicht gestartet werden kann. Nicht vorhanden, 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 zum Ausführen der Start-Funktion der Runner-Schnittstelle.
| direction | Agent → plugin |
| response | no |
Die Anfrage hat keine spezifischen Parameter, sie enthält nur Parameter für gemeinsame Daten.
Beispiel:
{"id":3,"type":4}
Anfrage beenden
Eine vom Agent an ein Plugin gesendete Anfrage zum Herunterfahren eines Plugins.
| direction | Agent → plugin |
| response | no |
Die Anfrage hat keine spezifischen Parameter, sie enthält nur Parameter für gemeinsame Daten.
Beispiel:
{"id":3,"type":5}
Export-Anfrage
Eine Anfrage zum Ausführen der Export-Funktion der Exporter-Schnittstelle.
| direction | agent → plugin |
| response | no |
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. Nicht vorhanden, wenn ein Fehler zurückgegeben wird. |
| error | string (optional) | Fehlermeldung, wenn die Export-Funktion nicht erfolgreich ausgeführt wurde. Nicht vorhanden, wenn value zurückgegeben wird. |
Beispiele:
{"id":5,"type":7,"value":"response"}
oder
{"id":5,"type":7,"error":"error message"}
Anfrage konfigurieren
Eine Anfrage zum Ausführen der Funktion Configure der Schnittstelle Configurator.
| direction | Agent → plugin |
| response | n/a |
Für Configure-Anfragen spezifische Parameter:
| Name | Type | Comments |
|---|---|---|
| global_options | JSON object | JSON object mit globalen Konfigurationsoptionen des Agent. |
| private_options | JSON object (optional) | JSON object mit privaten Konfigurationsoptionen des Plugins, sofern angegeben. |
Beispiel:
{"id":6,"type":8,"global_options":{...},"private_options":{...}}
Anfrage validieren
Eine Anfrage zum Ausführen der Funktion Validate der Schnittstelle Configurator.
| direction | agent → plugin |
| response | yes |
Für Validate-Anfragen spezifische Parameter:
| Name | Type | Comments |
|---|---|---|
| private_options | JSON object (optional) | JSON object mit privaten Konfigurationsoptionen des Plugins, sofern angegeben. |
Beispiel:
{"id":7,"type":9,"private_options":{...}}
Antwort validieren
Antwort der Funktion Validate der Schnittstelle Configurator.
| direction | plugin → Agent |
| response | n/a |
Für Validate-Antworten spezifische Parameter:
| Name | Type | Comments |
|---|---|---|
| error | string (optional) | Eine Fehlermeldung, die zurückgegeben wird, wenn die Funktion Validate nicht erfolgreich ausgeführt wird. Fehlt bei erfolgreicher Ausführung. |
Beispiel:
{"id":8,"type":10}
oder
{"id":8,"type":10,"error":"error message"}