zabbix探究告警触发器Triggers
Triggers函數(shù)的分類(lèi)
功能 函數(shù)
值的比較與查找 abschange、delta、diff、band、change、nodata、last、prev
值的計(jì)算 max、min、avg、sum、count
時(shí)間 now、time、date、dayofmonth、dayofwek、fuzzytime
日志 logeventid、logseverity、logsource
字符串匹配 iregexp、regexp、str、strlen
趨勢(shì)預(yù)測(cè) percentile、forecast、timeleft
Trigger函數(shù)----比較 與查找
求最近兩值差的絕對(duì)值----abschange
函數(shù)功能
返回最近兩值差的絕對(duì)值,即最近獲取到的值與前一個(gè)值的差的絕對(duì)值,數(shù)學(xué)表達(dá)式為|last_value - prev_value|。如果值為字符串類(lèi)型,則其絕對(duì)值返回0或1,其中0表示值相等,1表示值不等。該函數(shù)常用于在一個(gè)范圍波動(dòng)的場(chǎng)合。
函數(shù)參數(shù)
不支持任何參數(shù)的傳入
支持?jǐn)?shù)據(jù)類(lèi)型
支持float、int、str、text
求最大值與最小值的差----delta
函數(shù)功能
在指定的一段時(shí)間內(nèi),或者指定數(shù)據(jù)個(gè)數(shù),用其中的最大值減去最小值得出的差(max-min),數(shù)學(xué)表達(dá)式為max{v1,v2,…vn}-min{v1,v2…vn},其中v1,v2,…vn為時(shí)間T內(nèi)的數(shù)值。該函數(shù)適用于最大值和最小值比較的場(chǎng)合,如系統(tǒng)的最高負(fù)載和最低負(fù)載的差值。
函數(shù)用法
delta(sec|#num,<time_shift>)>N #最大值與最小值的差值大于N
delta(sec|#num,<time_shift>)<N #最大值與最小值的差值小于N
delta(sec|#num,<time_shift>)=N #最大值與最小值的差值等于N
delta(sec|#num,<time_shift>)<>N #最大值與最小值的差值不等于N
delta(10m,1d)>10 # 表示1天前的10分鐘數(shù)據(jù)的最大值與最小值的差大于10
delta(#5,1d)>10 # 表示1天前的連續(xù)5個(gè)數(shù)據(jù)的最大值與最小值的差大于10
delta(10m)>10 # 表示最近10分鐘內(nèi)的數(shù)據(jù)的最大值與最小值的差大于10
delta(#5)>10 # 表示最近連續(xù)5個(gè)數(shù)值的最大值與最小值的差大于10
函數(shù)參數(shù)
第一個(gè)參數(shù)為秒或#num
第二個(gè)參數(shù)為某個(gè)時(shí)間段前(time_shift)
數(shù)據(jù)類(lèi)型
支持float和int數(shù)據(jù)類(lèi)型
判斷最近兩值是否相同----diff
函數(shù)功能
比較最近數(shù)據(jù)的值和前一個(gè)數(shù)據(jù)的值,如果兩值相同,函數(shù)運(yùn)行結(jié)果則為0,不同則為1.通過(guò)比較最近兩次的數(shù)值是否相同,從而判斷出運(yùn)行狀態(tài),如檢測(cè)主機(jī)名,系統(tǒng)版本是否發(fā)生變化等。
函數(shù)用法
diff()=0 #最近兩值相同
diff()=1 #最近倆值不同
函數(shù)參數(shù)
不支持任何參數(shù)的傳入
數(shù)據(jù)類(lèi)型
支持float、int、str、text和log數(shù)據(jù)類(lèi)型
求最近兩值的變化量----change
函數(shù)功能
返回最近數(shù)據(jù)值與前一次數(shù)據(jù)值的差,顧其運(yùn)算結(jié)果的值可以是正數(shù)(>0),也可以是負(fù)數(shù)(<0)。當(dāng)數(shù)據(jù)類(lèi)型為字符串是,如果最近兩值相等,則結(jié)果為0,如果不相等,則結(jié)果為1.比如系統(tǒng)啟動(dòng)時(shí)間小于上一次,則說(shuō)明系統(tǒng)已經(jīng)發(fā)生重啟。
函數(shù)參數(shù)
不支持任何參數(shù)的傳入
數(shù)據(jù)類(lèi)型
支持float、int、str、text和log數(shù)據(jù)類(lèi)型。
數(shù)據(jù)失聯(lián)----nodata
函數(shù)功能
檢測(cè)一段時(shí)間內(nèi)是否接收到數(shù)據(jù),返回值為1表示沒(méi)有接收到數(shù)據(jù),返回值為0表示接收到數(shù)據(jù)了。
函數(shù)參數(shù)
只支持一個(gè)時(shí)間參數(shù),如30S、5m、1h,時(shí)間參數(shù)必須大于或等于30S,這是因?yàn)闅v史數(shù)據(jù)同步進(jìn)程(History Syncer Process)是每隔30S執(zhí)行一次這個(gè)函數(shù)的。
數(shù)據(jù)類(lèi)型
支持float、int、str、text和log數(shù)據(jù)類(lèi)型。
獲取最新數(shù)據(jù)----last
函數(shù)功能
獲取最近一段時(shí)間內(nèi)或指定個(gè)數(shù)的數(shù)據(jù),如求最近系統(tǒng)的允許進(jìn)程數(shù)量。
函數(shù)用法
last(sec|#num,<time_shift>)
last(3m)=N #最近3分鐘監(jiān)控?cái)?shù)值等于N
last(#3)>N # 第3次的監(jiān)控?cái)?shù)值大于N
last(#3,3m)<N #最近3分鐘第3次的監(jiān)控?cái)?shù)值小于N
注意:#num表示最近的第N個(gè)值,與其他函數(shù)#num的意思是不同的數(shù)據(jù)類(lèi)型
支持float、int、str、text和log數(shù)據(jù)類(lèi)型
求前一個(gè)值----prev
函數(shù)功能
求前一個(gè)數(shù)據(jù)的值,等同于last(#2)
函數(shù)用法
prev()=N #前一個(gè)值等于N
函數(shù)參數(shù)
不支持任何參數(shù)的傳入
數(shù)據(jù)類(lèi)型
支持float、int、str、text和log數(shù)據(jù)類(lèi)型
Trigger函數(shù)----計(jì)算
求最大值----max
函數(shù)功能
在指定的一段時(shí)間內(nèi),或者指定數(shù)據(jù)個(gè)數(shù),找出最大值,數(shù)學(xué)表達(dá)式為max{v1,v2,…vn},其中Vn為時(shí)間T內(nèi)的數(shù)值。判斷取值是否都為0,如3次取值的最大值都為0。
函數(shù)用法
max(sec|#num,<time_shift>)
max(5m)>N #最近5分鐘內(nèi)取值的最大值
max(#3)=N #最近3次取值的最大值
max(#3,10m)<>N #10分鐘前3次取值的最大值
max(10m,1d)<>N #1天之前10分鐘內(nèi)取值的最大值
函數(shù)參數(shù)
第一個(gè)參數(shù)為秒或#num(監(jiān)控指標(biāo)數(shù)值的個(gè)數(shù))
第二個(gè)參數(shù)為某個(gè)時(shí)間段前
數(shù)據(jù)類(lèi)型
支持float和int數(shù)據(jù)類(lèi)型
求最小值----min
函數(shù)功能
在指定的一段時(shí)間內(nèi),或者指定數(shù)據(jù)個(gè)數(shù),找出最小值,數(shù)學(xué)表達(dá)式為min{v1,v2…vn},其中v1,v2…vn為時(shí)間T內(nèi)的數(shù)值。判斷取值是否都為0。
函數(shù)用法
min(sec|#num,<time_shift>)
min(5m)>N #最近5分鐘內(nèi)取值的最小值
min(#3)=N #最近3次取值的最小值
min(#3,10m)<>N #10分鐘前3次取值的最小值
min(10m,1d)<>N #1天之前10分鐘內(nèi)取值的最小值
函數(shù)參數(shù)
第一個(gè)參數(shù)為秒或#num(監(jiān)控指標(biāo)數(shù)值的個(gè)數(shù))
第二個(gè)參數(shù)為某個(gè)時(shí)間段前
數(shù)據(jù)類(lèi)型
支持float和int數(shù)據(jù)類(lèi)型
求平均值----avg
函數(shù)功能
在指定的一段時(shí)間內(nèi),或者指定數(shù)據(jù)個(gè)數(shù),求平均值,數(shù)學(xué)表達(dá)式為avg{v1,v2…vn},其中v1,v2…vn為時(shí)間T內(nèi)的數(shù)值。判斷取值是否都為0,如3次取值的平均值為0。
函數(shù)用法
avg(sec|#num,<time_shift>)
avg(5m)>N #最近5分鐘內(nèi)取值的平均值
avg(#3)=N #最近3次取值的平均值
avg(#3,10m)<>N #10分鐘前3次取值的最平均值
avg(10m,1d)<>N #1天之前10分鐘內(nèi)取值的平均值
函數(shù)參數(shù)
第一個(gè)參數(shù)為秒或#num(監(jiān)控指標(biāo)數(shù)值的個(gè)數(shù))
第二個(gè)參數(shù)為某個(gè)時(shí)間段前
數(shù)據(jù)類(lèi)型
支持float和int數(shù)據(jù)類(lèi)型
值求和----sum
函數(shù)功能
在指定的一段時(shí)間內(nèi),或者指定數(shù)據(jù)個(gè)數(shù),求所有值的和,數(shù)學(xué)表達(dá)式為sum{v1,v2…vn},其中v1,v2…vn為時(shí)間T內(nèi)的數(shù)值。
函數(shù)用法
sum(sec|#num,<time_shift>)
sum(5m)>N #最近5分鐘內(nèi)取值的所有數(shù)據(jù)相加求和
sum(#3)=N #最近3次取值的所有數(shù)據(jù)相加求和
sum(#3,10m)<>N #10分鐘前3次取值的所有數(shù)據(jù)相加求和
sum(10m,1d)<>N #1天之前10分鐘內(nèi)取值的所有數(shù)據(jù)相加求和
函數(shù)參數(shù)
第一個(gè)參數(shù)為秒或#num(監(jiān)控指標(biāo)數(shù)值的個(gè)數(shù))
第二個(gè)參數(shù)為某個(gè)時(shí)間段前
數(shù)據(jù)類(lèi)型
支持float和int數(shù)據(jù)類(lèi)型
統(tǒng)計(jì)個(gè)數(shù)----count
函數(shù)功能
在指定的一段時(shí)間內(nèi),或者指定數(shù)據(jù)個(gè)數(shù),統(tǒng)計(jì)數(shù)值個(gè)數(shù),數(shù)學(xué)表達(dá)式為count{v1,v2…Vn},其中v1,v2…Vn為時(shí)間T內(nèi)的數(shù)值
函數(shù)用法
count(sec|#num,,,<time_shift>)
count(10m) #最近10分鐘內(nèi)數(shù)值的個(gè)數(shù)
count(600,12) #最近10分鐘內(nèi)數(shù)值等于12的個(gè)數(shù)
count(10m,“error”,eq) #最近10分鐘內(nèi)等于“error”的值的數(shù)量
count(10m,12,gt) #最近10分鐘內(nèi)超過(guò)12的值的數(shù)量
count(#10,12,gt) #最近10個(gè)值超過(guò)12的值數(shù)量
count(10m,12,gt,1d) #1天前10的最近10分鐘內(nèi)超過(guò)12的值的數(shù)量
count(10m,6/7,band) #最近10分鐘的值數(shù),其中3個(gè)最低有效位為‘110’(二進(jìn)制)
count(10m,1d) #1天前的最近10分鐘的值的數(shù)量
函數(shù)參數(shù)
eq:相等
ne:不相等
gt:大于
ge:大于或等于
lt:小于
le:小于或等于
like:內(nèi)容匹配
band:位與運(yùn)算
regexp:正則表達(dá)式匹配
iregexp:忽略大小寫(xiě)的正則表達(dá)式匹配
運(yùn)算符支持的數(shù)據(jù)類(lèi)型如下:
eq(默認(rèn))、ne、gt、ge、lt、le、band、regexp、iregexp支持整數(shù)
eq(默認(rèn))、ne、gt、ge、lt、le、regexp、iregexp支持浮點(diǎn)數(shù)
like(默認(rèn))、eq、ne、regexp、iregexp支持字符串、文本、日志
數(shù)據(jù)類(lèi)型
支持float、int、str、text和log數(shù)據(jù)類(lèi)型
Trigger函數(shù)----時(shí)間
返回當(dāng)前時(shí)間(年月日時(shí)分秒) ----now
函數(shù)功能
返回當(dāng)前時(shí)間,距離Epoch(1970年1月1日 00:00:00UTC)時(shí)間的秒數(shù)。
函數(shù)用法
now()=1535877351 # 當(dāng)前時(shí)間的時(shí)間戳等于1535877351
函數(shù)參數(shù)
不支持任何參數(shù)的傳入
數(shù)據(jù)類(lèi)型
支持float、int、str、text和log數(shù)據(jù)類(lèi)型
返回當(dāng)前日期(年月日)----date
函數(shù)功能
返回當(dāng)前日期(格式為YYYYMMDD),例如20190102.
函數(shù)用法
date()=20190102 # 當(dāng)前日期等于20190102
函數(shù)參數(shù)
不支持任何參數(shù)的傳入
數(shù)據(jù)類(lèi)型
支持float、int、str、text和log數(shù)據(jù)類(lèi)型
返回當(dāng)前時(shí)間(時(shí)分秒)----time
函數(shù)功能
返回當(dāng)前時(shí)間,格式為HHMMSS,例如123055
函數(shù)用法
time()=123055 #當(dāng)前時(shí)間等于12:30:55
函數(shù)參數(shù)
不支持任何參數(shù)的傳入
數(shù)據(jù)類(lèi)型
支持float、int、str、text和log數(shù)據(jù)類(lèi)型
本月第幾天-----dayofmonth
函數(shù)功能
返回當(dāng)前時(shí)間是本月第幾天(數(shù)值范圍為1~31)
函數(shù)用法
dayofmoth()-30 # 當(dāng)前時(shí)間等于當(dāng)月第30
函數(shù)參數(shù)
不支持任何參數(shù)的傳入
數(shù)據(jù)類(lèi)型
支持float、int、str、text和log數(shù)據(jù)類(lèi)型
本周第幾天----dayofweek
函數(shù)功能
返回當(dāng)前時(shí)間是本周第幾天(數(shù)值范圍為1~7),星期一是1,星期天是7。
函數(shù)用法
dayofweek()=3 # 當(dāng)前時(shí)間等于周三
函數(shù)參數(shù)
不支持任何參數(shù)的傳入
數(shù)據(jù)類(lèi)型
所有數(shù)據(jù)類(lèi)型
時(shí)間對(duì)比----fuzzytime
函數(shù)功能
將zabbix-agent的時(shí)間戳與zabbix-server的時(shí)間戳進(jìn)行比較,如果差異超過(guò)指定的時(shí)間段,則函數(shù)返回值為0;如果時(shí)間戳小于間隔值,則函數(shù)返回值為1.
通常使用system.localtime來(lái)檢查zabbix-agent端的時(shí)間與zabbix-server端的時(shí)間是否存在差異。
函數(shù)用法
fuzzytime(sec)
fuzzytime(5m)=0 #監(jiān)控項(xiàng)的時(shí)間與zabbix-server的時(shí)間相差大于5分鐘
函數(shù)參數(shù)
支持一個(gè)參數(shù),即時(shí)間,如fuzzytime(5m)
數(shù)據(jù)類(lèi)型
支持float和int數(shù)據(jù)類(lèi)型
Trigger函數(shù)----日志
日志ID----logeventid
函數(shù)功能
檢查最近的日志條目的event id是否與正則表達(dá)式匹配。參數(shù)為正則表達(dá)式,POSIX擴(kuò)展樣式。當(dāng)返回值為0時(shí),表示不匹配,當(dāng)返回值為1時(shí),表示匹配。
函數(shù)用法
logeventid(pattern)
函數(shù)參數(shù)
支持一個(gè)參數(shù),可以使用正則表達(dá)式
數(shù)據(jù)類(lèi)型
僅支持log數(shù)據(jù)類(lèi)型
獲取日志等級(jí)----logseverity
函數(shù)功能
返回最近的日志條目的日志等級(jí)N(log serverity)。當(dāng)返回值為0時(shí),表示默認(rèn)等級(jí),N為具體對(duì)應(yīng)的等級(jí)(整數(shù))。通常用于Windows event logs監(jiān)控。Zabbix日志等級(jí)來(lái)源于Windows event logs的Information列。
函數(shù)功能
logseverity()=0 #日志等級(jí)為0
函數(shù)參數(shù)
不支持任何參數(shù)的傳入
數(shù)據(jù)類(lèi)型
僅支持log數(shù)據(jù)類(lèi)型
獲取日志來(lái)源----logsource
函數(shù)功能
檢查最近的日志數(shù)據(jù)來(lái)源是否與正則表達(dá)式匹配。當(dāng)返回值為0時(shí),表示不匹配;當(dāng)返回值為1時(shí),表示匹配。通常用于windows event logs監(jiān)控,例如logsource[“VMWare Server”]
函數(shù)用法
logsource(pattern)
logsource(“web”) = 0 # 未匹配到web日志源
函數(shù)參數(shù)
支持一個(gè)參數(shù),可以使用正則表達(dá)式
數(shù)據(jù)類(lèi)型
僅支持log數(shù)據(jù)類(lèi)型
Trigger函數(shù)----字符串匹配
正則表達(dá)式不區(qū)分大小寫(xiě)----iregexp
函數(shù)功能
從值中查找與正則表達(dá)式匹配的數(shù)值,不區(qū)分大小寫(xiě)。當(dāng)正則表達(dá)式匹配數(shù)值時(shí),結(jié)果為1,當(dāng)正則表達(dá)式不匹配數(shù)值時(shí),結(jié)果為0。通常用于從字符串中正則匹配數(shù)據(jù),如從日志中匹配報(bào)錯(cuò)、異常、關(guān)鍵字等。
函數(shù)用法
iregexp(pattern,<sec|#num>)
iregexp(green) <>1 # 未檢測(cè)到green字符串
函數(shù)參數(shù)
第一個(gè)參數(shù)為匹配的字符串
第二個(gè)參數(shù)為秒或#num(監(jiān)控指標(biāo)數(shù)值的個(gè)數(shù))
數(shù)據(jù)類(lèi)型
支持str、log和text數(shù)據(jù)類(lèi)型
正則表達(dá)式區(qū)分大小寫(xiě)----regexp
函數(shù)功能
從值中查找與正則表達(dá)式匹配的數(shù)值,區(qū)分大小寫(xiě)。當(dāng)正則表達(dá)式匹配數(shù)值時(shí),結(jié)果為1,當(dāng)正則表達(dá)式不匹配數(shù)值時(shí),結(jié)果為0。通常用于從字符串中正則匹配數(shù)據(jù),如從日志中匹配報(bào)錯(cuò)、異常、關(guān)鍵字等。
函數(shù)用法
regexp(pattern,<sec|#num>)
regexp(ON,#3) <>1 # 3次結(jié)果都未檢測(cè)到ON字符串
函數(shù)參數(shù)
第一個(gè)參數(shù)為匹配的字符串
第二個(gè)參數(shù)為秒或#num(監(jiān)控指標(biāo)數(shù)值的個(gè)數(shù))
數(shù)據(jù)類(lèi)型
支持str、log和text數(shù)據(jù)類(lèi)型
字符串匹配-----str
函數(shù)功能
從值中查找字符串,區(qū)分大小寫(xiě)。當(dāng)從數(shù)值中找到匹配值時(shí),結(jié)果為1;如果未找到匹配的值,則結(jié)果為0。該函數(shù)在日志、文本、字符等場(chǎng)景中使用,可以通過(guò)此函數(shù)來(lái)判斷版本、角色等信息。
函數(shù)用法
str(pattern,<sec|#num>)
函數(shù)參數(shù)
第一個(gè)參數(shù)匹配的字符串,大小寫(xiě)敏感
第二個(gè)參數(shù)為秒或#num(監(jiān)控指標(biāo)數(shù)值的個(gè)數(shù))
支持str、log和text數(shù)據(jù)類(lèi)型
字符串長(zhǎng)度----strlen
函數(shù)功能
判斷字符串長(zhǎng)度與預(yù)期是否相同,比如獲取md5值,應(yīng)該是32位的,如果不是32位的,則說(shuō)明該數(shù)據(jù)與預(yù)期不匹配。
函數(shù)用法
strlen(sec|#num,<time_shift>)
判斷設(shè)備是否掛載成功
例:strlen(#1)=0 最后一次數(shù)據(jù)的字符串等于0就告警
數(shù)據(jù)類(lèi)型
支持str、log和text數(shù)據(jù)類(lèi)型
Trigger函數(shù)----趨勢(shì)預(yù)測(cè)
百分線----percentile
函數(shù)功能
在指定的一段時(shí)間內(nèi),取出百分線值數(shù)。比如網(wǎng)絡(luò)帶寬流量,在某段時(shí)間內(nèi)會(huì)有毛刺,去掉最高的幾個(gè)值,計(jì)算出次高的值。
函數(shù)用法
percentile(sec|#num,<time_shift>,percentage)
數(shù)據(jù)類(lèi)型
支持float和int數(shù)據(jù)類(lèi)型
趨勢(shì)預(yù)測(cè)----forecast
函數(shù)功能
預(yù)測(cè)監(jiān)控指標(biāo)未來(lái)的最大值、最小值、增量值或平均值,用于評(píng)估從現(xiàn)在開(kāi)始到未來(lái)一段時(shí)間的數(shù)值變化情況。
函數(shù)用法
forecast(sec|#num,<time_shift>,time,,)
forecast(10m,1h,linear,value)
函數(shù)參數(shù)
第一個(gè)參數(shù)為秒或#num(監(jiān)控指標(biāo)數(shù)值的個(gè)數(shù)),以最新采集到的數(shù)據(jù)為依據(jù),以HASH標(biāo)記開(kāi)開(kāi)頭;
第二個(gè)參數(shù)為某個(gè)時(shí)間段前(time_shift),如1h之前的時(shí)間
第三個(gè)參數(shù)為時(shí)間(time),以秒為單位,即從現(xiàn)在往后的時(shí)間。如果是之前的歷史數(shù)據(jù),則為負(fù)數(shù),如-20m表示20分鐘之前的數(shù)據(jù)
第四個(gè)參數(shù)為可選的歷史數(shù)據(jù)計(jì)算函數(shù)(fit),其支持的參數(shù)如下:
linear:線性函數(shù)
polynomialN:N次多項(xiàng)式(1<=N<=6)
exponential: 指數(shù)函數(shù)
logarithmic:對(duì)數(shù)函數(shù)
power:乘方(冪)函數(shù)
第五個(gè)參數(shù)為值的處理模式(mode).其中支持的參數(shù)如下
value:值(默認(rèn))
max:最大值
min:最小值
delta:最大值-最小值
avg:平均值
數(shù)據(jù)類(lèi)型
支持float和int數(shù)據(jù)類(lèi)型
剩余時(shí)間----timeleft
函數(shù)功能
監(jiān)控指標(biāo)達(dá)到設(shè)定的閾值所需要的時(shí)間(以秒為單位)
函數(shù)用法
timeleft(sec|#num,<time_shift>,threshold,)
函數(shù)參數(shù)
第一個(gè)參數(shù)為秒或#num(監(jiān)控指標(biāo)數(shù)值的個(gè)數(shù)),以最新采集到的數(shù)據(jù)為依據(jù),以HASH標(biāo)記開(kāi)頭
第二個(gè)參數(shù)為某個(gè)時(shí)間段前(time_shift)
第三個(gè)參數(shù)為閾值(threshold),即所定義的趨勢(shì)閾值
第四個(gè)參數(shù)為可選的歷史數(shù)據(jù)計(jì)算函數(shù)(fit),請(qǐng)參考forecast參數(shù)
數(shù)據(jù)類(lèi)型
支持float和int數(shù)據(jù)類(lèi)型
總結(jié)
以上是生活随笔為你收集整理的zabbix探究告警触发器Triggers的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: WPF-Interaction.Trig
- 下一篇: 读过的好书推荐