Zabbix Documentation 2.2

2.23.04.04.2 (current)In development:4.4 (devel)Unsupported:1.82.02.43.23.4

User Tools

Site Tools


Sidebar

pl:manual:appendix:items:activepassive

3 Pasywne i aktywne sprawdzenia agenta

Przegląd

Rozdział ten przedstawia szczegółowo pasywne i aktywne sprawdzenia wykonywane przez agenta Zabbix.

Do komunikacji z agentem Zabbix używa protokołu komunikacyjnego opartego o JSON.

Istnieje kilka definicji uzytych w szczegółach protokołu wykorzystywanego przez Zabbix:

<HEADER> - "ZBXD\x01" (5 bajtów)
<DATALEN> - długość danych (8 bajtów). 1 zostanie sformatowane jako 01/00/00/00/00/00/00/00 (osiem bajtów w HEX, liczba 64-bitowa)

Żeby nie przekroczyć pojemności pamięci (potencjalnie) serwer Zabbix jest ograniczony do przyjmowania tylko 64MB w jednym połączeniu, gdy jest używany protokół Zabbix w wersjach 2.2.0-2.2.2 (128MB przed 2.2.0, nielimitowany przed Zabbix 2.0.3).

Od 2.2.3, limit został zmieniony z powrotem na 128MB, żeby utrzymać kompatybilność ze starszymi wersjami Zabbix, ponieważ gdy proces z ograniczeniem do 128MB wysyłał dane do innego z ograniczeniem do 64MB, mogło to spowodować całkowite odrzucenie danych z powodu przekroczenia limitu.

Sprawdzenia pasywne

Sprawdzenie pasywne jest prostym zapytaniem o dane. Serwer lub proxy Zabbix pyta o jakieś dane (na przykład, obciążenie CPU), a agent Zabbix odsyła rezultaty.

Zapytanie serwera

<klucz pozycji>\n

Odpowiedź agenta

<HEADER><DATALEN><DATA>

Na przykład:

  1. Serwer otwiera połączenie TCP
  2. Serwer wysyła agent.ping\n
  3. Agent czyta zapytanie i odpowiada <HEADER><DATALEN>1
  4. Serwer przetwarza dane, żeby pobrać wartość, w tym przypadku '1'
  5. Połączenie TCP jest zamykane

Sprawdzenia aktywne

Sprawdzenia aktywne wymagają więcej przetwarzania. Agent najpierw musi pobrać z serwera(ów) listę pozycji do niezależnego przetwarzania.

Serwery do pobrania sprawdzeń aktywnych są wpisane w parametrze 'ServerActive' w pliku konfiguracji agenta. Częstotliwość odpytywania tych sprawdzeń jest ustawiona w parametrze 'RefreshActiveChecks' w tym samym pliku konfiguracji. Jednakże, jeżeli odświeżenie się nie uda, zostanie powtórzone dokładnie za 60 sekund. Następnie agent okresowo będzie wysyłał nowe wartości do serwera(ów).

Pobieranie listy pozycji

Zapytanie agenta

<HEADER><DATALEN>{
   "request":"active checks",
   "host":"<nazwa_hosta>"
}

Odpowiedź serwera

{
    "response":"success",
    "data":[
    {
        "key":"log[\/home\/zabbix\/logs\/zabbix_agentd.log]",
        "delay":"30",
        "lastlogsize":"0"
    },
    {
        "key":"agent.version",
        "delay":"600"
    }
    ]
}

Serwer musi odpowiedzieć poprawnie. Dla każdej zwróconej pozycji musi istnieć key i delay. Dla pozycji typu “Log”, musi również istnieć lastlogsize.

Na przykład:

  1. Agent otwiera połączenie TCP
  2. Agent pyta się o listę sprawdzeń
  3. Serwer w odpowiedzi wysyła listę pozycji (klucz pozycji, opóźnienie)
  4. Agent parsuje odpowiedź
  5. Połączenie TCP jest zamykane
  6. Agent uruchamia okresowe zbieranie danych
Należy zauważyć, że ta (istotna) informacja o konfiguracji może być dostępna dla osób trzecich, mających dostęp do portu trappera serwera Zabbix, gdy używane są aktywne proxy. Dzieje się tak dlatego, że każdy może udawać aktywnego agenta i żądać danych konfiguracyjnych; nie jest tu stosowane uwierzytelnianie.
Przesyłanie zebranych danych

Agent wysyła

<HEADER><DATALEN>{
   "request":"agent data",
   "data":[
       {
           "host":"<nazwa_hosta>",
           "key":"log[\/home\/zabbix\/logs\/zabbix_agentd.log]",
           "value":" 13039:20090907:184546.759 zabbix_agentd started. ZABBIX 1.6.6 (revision {7836}).",
           "lastlogsize":80,
           "clock":1252926015
       },
       {
           "host":"<nazwa_hosta>",
           "key":"agent.version",
           "value":"1.6.6",
           "clock":1252926015
       }
   ],
   "clock":1252926016
}

Odpowiedź serwera

<HEADER><DATALEN>{
    "response":"success",
    "info":"Processed 2 Failed 0 Total 2 Seconds spent 0.002070"
}

Jeżeli wysyłanie jakichś wartości zakończy się błędem po stronie serwera (na przykład, ponieważ host lub pozycja zostały wyłączone lub usunięte), agent nie powtórzy wysyłanie tych wartości.

Na przykład:

  1. Agent otwiera połączenie TCP
  2. Agent wysyła listę wartości
  3. Serwer przetwarza dane i odsyła status
  4. Połączenie TCP jest zamykane

Stary protokół XML

Zabbix może przetworzyć do 16 MB danych XML zakodowanych w Base64, ale pojedyncza zdekodowana wartość nie powinna być dłuższa niż 64 KB, w przeciwnym przypadku zostanie ucięta do 64 KB podczas dekodowania.

Zobacz również