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