Претходна обрада вам омогућава да примените трансформације на примљене вредности ставки пре него што их сачувате у бази података. Ове трансформације/кораке претходне обраде изводи 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 | Унесите JavaScript код. | Прилагођене скрипте |
In range | Дефинишите опсег у коме вредност треба да буде. | Провера ваљаности |
Matches regular expression | Наведите регуларни израз са којим вредност мора да се подудара. | |
Does not match regular expression | Наведите регуларни израз коме вредност не сме да се подудара. | |
Check for error in JSON | Провери поруку о грешци на нивоу апликације која се налази на 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 |
Prometheus to JSON | Конвертујте потребне Prometheus метрике у JSON. |
Имајте на уму да за кораке претходне обраде Промена и Пригушивање, Zabbix мора да запамти последњу вредност да би израчунао/упоредио нову вредност по потреби. Овим претходним вредностима се рукује претпроцесом менаџер. Ако се Zabbix сервер или прокси поново покрене или дође до било какве промене направљено до корака предобраде, последња вредност одговарајуће ставке је ресетовање, што резултира:
Повежите вредност са регуларним изразом и замените је потребним излазом.
Параметри:
Коментари:
– Ако се не подудара са улазном вредношћу, ставка неће бити подржана;
- Регуларни израз подржава екстракцију максимално 10 ухваћених група са \N секвенцом;
- Ако означите поље за потврду Прилагођено при неуспеху, могуће је навести прилагођене опције за руковање грешкама: или да одбаците вредност, поставите одређену вредност или поставите одређену поруку о грешци. У случају неуспелог корака претходне обраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
- Погледајте одељак регуларни изрази за неке постојеће примере.
Пронађите стринг за претрагу и замените га другим (или ништа).
Параметри:
Коментари:
Уклоните наведене знакове са почетка и краја вредности.
Уклоните наведене знакове са краја вредности.
Уклоните наведене знакове са почетка вредности.
Извуците вредност или фрагмент из 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 путањи.
Коментари:
Издвоји вредност према наведеном OID/MIB имену и примени опције форматирања:
' '
замењује са ':'
);Ако означите поље за потврду Прилагођено при неуспеху, могуће је навести прилагођене опције за руковање грешкама: или да одбаците вредност, поставите одређену вредност или поставите одређену поруку о грешци. У случају неуспелог корака претходне обраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
Помножите вредност са наведеним целим бројем или вредношћу са покретним зарезом.
Коментари:
1е+70
; кориснички макрои и LLD макрои; стрингови који укључују макрое, на пример, {#MACRO}e+10
, {$MACRO1}e+{$MACRO2}
. Макрои морају да се раздвоје на цео број или број са покретним зарезом.Израчунајте разлику између тренутне и претходне вредности.
Коментари:
Израчунајте промену вредности (разлика између тренутне и претходне вредности) брзине у секунди.
Коментари:
Претворите вредност из логичког формата у децимални.
Коментари:
Претворите вредност из окталног формата у децимални.
Ако означите поље за потврду Прилагођено при неуспеху, могуће је навести прилагођене опције за руковање грешкама: или да одбаците вредност, поставите одређену вредност или поставите одређену поруку о грешци. У случају неуспелог корака претходне обраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
Претворите вредност из хексадецималног формата у децимални.
Ако означите поље за потврду Прилагођено при неуспеху, могуће је навести прилагођене опције за руковање грешкама: или да одбаците вредност, поставите одређену вредност или поставите одређену поруку о грешци. У случају неуспелог корака претходне обраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
Унесите JavaScript код у модални уређивач који се отвара када кликнете на поље параметара или на икону оловке поред њега.
Коментари:
– Доступна дужина JavaScript-а зависи од коришћене базе података;
– За више информација погледајте: предобрада Javascript.
Дефинишите опсег у коме вредност треба да буде тако што ћете навести минималне/максималне вредности (укључиво).
Коментари:
– Нумеричке вредности су прихваћене (укључујући било који број цифара, опциони децимални део и опциони експоненцијални део, негативне вредности);
- Минимална вредност треба да буде мања од максималне;
- Мора постојати најмање једна вредност;
- Могу се користити кориснички макрои и макрои за откривање ниског нивоа;
- Ако означите поље за потврду Прилагођено при неуспеху, могуће је навести прилагођене опције за руковање грешкама: или да одбаците вредност, поставите одређену вредност или поставите одређену поруку о грешци. У случају неуспелог корака претходне обраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
Наведите регуларни израз са којим вредност мора да одговара.
Ако означите поље за потврду Прилагођено при неуспеху, могуће је навести прилагођене опције за руковање грешкама: или да одбаците вредност, поставите одређену вредност или поставите одређену поруку о грешци. У случају неуспелог корака предобраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
Наведите регуларни израз са којим вредност не сме да се подудара.
Ако означите поље за потврду Прилагођено при неуспеху, могуће је навести прилагођене опције за руковање грешкама: или да одбаците вредност, поставите одређену вредност или поставите одређену поруку о грешци. У случају неуспелог корака претходне обраде, ставка неће постати неподржана ако је изабрана опција за одбацивање вредности или постављање одређене вредности.
Проверите да ли се порука о грешци на нивоу апликације налази на JSONPath-у. Зауставите обраду ако је успела и порука није празна; у супротном, наставите са обрадом са вредношћу која је била пре овог корака претходне обраде.
Коментари:
Проверите да ли се порука о грешци на нивоу апликације налази на XPath-у. Зауставите обраду ако је успела и порука није празна; у супротном, наставите са обрадом са вредношћу која је била пре овог корака претходне обраде.
Коментари:
Проверите да ли постоји порука о грешци на нивоу апликације користећи регуларни израз. Зауставите обраду ако је успела и порука није празна; у супротном, наставите са обрадом са вредношћу која је била пре овог корака предобрадe.
Параметри:
Коментари:
Проверите да ли није могуће преузети вредност ставке. Наведите како треба да се обради грешка на основу прегледа враћене поруке о грешци.
Параметри:
Коментари:
Одбаците вредност ако се није променила.
Коментари:
Одбаците вредност ако се није променила у дефинисаном временском периоду (у секундама).
Коментари:
– Подржане су позитивне целобројне вредности за одређивање секунди (минимално – 1 секунда);
– Могу се користити временски суфикси (нпр. 30s, 1m, 2h, 1d);
- Могу се користити кориснички макрои и макрои за откривање ниског нивоа;
- Ако је вредност одбачена, она се не чува у бази података и Zabbix сервер нема сазнања да је ова вредност примљена. Изрази окидача неће бити процењени, као резултат тога, неће бити креирани/решени никакви проблеми за повезане окидаче. Функције ће радити само на основу података који су стварно сачувани у бази података. Пошто се трендови граде на основу података у бази података, ако нема сачуване вредности за сат времена, неће бити ни података о трендовима за тај сат.
- Само једна опција пригушења може бити наведена по ставци.
Користите следећи упит да бисте издвојили потребне податке из Prometheus метрике.
Погледајте Prometheus провере за више детаља.
Претворите потребне Prometheus метрике у JSON.
Погледајте Prometheus провере за више детаља.
Кориснички макрои и кориснички макрои са контекст су подржани у:
Контекст макроа се игнорише када се макро замени његовом вредношћу. Вредност макроа је уметнута у код каква јесте, није је могуће додати додатно избегавање пре постављања вредности у JavaScript код. Имајте на уму да то у неким случајевима може изазвати грешке у JavaScript-у.
Погледајте тестирање претпроцесирања.