Rozdzia? ten przedstawia szczeg¨®?owo pasywne i aktywne sprawdzenia wykonywane przez agenta Áú»¢¶Ä²©.
Do komunikacji z agentem Áú»¢¶Ä²© u?ywa protoko?u komunikacyjnego opartego o JSON.
Istnieje kilka definicji uzytych w szczeg¨®?ach protoko?u wykorzystywanego przez Áú»¢¶Ä²©:
<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 Áú»¢¶Ä²© jest ograniczony do przyjmowania tylko 64MB w jednym po??czeniu, gdy jest u?ywany protok¨®? Áú»¢¶Ä²© w wersjach 2.2.0-2.2.2 (128MB przed 2.2.0, nielimitowany przed Áú»¢¶Ä²© 2.0.3).
Od 2.2.3, limit zosta? zmieniony z powrotem na 128MB, ?eby utrzyma? kompatybilno?? ze starszymi wersjami Áú»¢¶Ä²©, 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.
Sprawdzenie pasywne jest prostym zapytaniem o dane. Serwer lub proxy Áú»¢¶Ä²© pyta o jakie? dane (na przyk?ad, obci??enie CPU), a agent Áú»¢¶Ä²© odsy?a rezultaty.
Zapytanie serwera
Odpowied? agenta
Na przyk?ad:
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).
Zapytanie agenta
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:
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 Áú»¢¶Ä²©, 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.
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:
Áú»¢¶Ä²© 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.