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

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

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

Function Description
change Износ разлике између претходне и најновије вредности.
changecount Број промена између суседних вредности унутар дефинисаног периода евалуације.
count Број вредности унутар дефинисаног периода евалуације.
countunique Број јединствених вредности унутар дефинисаног периода евалуације.
find Проналажење вредност која се подудара у дефинисаном периоду евалуације.
first Прва (најстарија) вредност унутар дефинисаног периода евалуације.
fuzzytime Провера колико се време пасивног агента разликује од времена Zabbix сервера/проксија.
last Најновија вредност.
logeventid Провера да ли се ID догађаја последњег уноса у евиденцији подудара са регуларним изразом.
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.

Параметри:

  • Погледајте заједнички параметри;
  • оператор (мора бити под двоструким наводницима). Подржани operators:
    eq - једнако (подразумевано за integer, float)
    ne - није једнако
    * gt* - веће од
    ge - веће или једнако
    * lt* - мање од
    * le* - мање или једнако
    like (подразумевано за string, text, log) - одговара ако садржи образац (разликује велика и мала слова)
    bitand - битовско AND
    * regexp* - подударање регуларног израза датог у pattern осетљиво на мала и велика слова
    * iregexp* - подударање регуларног израза датог у pattern неосетљиво на велика и мала слова
  • ** pattern** - захтевани образац (аргументи стрингова морају бити под двоструким наводницима).

Коментари:

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

Примери:

count(/host/key,10m) #the values for the last 10 minutes until now
       count(/host/key,10m,"like","error") #the number of values for the last 10 minutes until now that contain 'error'
       count(/host/key,10m,,12) #the number of values for the last 10 minutes until now that equal '12'
       count(/host/key,10m,"gt",12) #the number of values for the last 10 minutes until now that are over '12'
       count(/host/key,#10,"gt",12) #the number of values within the last 10 values until now that are over '12'
       count(/host/key,10m:now-1d,"gt",12) #the number of values between 24 hours and 10 minutes and 24 hours ago from now that were over '12'
       count(/host/key,10m,"bitand","6/7") #the number of values for the last 10 minutes until now having '110' (in binary) in the 3 least significant bits
       count(/host/key,10m:now-1d) #the number of values between 24 hours and 10 minutes and 24 hours ago from now
countunique(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

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

Параметри:

  • Погледајте заједничке параметре;
  • оператор (мора бити под двоструким наводницима). Подржани operators:
    eq - једнако (подразумевано за integer, float)
    ne - није једнако
    gt - веће од
    * ge* - веће или једнако од
    lt - мање од
    le - мање или једнако од
    like (подразумевано за string, text, log) - одговара ако садржи образац (разликује велика и мала слова)
    bitand - битовско AND
    regexp - подударање регуларног израза датог у узорцу
    ирегекп - подударање регуларног израза датог у pattern
    без обзира на велика и мала слова
  • образац - захтевани образац (аргументи стрингова морају бити под двоструким наводницима).

Коментари:

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

Примери:

countunique(/host/key,10m) #the number of unique values for the last 10 minutes until now
       countunique(/host/key,10m,"like","error") #the number of unique values for the last 10 minutes until now that contain 'error'
       countunique(/host/key,10m,,12) #the number of unique values for the last 10 minutes until now that equal '12'
       countunique(/host/key,10m,"gt",12) #the number of unique values for the last 10 minutes until now that are over '12'
       countunique(/host/key,#10,"gt",12) #the number of unique values within the last 10 values until now that are over '12'
       countunique(/host/key,10m:now-1d,"gt",12) #the number of unique values between 24 hours and 10 minutes and 24 hours ago from now that were over '12'
       countunique(/host/key,10m,"bitand","6/7") #the number of unique values for the last 10 minutes until now having '110' (in binary) in the 3 least significant bits
       countunique(/host/key,10m:now-1d) #the number of unique values between 24 hours and 10 minutes and 24 hours ago from now
find(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

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

Параметри:

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

Коментари:

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

Пример:

find(/host/key,10m,"like","error") #find a value that contains 'error' within the last 10 minutes until now
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
fuzzytime(/host/key,sec)

Проверите колико се време пасивног агента разликује од времена Zabbix сервера/проксија.
Подржани типови вредности: Float, Integer.
Враћа: 1 - разлика између вредности пасивне ставке (као временске ознаке) и временске ознаке Zabbix сервера/проксија (сат прикупљања вредности) је мања или једнака T секунди; 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 #detect a problem if the time difference is over 60 seconds

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

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

Параметри:

Коментари:

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

Пример:

last(/host/key) #retrieve the last value
       last(/host/key,#2) #retrieve the previous value
       last(/host/key,#1) <> last(/host/key,#2) #the last and previous values differ
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 - Детаљно).

Параметри:

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

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

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

Параметри:

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

Пример:

logsource(/host/key,,"VMware Server")
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"); у овом случају функција ће се покренути чим прође период евалуације (пет минута) без података.
  • Ова функција ће приказати грешку ако у оквиру периода првог параметра:
    - нема података и Zabbix сервер је поново покренут
    - нема података и одржавање је завршено
    - нема података и ставка је додата или поново омогућена
  • Грешке се приказују у колони Информације у окидачу конфигурација;
  • Ова функција можда неће исправно радити ако постоје временске разлике између Zabbix сервера, проксија и агента. Такође погледајте: Услов за временску синхронизацију;
  • Функција nodata() се не може користити у изразу сама; најмање једна функција из друге групе, која упућује на ставку домаћина, мора бити укључена у израз (осим функција за датум и време). За детаљне информације о томе како функција nodata() функционише унутар израза, погледајте Време израчунавања.
percentile(/host/key,(sec|#num)<:time shift>,percentage)

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

Параметри:

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

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

Параметри:

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

Пример:

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

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