Овај одељак пружа детаље о вредности предобраде корака ставке. Предобрада вредности ставке омогућава да се дефинишу и изврше правила трансформације за примљене вредности ставкe.
Предобрада управља процес менаџера за претходну обраду заједно са радницима за предобрадy који обављају кораке претходне обраде. Све вредности (са или без претходне обраде) од различитих сакупљача података пролазе кроз менаџер за предобраду пре него што се додају у кеш историје. IPC комуникација заснована на сокету се користи између сакупљача података (полери, трапери, итд.) и процеса предобраде. Или Zabbix сервер или Zabbix прокси (за ставке које надгледа проки) обављају кораке предобраде.
To visualize the data flow from data source to the Zabbix database, we can use the following simplified diagram:
The diagram above shows only processes, objects and actions related to item value processing in a simplified form. The diagram does not show conditional direction changes, error handling or loops. The local data cache of the preprocessing manager is not shown either because it doesn't affect the data flow directly. The aim of this diagram is to show processes involved in the item value processing and the way they interact.
An item can change its state to NOT SUPPORTED while preprocessing is performed if any of preprocessing steps fail.
An item can change its state to NOT SUPPORTED if data normalization fails (for example, when a textual value cannot be converted to number).
Претходна обрада података се врши у следећим корацима:
Имајте на уму да је на дијаграму претходна обрада главне ставке мало поједностављена прескакањем кеширања претходне обраде.
Ред за претходну обраду је организован као:
Кеширање предпроцесирања је уведено да би се побољшале перформансе препроцесирања за више зависних ставки које имају сличне кораке препроцесирања (што је уобичајен LLD исход).
Кеширање се врши претходном обрадом једне зависне ставке и поновним коришћењем неких интерних података за претпроцесирање за остале зависне ставке. Кеш за претходну обраду је подржан само за први корак претходне обраде следећих типова:
[?(@.path == "value) ")]
)Конфигурациони фајл Zabbix сервера омогућава корисницима да подесе број нити радника претходне обраде. Параметар конфигурације StartPreprocessors треба користити за подешавање броја претходно покренутих инстанци радника претходне обраде, који би требало да се подудара барем са бројем доступних језгара процесора.
Ако задаци претходне обраде нису ограничени на процесор и укључују честе мрежне захтеве, препоручује се конфигурисање додатних радника. Оптималан број радника претходне обраде може се одредити многим факторима, укључујући број "претходно обрадивих" ставки (ставки које захтевају извршавање било којих корака претходне обраде), број процеса прикупљања података, просечан број корака за претходну обраду ставки итд. Недовољан број радника може довести до велике употребе меморије. За решавање проблема прекомерне употребе меморије на вашој Zabbix инсталацији, погледајте Профилисање прекомерне употребе меморије помоћу tcmalloc.
Али под претпоставком да нема тешких операција претходне обраде попут парсирања великих XML/JSON делова, број радника претходне обраде може се подударати са укупним бројем сакупљача података. На овај начин, углавном ће (осим у случајевима када подаци из сакупљача долазе у великом броју) бити барем један незаузет радник претходне обраде за прикупљене податке.
Превише процеса прикупљања података (анкетирачи, недоступни анкери, ODBC анкери, HTTP анкери, Јава анкери, пингери, трапери, прокси анкери) заједно са IPMI менаџером, SNMP трапером и радницима претходне обраде могу исцрпети ограничење дескриптора датотеке по процесу за менаџер претходне обраде.
Исцрпљивање ограничења дескриптора датотеке по процесу ће довести до заустављања Zabbix сервера, обично убрзо након покретања, али понекад траје дуже. Да бисте избегли такве проблеме, прегледајте конфигурациону датотеку Zabbix сервера да бисте оптимизовали број истовремених провера и процеса. Поред тога, ако је потребно, проверите и прилагодите системска ограничења да ли је ограничење дескриптора датотеке довољно високо.
Обрада вредности ставке се извршава у више корака (или фаза) од стране више процеса. Ово може проузроковати:
UINT
(ставка за хватање се може користити), зависна ставка има тип вредности TEXT
.Као резултат тога, зависна ставка добија вредност, док главна ставка мења своје стање у НИЈЕ ПОДРЖАНО.
CHAR
користи за главну ставку, онда ће вредност главне ставке бити скраћена у фази синхронизације историје, док ће зависне ставке добити своје вредности од почетне (не скраћене) вредности главне ставке.