Овај одељак пружа детаље о вредности предобраде корака ставке. Предобрада вредности ставке омогућава да се дефинишу и изврше правила трансформације за примљене вредности ставкe.
Предобрада управља процес менаџера за претходну обраду заједно са радницима за предобрадy који обављају кораке претходне обраде. Све вредности (са или без претходне обраде) од различитих сакупљача података пролазе кроз менаџер за предобраду пре него што се додају у кеш историје. IPC комуникација заснована на сокету се користи између сакупљача података (полери, трапери, итд.) и процеса предобраде. Или Zabbix сервер или Zabbix прокси (за ставке које надгледа проки) обављају кораке предобраде.
Да бисмо визуализовали ток података од извора података до Zabbix базе података, можемо користити следећи поједностављени дијаграм:
Горњи дијаграм приказује само процесе, објекте и радње везане за обраду вредности ставке у поједностављеном облику. Дијаграм не приказује условне промене смера, руковање грешкама или петље. Локални кеш података менаџера претходне обраде такође није приказан јер не утиче директно на ток података. Циљ овог дијаграма је да прикаже процесе укључене у обраду вредности ставке и начин на који они међусобно делују.
Прикупљање података почиње са сировим подацима из извора података. У овом тренутку, подаци садрже само ИД, временску ознаку и вредност (могу бити и вишеструке вредности).
Без обзира на то која врста сакупљача података се користи, идеја је иста за активне или пасивне провере, за ставке трапера итд., јер само мења формат података и покретач комуникације (или сакупљач података чека везу и податке, или сакупљач података покреће комуникацију и захтева податке). Сирови подаци се валидирају, конфигурација ставке се преузима из кеша конфигурације (подаци се обогаћују подацима конфигурације).
Механизам IPC заснован на сокету се користи за пренос података од сакупљача података до менаџера претходне обраде. У овом тренутку, сакупљач података наставља да прикупља податке без чекања одговора од менаџера претходне обраде.
Извршава се претходна обрада података. Ово укључује извршавање корака претходне обраде и зависне обраде ставке.
Ставка може променити своје стање у НИЈЕ ПОДРЖАНО док се извршава претходна обрада ако било који од корака претходне обраде не успе.
Ставка може променити своје стање у НЕПОДРЖАНО ако нормализација података не успе (на пример, када се текстуална вредност не може конвертовати у број).
Претходна обрада података се врши у следећим корацима:
Имајте на уму да је на дијаграму претходна обрада главне ставке мало поједностављена прескакањем кеширања претходне обраде.
Ред за претходну обраду је организован као:
Кеширање предпроцесирања је уведено да би се побољшале перформансе препроцесирања за више зависних ставки које имају сличне кораке препроцесирања (што је уобичајен LLD исход).
Кеширање се врши претходном обрадом једне зависне ставке и поновним коришћењем неких интерних података за претпроцесирање за остале зависне ставке. Кеш за претходну обраду је подржан само за први корак претходне обраде следећих типова:
[?(@.path == "value) ")]
)Конфигурациони фајл Zabbix сервера омогућава корисницима да подесе број нити радника претходне обраде. Параметар конфигурације StartPreprocessors треба користити за подешавање броја претходно покренутих инстанци радника претходне обраде, који би требало да се подудара барем са бројем доступних језгара процесора.
Ако задаци претходне обраде нису ограничени на процесор и укључују честе мрежне захтеве, препоручује се конфигурисање додатних радника. Оптималан број радника претходне обраде може се одредити многим факторима, укључујући број "претходно обрадивих" ставки (ставки које захтевају извршавање било којих корака претходне обраде), број процеса прикупљања података, просечан број корака за претходну обраду ставки итд. Недовољан број радника може довести до велике употребе меморије. За решавање проблема прекомерне употребе меморије на вашој Zabbix инсталацији, погледајте Профилисање прекомерне употребе меморије помоћу tcmalloc.
Али под претпоставком да нема тешких операција претходне обраде попут парсирања великих XML/JSON делова, број радника претходне обраде може се подударати са укупним бројем сакупљача података. На овај начин, углавном ће (осим у случајевима када подаци из сакупљача долазе у великом броју) бити барем један незаузет радник претходне обраде за прикупљене податке.
Превише процеса прикупљања података (анкетирачи, недоступни анкери, ODBC анкери, HTTP анкери, Јава анкери, пингери, трапери, прокси анкери) заједно са IPMI менаџером, SNMP трапером и радницима претходне обраде могу исцрпети ограничење дескриптора датотеке по процесу за менаџер претходне обраде.
Исцрпљивање ограничења дескриптора датотеке по процесу ће довести до заустављања Zabbix сервера, обично убрзо након покретања, али понекад траје дуже. Да бисте избегли такве проблеме, прегледајте конфигурациону датотеку Zabbix сервера да бисте оптимизовали број истовремених провера и процеса. Поред тога, ако је потребно, проверите и прилагодите системска ограничења да ли је ограничење дескриптора датотеке довољно високо.
Обрада вредности ставке се извршава у више корака (или фаза) од стране више процеса. Ово може проузроковати:
UINT
(ставка за хватање се може користити), зависна ставка има тип вредности TEXT
.Као резултат тога, зависна ставка добија вредност, док главна ставка мења своје стање у НИЈЕ ПОДРЖАНО.
CHAR
користи за главну ставку, онда ће вредност главне ставке бити скраћена у фази синхронизације историје, док ће зависне ставке добити своје вредности од почетне (не скраћене) вредности главне ставке.