Претходна обрада вам омогућава да примените трансформације на примљене вредности ставки пре него што их сачувате у базу података. Ове трансформације/кораке претходне обраде извршава Zabbix сервер или прокси (ако се ставке прате путем проксија).
Ова функција подржава различите случајеве употребе, као што су:
За ставку се може конфигурисати један или више корака претходне обраде. Ови кораци се извршавају редоследом којим су конфигурисани.
Ако корак претходне обраде не успе, ставка постаје неподржана. Ово се може избећи обрадом грешака Прилагођено при неуспеху (доступно за већину трансформација), што вам омогућава да одбаците вредности или подесите прилагођене вредности.
За ставке дневника, метаподаци дневника (без вредности) ће увек ресетовати стање ставке као неподржане, чинећи је поново подржаном. Ово се дешава чак и ако се почетна грешка догодила након пријема вредности дневника од агента.
Све вредности прослеђене претходној обради се иницијално третирају као стрингови. Конверзија у жељени тип вредности (као што је дефинисано у конфигурацији ставке) се врши на крају цевовода претходне обраде. Међутим, одређени кораци претходне обраде могу покренути раније конверзије, ако је потребно. За детаљне техничке информације, погледајте Детаљи претходне обраде.
Да бисте били сигурни да ваша конфигурација претходне обраде функционише како се очекује, можете је тестирати.
Погледајте такође: Примери претходне обраде
Кораци претходне обраде су дефинисани на картици Претходна обрада ставке конфигурација образац.
Кликните на Додај да бисте изабрали подржану трансформацију.
Поље Врста информација је приказано на дну таб када је дефинисан бар један корак претходне обраде. Ако је потребно, јесте могуће је променити врсту информација без напуштања Картица Претходна обрада. Погледајте Креирање ставке за детаљан опис параметара.
Све подржане трансформације су наведене у наставку. Кликните на назив трансформације да бисте видели све детаље о њој.
Name | Description | Type |
---|---|---|
Regular expression | Ускладите вредност са регуларним изразом и замените је потребним резултатом. | Текст |
Replace | Пронађите стринг за претрагу и замените га другим (или ничим). | |
Trim | Уклоните наведене знакове са почетка и краја вредности. | |
Right trim | Уклоните наведене знакове са краја вредности. | |
Left trim | Уклоните наведене знакове са почетка вредности. | |
XML XPath | Издвојите вредност или фрагмент из XML података користећи XPath функционалност. | Структурирани подаци |
JSON Path | Издвоји вредност или фрагмент из JSON података користећи JSONPath функционалност. | |
CSV to JSON | Конвертуј податке CSV датотеке у JSON формат. | |
XML to JSON | Конвертуј податке у XML формату у JSON. | |
SNMP walk value | Издвоји вредност према наведеном OID/MIB имену и примени опције форматирања. | SNMP |
SNMP walk to JSON | Конвертуј SNMP вредности у JSON. | |
SNMP get value | Примени опције форматирања на SNMP вредност за добијање. | |
Custom multiplier | Помножите вредност са наведеним целим бројем или вредношћу са покретним зарезом. | Аритметика |
Simple change | Израчунајте разлику између тренутне и претходне вредности. | Промена |
Change per second | Израчунајте брзину промене вредности (разлике између тренутне и претходне вредности) у секунди. | |
Boolean to decimal | Претворите вредност из буловог формата у децимални. | Бројни системи |
|Octal to decimal|Претворите вредност из окталног формата у децимални.|^| |Hexadecimal to decimal|Претворите вредност из хексадецималног формата у децимални.|^| |JavaScript|Унесите ЈаваСкрипт код.|Прилагођени скриптови| |[In range]](#inrange)|Дефинишите опсег у коме вредност треба да буде.|Валидација| |Matches regular expression|Наведите регуларни израз са којим се вредност мора подударати.|^| |Does not match regular expression|Наведите регуларни израз са којим се вредност не сме подударати.|^| |[Check for error in JSON]](#errorinjson)|Провери поруку о грешци на нивоу апликације која се налази на JSONPath.|^| |Check for error in XML|Провери поруку о грешци на нивоу апликације која се налази на XPath.|^| |Check for error using a regular expression|Провери поруку о грешци на нивоу апликације користећи регуларни израз.|^| |Check for not supported value|Провери да ли се ниједна вредност ставке не може преузети.|^| |Discard unchanged|Одбаци вредност ако се није променила.|Успоравање| |Discard unchanged with heartbeat|Одбаци вредност ако се није променила у дефинисаном временском периоду.|^| |[Prometheus pattern]](#prometheus)|Користите следећи упит да бисте извукли потребне податке из Прометеус метрике.|Прометеус| |Prometheus to JSON|Конвертујте потребне Прометеус метрике у JSON.|^|
Имајте на уму да за кораке претходне обраде Промена и Успоравање, Zabbix мора да запамти последњу вредност да би израчунао/упоредио нову вредност како је потребно. Ове претходне вредности обрађује менаџер претходне обраде. Ако се Zabbix сервер или прокси поново покрене или дође до било какве промене у корацима претходне обраде, последња вредност одговарајуће ставке се ресетује, што резултира:
Ускладите вредност са регуларним изразом и замените је потребним излазом.
Параметри:
Коментари:
Пронађите стринг за претрагу и замените га другим (или ништа).
Параметри:
Коментари:
Уклоните наведене знакове са почетка и краја вредности.
Уклоните наведене знакове са краја вредности.
Уклоните наведене знакове са почетка вредности.
Извуците вредност или фрагмент из XML података користећи XPath функционалност.
Коментари:
Примери:
number(/document/item/value) #will издвојити '10' из <document><item><value>10</value></item></document>
number(/document/item/@attribute) #will издвојити '10' из <document><item attribute="10"></item></document>/document/item #will издвојити '<item><value>10</value></item>' из <document><item><value>10</value></item></document>
Извуците вредност или фрагмент из JSON података помоћу JSONPath функционалност.
Ако означите поље за потврду Прилагођено при неуспеху, могуће је навести прилагођене опције за руковање грешкама: или да одбаците вредност, поставите одређену вредност или поставите одређену поруку о грешци. У случају неуспелог корака претходне обраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
Конвертујте податке CSV датотеке у JSON формат.
За више информација погледајте: Претходна обрада CSV у JSON.
Конвертујте податке у XML формату у JSON.
За више информација погледајте: Правила серијализације.
Ако означите поље за потврду Прилагођено при неуспеху, могуће је навести прилагођене опције за руковање грешкама: или да одбаците вредност, поставите одређену вредност или поставите одређену поруку о грешци. У случају неуспелог корака претходне обраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
Издвоји вредност према наведеном OID/MIB имену и примени опције форматирања:
' '
замењени са ':'
);Ако означите поље за потврду Прилагођено при неуспеху, могуће је навести прилагођене опције за руковање грешкама: или одбацивање вредности, постављање одређене вредности или постављање одређене поруке о грешци. У случају неуспелог корака претходне обраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
Конвертујте SNMP вредности у JSON.
Наведите име поља у JSON-у и одговарајућу SNMP OID путању. Вредности поља ће бити попуњене вредностима у наведеној SNMP OID путањи.
Коментари:
Примените опције форматирања на SNMP вредност за добијање:
' '
замењени са ':'
);Ако означите поље за потврду Прилагођено при неуспеху, могуће је одредити прилагођене опције за руковање грешкама: или одбацити вредност, подесити одређену вредност или подесити одређену поруку о грешци. У случају неуспешног корака претходне обраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
Помножите вредност са наведеним целим бројем или вредношћу са покретним зарезом.
Коментари:
1e+70
; кориснички макрои и LLD макрои; стрингови који садрже макрое, на пример, {#MACRO}e+10
, {$MACRO1}e+{$MACRO2}
. Макрои морају бити цео број или број са покретним зарезом.Израчунајте разлику између тренутне и претходне вредности.
Коментари:
Израчунајте брзину промене вредности (разлике између тренутне и претходне вредности) у секунди.
Коментари:
Претворите вредност из логичког формата у децимални.
Коментари:
Претворите вредност из окталног формата у децимални.
Ако означите поље за потврду Прилагођено при неуспеху, могуће је навести прилагођене опције за руковање грешкама: или да одбаците вредност, поставите одређену вредност или поставите одређену поруку о грешци. У случају неуспелог корака претходне обраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
Претворите вредност из хексадецималног формата у децимални.
Ако означите поље за потврду Прилагођено при неуспеху, могуће је навести прилагођене опције за руковање грешкама: или да одбаците вредност, поставите одређену вредност или поставите одређену поруку о грешци. У случају неуспелог корака претходне обраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
Унесите JavaScript код у модални едитор који се отвара кликом на поље параметра или на икону оловке поред њега.
Коментари:
Дефинишите опсег у коме вредност треба да буде тако што ћете навести минималне/максималне вредности (укључиво).
Коментари:
– Нумеричке вредности су прихваћене (укључујући било који број цифара, опциони децимални део и опциони експоненцијални део, негативне вредности);
- Минимална вредност треба да буде мања од максималне;
- Мора постојати најмање једна вредност;
- Могу се користити кориснички макрои и макрои за откривање ниског нивоа;
- Ако означите поље за потврду Прилагођено при неуспеху, могуће је навести прилагођене опције за руковање грешкама: или да одбаците вредност, поставите одређену вредност или поставите одређену поруку о грешци. У случају неуспелог корака претходне обраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
Наведите регуларни израз са којим вредност мора да одговара.
Ако означите поље за потврду Прилагођено при неуспеху, могуће је навести прилагођене опције за руковање грешкама: или да одбаците вредност, поставите одређену вредност или поставите одређену поруку о грешци. У случају неуспелог корака предобраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
Наведите регуларни израз са којим вредност не сме да се подудара.
Ако означите поље за потврду Прилагођено при неуспеху, могуће је навести прилагођене опције за руковање грешкама: или да одбаците вредност, поставите одређену вредност или поставите одређену поруку о грешци. У случају неуспелог корака претходне обраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
Проверите да ли се порука о грешци на нивоу апликације налази на JSONPath-у. Зауставите обраду ако је успела и порука није празна; у супротном, наставите са обрадом са вредношћу која је била пре овог корака претходне обраде.
Коментари:
Проверите да ли се порука о грешци на нивоу апликације налази на XPath-у. Зауставите обраду ако је успела и порука није празна; у супротном, наставите са обрадом са вредношћу која је била пре овог корака претходне обраде.
Коментари:
Проверите да ли постоји порука о грешци на нивоу апликације користећи регуларни израз. Зауставите обраду ако је успела и порука није празна; у супротном, наставите са обрадом са вредношћу која је била пре овог корака предобрадe.
Параметри:
Коментари:
Провери да ли се вредност ставке не може преузети. Наведи како треба обрадити грешку, на основу прегледа враћене поруке о грешци.
Параметри:
Коментари:
Одбаците вредност ако се није променила.
Коментари:
Одбаците вредност ако се није променила у дефинисаном временском периоду (у секундама).
Коментари:
– Подржане су позитивне целобројне вредности за одређивање секунди (минимално – 1 секунда);
– Могу се користити временски суфикси (нпр. 30s, 1m, 2h, 1d);
- Могу се користити кориснички макрои и макрои за откривање ниског нивоа;
- Ако је вредност одбачена, она се не чува у бази података и Zabbix сервер нема сазнања да је ова вредност примљена. Изрази окидача неће бити процењени, као резултат тога, неће бити креирани/решени никакви проблеми за повезане окидаче. Функције ће радити само на основу података који су стварно сачувани у бази података. Пошто се трендови граде на основу података у бази података, ако нема сачуване вредности за сат времена, неће бити ни података о трендовима за тај сат.
- Само једна опција пригушења може бити наведена по ставци.
Користите следећи упит да бисте издвојили потребне податке из Prometheus метрике.
Погледајте Prometheus провере за више детаља.
Претворите потребне Prometheus метрике у JSON.
Погледајте Prometheus провере за више детаља.
Кориснички макрои и кориснички макрои са контекст су подржани у:
Контекст макроа се игнорише када се макро замени његовом вредношћу. Вредност макроа је уметнута у код каква јесте, није је могуће додати додатно избегавање пре постављања вредности у JavaScript код. Имајте на уму да то у неким случајевима може изазвати грешке у JavaScript-у.
Погледајте тестирање претпроцесирања.