zabbix trigger 函數解析

1、trigger 配置屬性

name tirgger的名稱,可以支持宏:{HOST.HOST}、{HOST.NAME}、

Expression:對觸發器狀態計算的邏輯正則表達式

Multiple PROBLEM events generation

Description 對觸發器的描述

url: 一般設置可用宏爲- {TRIGGER.ID}

severity: not classified 未知安裝等級 灰色

               information   一般信息         亮綠

               warning          警告信息        黃色

                average          一般故障        橙色

                 high               高級別故障    紅色

                 disaster           致命故障       亮紅

2、Trigger 告警依賴

    告警依賴是指一個事件的成立需要依賴另一個的事件存在。這種情況適合於邏輯比較複雜的業務,例如,一個IDC的路由器出現故障時,機房內所有的機器都會因爲狀態不可獲取而產生告警,但作爲管理人員,並不想同時接收所有的故障,只需要接收到一條有效的告警“XXX的IDC    機房路由器X發生故障,將會影響整個機房的使用"

3、Trigger 正則中的單位

S:seconds

m: minutes

h: hosts

d: days

w: weeks

k: kilo

M: mega

G: giga

T: tera

P: peta

E: exa

z: zetta

Y: yotta

例如:以下語句:

{host:zabbix[proxy,zabbix_proxy,lastaccess]} > 120

{host:system.uptime[].last(0)} < 86400

{host:system.cpu.load.avg(600)} < 10

可以寫成:

{host:zabbix[proxy,zabbix_proxy,lastaccess]} > 2m

{host:system.uptime[].last(0)} < 1d

{host:system.cpu.load.avg(10m)} < 10

函數的形參指的是函數可以接收不同的參數

在形參中,"#"在不同的函數中具有不同的含義,例如:

sum(600)表示最近600秒內獲取到的數值求和。

