This is a translation of the original English documentation page. Help us make it better.

4 Функције историје

Све функције наведене овде су подржане у:

Функције су наведене без додатних информација. Кликните на функцију да бисте видели све детаље.

Function Description
change Износ разлике између претходне и најновије вредности.
changecount Број промена између суседних вредности у оквиру дефинисаног периода евалуације.
count Број вредности у оквиру дефинисаног периода евалуације.
countunique Број јединствених вредности у оквиру дефинисаног периода евалуације.
find Пронађи подударање вредности у оквиру дефинисаног периода евалуације.
first Прва (најстарија) вредност у оквиру дефинисаног периода евалуације.
fuzzytime Провери колико се време пасивног агента разликује од времена Zabbix сервера/проксија.
last Најновија вредност.
logeventid Провери да ли се ИД догађаја последњег уноса у дневник подудара са регуларним израз.
logseverity Озбиљност последњег уноса у логу.
logsource Провери да ли се извор последњег уноса у логу подудара са регуларним изразом.
monodec Провери да ли је дошло до монотоног смањења вредности.
monoinc Провери да ли је дошло до монотоног повећања вредности.
nodata Провери да ли нису примљени подаци.
percentile P-ти перцентил периода, где је P (проценат) одређен трећим параметром.
rate Просечна брзина повећања по секунди у монотоно растућем бројачу унутар дефинисаног временског периода.
Заједнички параметри
  • /host/key је заједнички обавезни први параметар за функције које се референцирају на историју ставке домаћина
  • (sec|#num)<:time shift> је заједнички други параметар за функције које упућују на историју ставке домаћина, где је: - sec - максимум периода евалуације у секундама (могу се користити време суфикси) или - #num - максимум опсег евалуације у најновијем прикупљању вредности (ако им претходи хеш ознака) - time shift (опционо) омогућава померање тачке евалуације назад у време. Погледајте више детаља за навођење временског померања.

Детаљи функције

Неке опште напомене о параметрима функције:

  • Параметри функције су одвојени зарезом
  • Опциони параметри функције (или делови параметара) су означени са < >
  • Параметри специфични за функцију описани су уз сваку функцију
  • /host/key и (sec|#num)<:time shift> параметри никада не смеју бити под наводницима
change(/host/key)

Износ разлике између претходне и најновије вредности.
Подржани типови вредности: Float, Integer, String, Text, Log.
За стрингове враћа: 0 - вредности су једнаке; 1 - вредности се разликују.

Параметри: погледајте заједнички параметри.

Коментари:

  • Нумеричка разлика ће бити израчуната, као што се види са овим долазним примерима вредности ('previous' и 'latest' вредност = разлика):
    '1' и '5' = +4
    '3' и '1' = -2
    '0' и '-2.5' = -2.5
  • Погледајте такође: abs за поређење.

Примери:

change(/host/key)>10
changecount(/host/key,(sec|#num)<:time shift>,<mode>)

Број промена између суседних вредности у оквиру дефинисаног периода евалуације.
Подржани типови вредности: Float, Integer, String, Text, Log.

Параметри:

  • Погледајте заједничке параметре;
  • mode (мора бити под двоструким наводницима) - могуће вредности: all - рачунати све промене (подразумевано); dec - број се смањује; inc - број се повећава

За ненумеричке типове вредности, параметар mode се занемарује.

Примери:

changecount(/host/key,1w) #the number of value changes for the last week until now
       changecount(/host/key,#10,"inc") #the number of value increases (relative to the adjacent value) among the last 10 values
       changecount(/host/key,24h,"dec") #the number of value decreases (relative to the adjacent value) for the last 24 hours until now
count(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

Број вредности у оквиру дефинисаног периода евалуације.
Подржани типови вредности: Float, Integer, String, Text, Log.

Параметри:

  • Види common parameters;
  • operator (мора бити под двоструким наводницима). Подржани оператори:
    eq - једнако (подразумевано за цео број, број са покретним флуктуатором)
    ne - није једнако
    gt - веће
    ge - веће или једнако
    lt - мање
    le - мање или једнако
    like (подразумевано за стринг, текст, лог) - подудара се ако садржи шаблон (разликује велика и мала слова)
    bitand - по биту И
    regexp - подударање регуларног израза датог у pattern, осетљиво на велика и мала слова
    iregexp - подударање регуларног израза датог у pattern, неосетљиво на велика и мала слова
  • pattern - потребан шаблон (аргументи стрингова морају бити под двоструким наводницима).

Коментари:

  • Float ставке се подударају са прецизношћу 2.22e-16;
  • like није подржан као оператор за целобројне вредности;
  • like и bitand нису подржани као оператори за вредности типа float;
  • За стрингове, текст и логаритамске вредности подржани су само оператори eq, ne, like, regexp и iregexp;
  • Са bitand као оператором, четврти параметар pattern може бити наведен као два броја, одвојена знаком '/': број_за_упоређивање_са/маском. count() израчунава "bitwise AND" из вредности и маске и упоређује резултат са бројем_за_упоређивање_са. Ако је резултат "bitwise AND" једнак броју_за_упоређивање_са, вредност се рачуна.
    Ако су број_за_упоређивање_са и маска једнаки, потребно је навести само маску (без '/').
  • Са * regexp* или * iregexp* као оператором, четврти параметар шаблон може бити обичан или глобални (почиње са '@') регуларни израз. У случају глобалних регуларних израза, осетљивост на велика и мала слова се наслеђује из подешавања глобалних регуларних израза. Ради подударања регуларних израза, вредности са покретним зарезом ће увек бити представљене са 4 децималне цифре после '.'. Такође имајте на уму да за велике бројеве разлика у децималном (сачуваном у бази података) и бинарном (користи га Zabbix сервер) представљању може утицати на четврту децималну цифру.

Примери:

count(/host/key,10m) #вредности за последњих 10 минута до сада count(/host/key,10m,"like","error") #број вредности за последњих 10 минута до сада које садрже 'error' count(/host/key,10m,,12) #број вредности за последњих 10 минута до сада које су једнаке '12' count(/host/key,10m,"gt",12) #број вредности за последњих 10 минута до сада које су преко '12' count(/host/key,#10,"gt",12) #број вредности у последњих 10 вредности до сада које су преко '12' count(/host/key,10m:now-1d,"gt",12) #број вредности између 24 сата и 10 минута и 24 сата од сада које су биле преко '12' count(/host/key,10m,"bitand","6/7") #број вредности за последњих 10 минута до сада које имају '110' (у бинарном облику) у 3 најмање значајна бита count(/host/key,10m:now-1d) #број вредности између 24 сата и 10 минута и 24 сата од сада

countunique(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

Број јединствених вредности унутар дефинисаног периода евалуације.
Подржани типови вредности: Float, Integer, String, Text, Log.

Параметри:

  • Види common parameters;
  • operator (мора бити под двоструким наводницима). Подржани оператори:
    eq - једнако (подразумевано за цео број, број са покретним флуктуатором)
    ne - није једнако
    gt - веће
    ge - веће или једнако
    lt - мање
    le - мање или једнако
    like (подразумевано за стринг, текст, лог) - подудара се ако садржи шаблон (разликује велика и мала слова)
    bitand - по биту И
    regexp - подударање регуларног израза датог у pattern, осетљиво на велика и мала слова
    iregexp - подударање регуларног израза датог у pattern, неосетљиво на велика и мала слова
  • pattern - потребан шаблон (аргументи стрингова морају бити под двоструким наводницима).

Коментари:

  • Float ставке се подударају са прецизношћу 2.22e-16;
  • like није подржан као оператор за целобројне вредности;
  • like и bitand нису подржани као оператори за вредности типа float;
  • За стрингове, текст и логаритамске вредности подржани су само оператори eq, ne, like, regexp и iregexp;
  • Са bitand као оператором, четврти параметар pattern може бити наведен као два броја, одвојена знаком '/': број_за_упоређивање_са/маском. countunique() израчунава "bitwise AND" из вредности и маске и упоређује резултат са бројем_за_упоређивање_са. Ако је резултат "bitwise AND" једнак броју_за_упоређивање_са, вредност се рачуна.
    Ако су број_за_упоређивање_са и маска једнаки, потребно је навести само маску (без '/').
  • Са * regexp* или * iregexp* као оператором, четврти параметар шаблон може бити обичан или глобални (почиње са '@') регуларни израз. У случају глобалних регуларних израза, осетљивост на велика и мала слова се наслеђује из подешавања глобалних регуларних израза. Ради подударања регуларних израза, вредности са покретним зарезом ће увек бити представљене са 4 децималне цифре после '.'. Такође имајте на уму да за велике бројеве разлика у децималном (сачуваном у бази података) и бинарном (који користи Zabbix сервер) представљању може утицати на четврту децималну цифру.

Примери:

countunique(/host/key,10m) #број јединствених вредности за последњих 10 минута до сада countunique(/host/key,10m,"like","error") #број јединствених вредности за последњих 10 минута до сада које садрже 'error' countunique(/host/key,10m,,12) #број јединствених вредности за последњих 10 минута до сада које су једнаке '12' countunique(/host/key,10m,"gt",12) #број јединствених вредности за последњих 10 минута до сада које су преко '12' countunique(/host/key,#10,"gt",12) #број јединствених вредности у последњих 10 вредности до сада које су преко '12' countunique(/host/key,10m:now-1d,"gt",12) #број јединствених вредности између 24 сата и 10 минута и пре 24 сата од сада које су биле преко '12' countunique(/host/key,10m,"bitand","6/7") #број јединствених вредности за последњих 10 минута до сада које имају '110' (у бинарном коду) у 3 најмање значајна бита countunique(/host/key,10m:now-1d) #број јединствених вредности између 24 сата и 10 минута и пре 24 сата од сада

find(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

Пронађи подударање вредности унутар дефинисаног периода евалуације.
Подржани типови вредности: Float, Integer, String, Text, Log.
Враћа: 1 - пронађено; 0 - у супротном.

Параметри:

  • Види уобичајени параметри;
  • sec или #num (опционо) - подразумевано се враћа на најновију вредност ако није наведена
  • operator (мора бити под двоструким наводницима). Подржани оператори:
    eq - једнако (подразумевано за цео број, број са покретним бројем)
    ne - није једнако
    gt - веће
    ge - веће или једнако
    lt - мање
    le - мање или једнако
    like (подразумевано за стринг, текст, лог) - подудара се ако садржи стринг дат у pattern (разликује велика и мала слова)
    bitand - по биту AND
    regexp - подударање регуларног израза датог у pattern, осетљиво на велика и мала слова
    iregexp - подударање регуларног израза датог у pattern, које није осетљиво на велика и мала слова
  • pattern - потребан образац (аргументи стрингова морају бити под двоструким наводницима); Perl компатибилан регуларни израз (PCRE) регуларни израз ако је operator regexp, iregexp.

Коментари:

  • Ако се обрађује више од једне вредности, враћа се '1' ако постоји барем једна одговарајућа вредност;
  • like није подржан као оператор за целобројне вредности;
  • like и bitand нису подржани као оператори за вредности са покретним зарезом;
  • За стринг, текст и логаритамске вредности подржани су само оператори eq, ne, like, regexp и iregexp;
  • Са regexp или iregexp као оператором, четврти параметар pattern може бити обичан или глобални (почиње са '@') регуларни израз. У случају глобалних регуларних израза, осетљивост на велика и мала слова се наслеђује из подешавања глобалних регуларних израза.

Пример:

find(/host/key,10m,"like","error") #пронађи вредност која садржи 'error' у последњих 10 минута до сада

first(/host/key,sec<:time shift>)

Прва (најстарија) вредност у дефинисаном периоду евалуације.
Подржани типови вредности: Float, Integer, String, Text, Log.

Параметри:

Такође погледајте last().

Пример:

first(/host/key,1h) #retrieve the oldest value within the last hour until now
firstclock(/host/key,sec<:time shift>)

The timestamp of the oldest value within the defined evaluation period.
Supported value types: Float, Integer, String, Text, Log.

Parameters:

The function fails with an error if no data has been collected in the given period.

See also lastclock().

Example:

firstclock(/host/key,1h) #retrieve the timestamp of the oldest value within the last hour until now
       firstclock(/host/key,1h:now-24h) #retrieve the timestamp of the oldest value within the last hour a day ago
fuzzytime(/host/key,sec)

Проверите колико се време пасивног агента разликује од времена Zabbix сервера/проксија.
Подржани типови вредности: Float, Integer.
Враћа: 1 - разлика између вредности пасивне ставке (као временска ознака) и временске ознаке Zabbix сервера/проксија (сат колекције вредности) је мања или једнака sec секунди; 0 - у супротном.

Параметри:

Коментари:

  • Обично се користи са ставком 'system.localtime' да би се проверило да ли је локално време синхронизовано са локалним временом Zabbix сервера. Напомена да 'system.localtime' мора бити конфигурисано као пасивна провера. - Може се користити и са кључем vfs.file.time[/path/file,modify] да би се проверило да ли датотека није добијала ажурирања дуже време;
  • Ова функција се не препоручује за употребу у сложеним изразима окидача (са више укључених ставки), јер може изазвати неочекиване резултате (временска разлика ће се мерити помоћу најновије метрике), нпр. у fuzzytime(/Host/system.localtime,60s)=0 или last(/Host/trap)<>0.

Пример:

fuzzytime(/host/key,60s)=0 #откривање проблема ако је временска разлика већа од 60 секунди

last(/host/key,<#num<:time shift>>)

Најновија вредност.
Подржани типови вредности: Float, Integer, String, Text, Log.

Параметри:

  • Види common parameters;
  • #num (опционо) - N-та најновија вредност.

Коментари:

  • Имајте на уму да временски период означен хештегом (#N) овде функционише другачије него код многих других функција. На пример: last() је увек једнако last(#1); last(#3) - трећа најновија вредност (не три најновије вредности);
  • Zabbix не гарантује тачан редослед вредности ако постоји више од две вредности у једној секунди у историји;
  • Види такође first().

Пример:

last(/host/key) #преузимање последње вредности last(/host/key,#2) #преузимање претходне вредности last(/host/key,#1) <> last(/host/key,#2) #последња и претходна вредност се разликују

lastclock(/host/key,<#num<:time shift>>)

The timestamp of the Nth most recent value within the defined evaluation period.
Supported value types: Float, Integer, String, Text, Log.

Parameters:

The function fails with an error if no data has been collected in the given period or no Nth value has been collected.

See also firstclock().

Example:

lastclock(/host/key) #retrieve the timestamp of the latest value
       lastclock(/host/key,#2) #retrieve the timestamp of the 2nd latest value
       lastclock(/host/key,#3:now-1d) #retrieve the timestamp of the 3rd latest value a day ago
logeventid(/host/key,<#num<:time shift>>,<pattern>)

Проверите да ли се ID догађаја последњег уноса у евиденцији подудара са регуларним изразом.
Подржани типови вредности: Log.
Враћа: 0 - не одговара; 1 - одговара.

Параметри:

logseverity(/host/key,<#num<:time shift>>)

Озбиљност дневника последњег уноса у дневник.
Подржани типови вредности: Log.
Враћа: 0 - подразумевана озбиљност; N - озбиљност (цео број, корисно за Windows догађаје: 1 - Информације, 2 - Упозорење, 4 - Грешка, 7 - Неуспела провера, 8 - Успешна провера, 9 - Критична, 10 - Детаљно).

Параметри:

Zabbix преузима озбиљност евиденције из поља Информације Windows евиденције догађаја.

logsource(/host/key,<#num<:time shift>>,<pattern>)

Проверава да ли се извор дневника последњег уноса у дневник подудара са регуларним изразом.
Подржани типови вредности: Log.
Враћа: 0 - не подудара се; 1 - подудара се.

Параметри:

  • Погледајте уобичајени параметри;
  • #num (опционо) - N-та најновија вредност;
  • pattern (опционо) - регуларни израз који описује потребни образац, стил Perl Compatible Regular Expression (PCRE) (аргументи низа морају бити под двоструким наводницима).

Обично се користи за Windows дневнике догађаја.

Пример:

logsource(/host/key,,"VMware Server")
logtimestamp(/host/key,<#num<:time shift>>)

The log message timestamp of the Nth most recent log item value.
Supported value types: Log.

Parameters:

Comments:

  • Calculation of time shift is based on the item value clock, not on the log message timestamp;
  • The function fails with an error if:
    • a non-log type item is received;
    • no data has been collected in the given period;
    • no Nth value has been collected;
    • log message does not contain a timestamp value.

Example:

logtimestamp(/host/key) #retrieve the timestamp of the latest log message
       logtimestamp(/host/key,#2) #retrieve the timestamp of the 2nd latest log message
       logtimestamp(/host/key,#3:now-1d) #retrieve the timestamp of the 3rd latest log message a day ago
monodec(/host/key,(sec|#num)<:time shift>,<mode>)

Проверите да ли је дошло до монотоног пада вредности.
Подржани типови вредности: Integer.
Враћа: 1 - ако се сви елементи у временском периоду континуирано смањују; 0 - иначе.

Параметри:

  • Погледајте заједнички параметри;
  • mode (мора бити под двоструким наводницима) - weak (свака вредност је мања или иста као претходна; подразумевано) или * strict* (свака вредност је смањена).

Пример:

monodec(/Host1/system.swap.size[all,free],60s) + monodec(/Host2/system.swap.size[all,free],60s) + monodec(/Host3/system.swap.size[all,free],60s) #calculate in how many hosts there has been a decrease in free swap size
monoinc(/host/key,(sec|#num)<:time shift>,<mode>)

Проверите да ли је дошло до монотоног повећања вредности.
Подржани типови вредности: * Integer*.
Враћа: 1 - ако се сви елементи у временском периоду континуирано повећавају; 0 - иначе.

Параметри:

  • Погледајте заједнички параметри;
  • mode (мора бити под двоструким наводницима) - weak (свака вредност је већа или иста као претходна; подразумевано) или * strict* (свака вредност је повећана).

Пример:

monoinc(/Host1/system.localtime,#3,"strict")=0 #check if the system local time has been increasing consistently
nodata(/host/key,sec,<mode>)

Проверава да ли су примљени подаци.
Подржани типови вредности: Integer, Float, Character, Text, Log.
Враћа: 1 - ако нису примљени подаци током дефинисаног временског периода; 0 - у супротном.

Параметри:

  • Види уобичајени параметри;
  • sec - период не сме бити мањи од 30 секунди јер процес синхронизације историје израчунава ову функцију само сваких 30 секунди; nodata(/host/key,0) није дозвољено.
  • mode - ако је подешено на strict (под двоструким наводницима), ова функција неће бити осетљива на доступност проксија (погледајте коментаре за детаље).

Коментари:

  • окидачи 'nodata' које прати прокси су, подразумевано, осетљиви на доступност проксија - ако прокси постане недоступан, окидачи 'nodata' се неће активирати одмах након успостављања везе, већ ће прескочити податке током периода одлагања. Имајте на уму да се за пасивне проксије супресија активира ако се веза успостави након више од 15 секунди, а не мање од 2 секунде касније. За активне проксије супресија се активира ако се веза успостави након више од 15 секунди. Да бисте искључили осетљивост на доступност проксија, користите трећи параметар, нпр.: nodata(/host/key,5m,"strict"); У овом случају, функција ће се покренути чим прође период евалуације (пет минута) без података.
  • Ова функција ће приказати грешку ако, у периоду 1. параметра:
    - нема података и Zabbix сервер је поново покренут
    - нема података и одржавање је завршено
    - нема података и ставка је додата или поново омогућена
  • Грешке се приказују у колони Инфо у окидачу конфигурација;
  • Ова функција можда неће исправно радити ако постоје временске разлике између Zabbix сервера, проксија и агента. Погледајте такође: Захтев за синхронизацију времена;
  • функција nodata() не може се користити у изразу сама по себи; Барем једна функција из друге групе, која референцира ставку домаћина, мора бити укључена у израз (осим функција датума и времена). За детаљне информације о томе како функција nodata() ради унутар израза, погледајте Време израчунавања.
percentile(/host/key,(sec|#num)<:time shift>,percentage)

P-ти перцентил периода, где је P (проценат) одређен трећим параметром.
Подржани типови вредности: Float, Integer.

Параметри:

rate(/host/key,sec<:time shift>)

Просечна стопа повећања монотоно растућег бројача у секунди у оквиру дефинисаног временског периода.
Подржани типови вредности: Float, Integer.

Параметри:

Функционално одговара 'стопа' од PromQL.

Пример:

rate(/host/key,30s) #if the monotonic increase over 30 seconds is 20, this function will return 0.67.

Погледајте све подржане функције.