4 Protokół pluginów Zabbix agent 2

Protokół Zabbix agent 2 opiera się na modelu kodu, rozmiaru i danych.

Kod

Typ Rozmiar Komentarze
Bajt 4 Typ ładunku, obecnie obsługiwany jest tylko JSON.

Rozmiar

Type Size Comments
Bajt 4 Rozmiar bieżącego ładunku w bajtach.

Dane ładunku

Typ Rozmiar Komentarze
Byte Zdefiniowany przez pole Rozmiar Dane w formacie JSON.
Definicja danych payloadu
Wspólne dane

Te parametry są obecne we wszystkich żądaniach/odpowiedziach:

Nazwa Typ Komentarze
id uint32 Dla żądań — inkrementowany identyfikator używany do powiązania żądań z odpowiedziami. Unikalny w obrębie kierunku żądania (tj. od agent do wtyczki lub od wtyczki do agent).
Dla odpowiedzi — ID odpowiadającego żądania.
type uint32 Typ żądania.
Żądanie logowania

Żądanie wysyłane przez wtyczkę w celu zapisania komunikatu dziennika w pliku dziennika agenta.

direction plugin → agent
response no

Parametry specyficzne dla żądań logowania:

Name Type Comments
severity uint32 Poziom ważności komunikatu (poziom logowania).
message string Komunikat do zapisania w dzienniku.

Przykład:

{"id":0,"type":1,"severity":3,"message":"message"}
Żądanie rejestracji

Żądanie wysyłane przez agent podczas fazy uruchamiania agent w celu uzyskania udostępnianych metryk do zarejestrowania wtyczki.

direction agent → plugin
response yes

Parametry specyficzne dla żądań rejestracji:

Name Type Comments
version string Wersja protokołu <major>.<minor>

Przykład:

{"id":1,"type":2,"version":"1.0"}
Odpowiedź rejestracji

Odpowiedź pluginu na żądanie rejestracji.

kierunek plugin → agent
odpowiedź n/d

Parametry specyficzne dla odpowiedzi rejestracji:

Nazwa Typ Uwagi
name string Nazwa pluginu.
metrics array of strings (optional) Metryki wraz z opisami używanymi w pluginie. Zwraca RegisterMetrics(). Nieobecne, jeśli zwracany jest błąd.
interfaces uint32 (optional) Maska bitowa interfejsów obsługiwanych przez plugin. Nieobecne, jeśli zwracany jest błąd.
error string (optional) Komunikat błędu zwracany, jeśli plugin nie może zostać uruchomiony. Nieobecne, jeśli zwracane są metryki.

Przykłady:

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

lub

{"id":2,"type":3,"error":"error message"}
Żądanie Start

Żądanie wykonania funkcji Start interfejsu Runner.

direction agent → plugin
response nie

Żądanie nie ma specyficznych parametrów, zawiera tylko parametry wspólnych danych.

Przykład:

{"id":3,"type":4}
Żądanie zakończenia

Żądanie wysyłane przez agent w celu zamknięcia wtyczki.

direction agent → plugin
response no

Żądanie nie ma specyficznych parametrów, zawiera jedynie parametry wspólnych danych.

Przykład:

{"id":3,"type":5}
Żądanie eksportu

Żądanie wykonania funkcji Export interfejsu Exporter.

direction agent → plugin
response nie

Parametry specyficzne dla żądań eksportu:

Name Type Comments
key string Klucz pluginu.
parameters array of strings (optional) Parametry funkcji Export.

Przykład:

{"id":4,"type":6,"key":"test.key","parameters":["foo","bar"]}
Odpowiedź eksportu

Odpowiedź z funkcji Export interfejsu Exporter.

kierunek plugin → agent
odpowiedź n/d

Parametry specyficzne dla odpowiedzi eksportu:

Nazwa Typ Komentarze
value string (optional) Wartość odpowiedzi z funkcji Export. Nieobecne, jeśli zwracany jest błąd.
error string (optional) Komunikat błędu, jeśli funkcja Export nie została wykonana pomyślnie. Nieobecne, jeśli zwracana jest wartość.

Przykłady:

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

lub

{"id":5,"type":7,"error":"error message"}
Konfiguracja żądania

Żądanie wykonania funkcji Configure interfejsu Configurator.

direction agent → plugin
response n/a

Parametry specyficzne dla żądań Configure:

Name Type Comments
global_options JSON object Obiekt JSON zawierający globalne opcje konfiguracji agenta.
private_options JSON object (optional) Obiekt JSON zawierający prywatne opcje konfiguracji pluginu, jeśli zostały podane.

Przykład:

{"id":6,"type":8,"global_options":{...},"private_options":{...}}
Walidacja żądania

Żądanie wykonania funkcji Validate interfejsu Configurator.

direction agent → plugin
response yes

Parametry specyficzne dla żądań Validate:

Name Type Comments
private_options JSON object (optional) Obiekt JSON zawierający prywatne opcje konfiguracji pluginu, jeśli zostały podane.

Przykład:

{"id":7,"type":9,"private_options":{...}}
Walidacja odpowiedzi

Odpowiedź z funkcji Validate interfejsu Configurator.

direction plugin → agent
response n/a

Parametry specyficzne dla odpowiedzi Validate:

Name Type Comments
error string (optional) Komunikat o błędzie zwracany, jeśli funkcja Validate nie zostanie wykonana pomyślnie. Nieobecny, jeśli wykonanie zakończy się powodzeniem.

Przykład:

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

lub

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