sum(#5)表示最近取到5個值得和

last(#5)表示返回給定的第5個值,時間最早的值爲第一個。例如:給定值3、7、2、6、5,last(#2)的值爲7,last(#5)的值爲5

last(0),即最後一次的值,0爲參數。

4、Trigger 函數

(1) abschange

描述:返回最近獲取到的值與之前的差值的絕對值。對於字符串類型,0表示值相等,1表示值不同。

  例如: {server.vfs.fs.size[/,free].abschange(10m)}<10,表示在server設備中,key值{{server.vfs.fs.size[/,free]最近一次獲取到的值的和在前10分鐘的差值爲10,其結果可能最近一次值比之前大,也有可能比之前的值小,即從-10到0,再到10之間的範圍,可以叫做抖動值或者誤差範圍。

(2) avg

參數:秒或#num

支持值類型:float和int

描述:返回指定時間間隔的平均值

例如:{server:vfs.fs.size[/,free].avg(#5,10m)} < 50G,表示在server設備中,key值vfs.fs.size[/,free]最近10分鐘內,最近5次取值的平均值小於50G。

(3) change

描述:返回最近獲取的值與之前值得差值,對於字符串類型,0表示值相等,1表示值不同。

(4) count 

參數:秒或#num

描述:返回指定時間間隔內的數值統計。時間間隔可以通過第一個參數設置爲時間或收集值得數目。

實例:

count(600):最近10分鐘值得個數

count(600,12):最近10分鐘值等於12的個數

count(600,12,"gt"): 最近10分鐘值大於12的個數

count(#10,12,"gt"): 最近的10個值中,值大於12的個數

(5) date

支持值類型:所有(any)

描述:返回當前日期

(6) dayofmonth

描述:返回當前是本月第幾天(數值範圍爲1-31)

(7) dayofweek

返回當前是本週第幾天,星期一是1,星期天是7

(8) delta

參數: 秒或#num

描述:返回指定時間間隔內最大值與最小值。時間間隔作爲第一個參數,可以是秒或者收集值得數目。

例如:{switch:net.if.in[eth0].delta(10m)} > 10M,表示設備switch的接口eth0在最近10分鐘內,最大值和最小值之間的差大於10M,即認爲故障發生。

(9) diff

支持值類型:float int str text和log

描述:返回值爲1,表示最近的值與之前的值不同,0爲其他情況。

例如:{windows:agent.version.diff(0)} > 0 ,表示設備Windows的agent.version在最近一次值與之前的值不同。

(10) fuzzytime

參數:秒

支持值類型:float和int

描述:返回值1,表示監控項值得時間戳比zabbix-server的時間對n秒,0爲其他情況。常使用system.localtime來檢查本地時間是否與zabbix-server的時間相同。

(11) iregexp

參數:第一個爲字符串,第二個爲秒或#num

支持值類型:str、log、text

描述:與regexp類似,區別是不區分大小寫

(12)last

參數:秒或#num

支持值類型:float、int、str、text和log

描述:最近的值,如果爲秒,則忽略,#num表示最近第N個值

示例:

last(10) 等價於last(#1)

last(#3) 表示最近獲取的監控項值得第三個值

例如:{mysql:mysql.ping.last(#3,5m)} = 0,表示設備mysql在最近5分鐘內的第三次取值結果爲0,即認爲故障發生。

(13) logeventid

參數:string

支持值類型:log

描述:檢查最近的日誌條目的event ID是否匹配正則表達式。參數爲正則表達式,POSIX擴展樣式。當返回值爲0時,表示不匹配,1表示匹配。

(14)logseverity

支持值類型:log

描述:返回最近日誌條目的日誌等級。當返回值爲0時,表示默認等級

(15)logsource

支持值類型:log

描述:檢查最近的日誌條目是否匹配參數的日誌來源。當返回值爲0時,表示不匹配,1表示匹配。通常用於windows event logs監控,例如:logsource["VMWare Server"]

(16) max

參數:秒或#num

藐視:返回指定時間間隔的最大值。時間間隔作爲第一個參數,可以使秒或收集值得數目。

例如:{ftpserver:net.tcp.service[ftp].max(#3)} = 0 ,表示設備ftpserver中的key爲net.tcp.service[ftp]在最近3次獲取到的最大值都爲0,則視爲故障。

(17)min

描述:返回指定時間間隔的最小值。

例如:{gateway:icmppingloss.min(5m)} > 20,表示gateway設備在5分鐘內用icmppingloss在最近5分鐘內獲取的最小值爲20,即故障發生。

(18)nodata

描述:當返回值爲1時,表示指定的間隔,沒有接收到數據,0表示其他情況。

例如:{v.itnihao.com:agent.ping.nodata(5m)} = 1,表示設備v.itnihao.com的agent.ping在最近5分鐘內沒有接收到數據,即發生故障。

(19)now

描述:返回距離Epoch 時間的秒數

(20)prve

支持值類型:float int str text 和log

描述:返回之前的值,類似於last(#2)

(21)regexp

描述:檢查最近的值是否匹配正則表達式,參數的正則表達式爲POSIX擴展樣式,第二個參數爲秒數或手機值得數目,將會處理多個值。本函數區分大小寫。當返回值爲1時,表示找到,0表示其他情況。

(22)str

參數:第一個參數爲string,第二個參數爲秒或#num。

支持值類型:str log text

描述:查找最近值中的字符串。第一個參數指定查找的字符串。大小寫敏感。第二個可選的參數指定秒數或收集值得數目,將會處理多個值。當返回值爲1時,表示找到,0爲其他情況。

例如:{Tomcat:jmx["Catalina:type=ProtocolHander,port=8080",compression].str(off)} = 1,表示找到,0表示爲其他情況

(23)strlen

參數:秒或#num

支持值類型:str、log、text

描述:指定最近值得字符串長度,參數值類似於last函數,例如:strlen(0)等價於strlen(#1),stelen(#3)表示最近的第三個值,strlen(0,86400)表示一天前最近的值。

(24)sum

參數:秒或者#num

支持值類型:float和int

描述:返回指定時間間隔中收集到的值的總和。時間間隔作爲第一個參數,支持秒或收集值得數目。

(25)time

描述:返回當前時間,格式爲HHMMSS,例如:123055


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章