Protokół wtyczki Zabbix agent 2

Protokół Zabbix agent 2 opiera się na kodzie, rozmiarze i modelu danych.

Kod

Type Size Comments
Byte 4 Typ ładunku, obecnie obsługiwany jest tylko JSON.

Rozmiar

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

Dane ładunku

Type Size Comments
Byte Określone przez pole Size Dane w formacie JSON.

Definicja danych ładunku

Dane wspólne

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

Name Type Comments
id uint32 Dla żądań - inkrementowany identyfikator używany do powiązania żądań z odpowiedziami. Unikalny w obrębie jednego kierunku żądania (tj. od agent do plugin lub od plugin do agent).
Dla odpowiedzi - identyfikator odpowiadającego żądania.
type uint32 Typ żądania.
Żądanie logu

Żądanie wysyłane przez plugin do zapisania komunikatu logu w pliku logu agenta.

direction plugin → agent
response no

Parametry specyficzne dla żądań logu:

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

Przykład:

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

Żądanie wysyłane przez agent podczas fazy uruchamiania agent, aby pobrać udostępnione metryki i zarejestrować plugin.

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.

direction plugin → agent
response n/a

Parametry specyficzne dla odpowiedzi rejestracji:

Name Type Comments
name string Nazwa pluginu.
metrics array of strings (optional) Metryki z opisami używane 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. Nieobecny, 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 startu

Żądanie wykonania funkcji Start interfejsu Runner.

direction agent → plugin
response no

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

Przykład:

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

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

direction agent → plugin
response no

Żądanie nie ma określonych parametrów, zawiera tylko parametry common data.

Przykład:

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

Żądanie wykonania funkcji Export interfejsu Exporter.

direction agent → plugin
response no

Parametry specyficzne dla żądań eksportu:

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

Przykład:

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

Odpowiedź z funkcji Export interfejsu Exporter.

direction plugin → agent
response n/a

Parametry specyficzne dla odpowiedzi eksportu:

Name Type Comments
value string (optional) Wartość odpowiedzi z funkcji Export. Nieobecna, jeśli zwracany jest błąd.
error string (optional) Komunikat błędu, jeśli funkcja Export nie została wykonana pomyślnie. Nieobecny, 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 błędu zwracany, jeśli funkcja Validate nie zostanie wykonana pomyślnie. Nieobecny, jeśli wykonanie zakończyło się powodzeniem.

Przykład:

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

lub

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