Претходна обрада вам омогућава да примените трансформације на примљене вредности ставки пре него што их сачувате у базу података. Ове трансформације/кораке претходне обраде извршава Zabbix сервер или прокси (ако се ставке прате путем проксија).
Ова функција подржава различите случајеве употребе, као што су:
За ставку се може конфигурисати један или више корака претходне обраде. Ови кораци се извршавају редоследом којим су конфигурисани.
Ако корак претходне обраде не успе, ставка постаје неподржана. Ово се може избећи обрадом грешака Прилагођено при неуспеху (доступно за већину трансформација), што вам омогућава да одбаците вредности или подесите прилагођене вредности.
За ставке дневника, метаподаци дневника (без вредности) ће увек ресетовати стање ставке као неподржане, чинећи је поново подржаном. Ово се дешава чак и ако се почетна грешка догодила након пријема вредности дневника од агента.
Све вредности прослеђене претходној обради се иницијално третирају као стрингови. Конверзија у жељени тип вредности (као што је дефинисано у конфигурацији ставке) се врши на крају цевовода претходне обраде. Међутим, одређени кораци претходне обраде могу покренути раније конверзије, ако је потребно. За детаљне техничке информације, погледајте Детаљи претходне обраде.
Да бисте били сигурни да ваша конфигурација претходне обраде функционише како се очекује, можете је тестирати.
Погледајте такође: Примери претходне обраде
Кораци претходне обраде су дефинисани на картици Претходна обрада ставке конфигурација образац.
Кликните на Додај да бисте изабрали подржану трансформацију.
Поље Врста информација је приказано на дну таб када је дефинисан бар један корак претходне обраде. Ако је потребно, јесте могуће је променити врсту информација без напуштања Картица Претходна обрада. Погледајте Креирање ставке за детаљан опис параметара.
All supported transformations are listed below. Click on the transformation name to see full details about it.
Name | Description | Type |
---|---|---|
Regular expression | Match the value to the regular expression and replace with the required output. | Text |
Replace | Find the search string and replace it with another (or nothing). | |
Trim | Remove specified characters from the beginning and end of the value. | |
Right trim | Remove specified characters from the end of the value. | |
Left trim | Remove specified characters from the beginning of the value. | |
XML XPath | Extract value or fragment from XML data using XPath functionality. | Structured data |
JSON Path | Extract value or fragment from JSON data using JSONPath functionality. | |
CSV to JSON | Convert CSV file data into JSON format. | |
XML to JSON | Convert data in XML format to JSON. | |
SNMP walk value | Extract value by the specified OID/MIB name and apply formatting options. | SNMP |
SNMP walk to JSON | Convert SNMP values to JSON. | |
SNMP get value | Apply formatting options to the SNMP get value. | |
Custom multiplier | Multiply the value by the specified integer or floating-point value. | Arithmetic |
Simple change | Calculate the difference between the current and previous value. | Change |
Change per second | Calculate the value change (difference between the current and previous value) speed per second. | |
Boolean to decimal | Convert the value from boolean format to decimal. | Numeral systems |
Octal to decimal | Convert the value from octal format to decimal. | |
Hexadecimal to decimal | Convert the value from hexadecimal format to decimal. | |
JavaScript | Enter JavaScript code. | Custom scripts |
In range | Define a range that a value should be in. | Validation |
Matches regular expression | Specify a regular expression that a value must match. | |
Does not match regular expression | Specify a regular expression that a value must not match. | |
Check for error in JSON | Check for an application-level error message located at JSONPath. | |
Check for error in XML | Check for an application-level error message located at XPath. | |
Check for error using a regular expression | Check for an application-level error message using a regular expression. | |
Check for not supported value | Check if there was an error in retrieving item value. | |
Discard unchanged | Discard a value if it has not changed. | Throttling |
Discard unchanged with heartbeat | Discard a value if it has not changed within the defined time period. | |
Prometheus pattern | Use the following query to extract the required data from Prometheus metrics. | Prometheus |
Prometheus to JSON | Convert the required Prometheus metrics to JSON. |
Note that for Change and Throttling preprocessing steps, Zabbix has to remember the last value to calculate/compare the new value as required. These previous values are handled by the preprocessing manager. If Zabbix server or proxy is restarted or there is any change made to preprocessing steps, the last value of the corresponding item is reset, resulting in:
Ускладите вредност са регуларним изразом и замените је потребним излазом.
Параметри:
Коментари:
Пронађите стринг за претрагу и замените га другим (или ништа).
Параметри:
Коментари:
Уклоните наведене знакове са почетка и краја вредности.
Уклоните наведене знакове са краја вредности.
Уклоните наведене знакове са почетка вредности.
Извуците вредност или фрагмент из 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.
Параметри:
Коментари:
Check if no item value could be retrieved. Specify how the failure should be processed, based on inspecting the returned error message.
Parameters:
Comments:
Одбаците вредност ако се није променила.
Коментари:
Одбаците вредност ако се није променила у дефинисаном временском периоду (у секундама).
Коментари:
– Подржане су позитивне целобројне вредности за одређивање секунди (минимално – 1 секунда);
– Могу се користити временски суфикси (нпр. 30s, 1m, 2h, 1d);
- Могу се користити кориснички макрои и макрои за откривање ниског нивоа;
- Ако је вредност одбачена, она се не чува у бази података и Zabbix сервер нема сазнања да је ова вредност примљена. Изрази окидача неће бити процењени, као резултат тога, неће бити креирани/решени никакви проблеми за повезане окидаче. Функције ће радити само на основу података који су стварно сачувани у бази података. Пошто се трендови граде на основу података у бази података, ако нема сачуване вредности за сат времена, неће бити ни података о трендовима за тај сат.
- Само једна опција пригушења може бити наведена по ставци.
Користите следећи упит да бисте издвојили потребне податке из Prometheus метрике.
Погледајте Prometheus провере за више детаља.
Претворите потребне Prometheus метрике у JSON.
Погледајте Prometheus провере за више детаља.
Кориснички макрои и кориснички макрои са контекст су подржани у:
Контекст макроа се игнорише када се макро замени његовом вредношћу. Вредност макроа је уметнута у код каква јесте, није је могуће додати додатно избегавање пре постављања вредности у JavaScript код. Имајте на уму да то у неким случајевима може изазвати грешке у JavaScript-у.
Погледајте тестирање претпроцесирања.