您好,登錄后才能下訂單哦!
小Q:山一程,水一程,身向榆關那畔行,夜深千帳燈。 --- 納蘭容若《長相思》
最近一直在學zabbix,總計并歸納了觸發器語法參數配置 ,并實時配置搭建,希望可以幫助大家,
有問題歡迎留言解決探討。
1、語法
2、示例
--------------------------------------------------------------------------------------------------
1、Zabbix觸發器的語法如下:
{<server>:<key>.<function>(<parameter>)}<operator><constant>
用Template App Zabbix Agent模板中的主機ping監控的觸發器來進行說明:
{Template App Zabbix Agent:agent.ping.nodata(5m)}=1
<server> Template App Zabbix Agent 即監控模板
<key> agent.ping 即監控模板里的項目Items
<function> nodata() 及項目所使用的方法
<parameter> 5m 及方法所使用的參數
<operator> 操作人,選填
<constant> 持續性,選填
《如果是觸發器調用的模板,需要在模板中更改查看觸發器,若是直接創建的觸發器,可在主機中直接修改》
《觸發器表達式選擇的條件來自各個群組中ip下的項目》
1.abschange 參數:忽略 支持類型:float,int,str,text,log 作用:返回最近獲得的值與之前獲得值差的絕對值,對于字符串類型:0表示相等,1表示不同
2.avg 參數:秒或#num 支持類型:float,int 作用:返回一段時間的平均值 舉例: avg(5):最后5秒的平均值 avg(#5):表示最近5次得到值的平均值 avg(3600,86400):表示一天前的一個小時的平均值 如果僅有一個參數,表示指定時間的平均值,從現在開始算起,如果有第二個參數,表示漂移,從第二個參數前開始算時間, #n表示最近n次的值
3.change
參數:忽略
支持類型:float,int,str,text,log
作用:返回最近獲得值與之前獲得值的差值,對于字符串0表示相等,1表示不同
舉例:
change(0)>n:忽略參數一般輸入0,表示最近得到的值與上一個值的差值大于n
4.count 參數:秒或#num 支持類型:float,int,str,text,log 作用:返回指定時間間隔內數值的統計, 舉例: count(600)最近10分鐘得到值的個數 count(600,12)最近10分鐘得到值的個數等于12 count(600,12,"gt")最近10分鐘得到值的個數大于12 count(#10,12,"gt")最近10個值中,值大于12的個數 count(600,12,"gt",86400)24小時之前的10分鐘內值大于12的個數 count(600,6/7,"band")-thenumberofvaluesforlast10minuteshaving'110'(inbinary)inthe3leastsignificantbits. count(600,,,86400)24小時之前的10分鐘數據值的個數 第一個參數:指定時間段 第二個參數:樣本數據 第三個參數:操作參數 第四個參數:漂移參數 #支持的操作類型 eq: 相等 ne: 不相等 gt: 大于 ge: 大于等于 lt: 小于 le: 小于等于 like: 內容匹配
5.date參數:忽略 支持類型:any 作用:返回當前的時間,格式YYYYMMDD
6.dayofmonth 返回當前是本月的第幾天
7.dayofweek 返回當前是本周的第幾天
8.delta 參數:秒或#num 支持類型:float,int作用:返回時間間隔內的最大值與最小值的差值
9.diff參數:忽略 支持值類型:float,int,str,text,log 作用:返回值為1表示最近的值與之前的值不同,0為其他情況
10.fuzzytime 參數:秒 支持值類型:float,int作用:返回值為1表示監控項值的時間戳與ZabbixServer的時間多N秒,0為其他.常使用system.localtime來檢查本地時間是否與Zabbixserver時間相同.
11.last 參數:秒或#num 支持值類型:float,int,str,text,log 作用:最近的值,如果為秒,則忽略,#num表示最近第N個值,請注意當前的#num和其他一些函數的#num的意思是不同的 last(0)等價于last(#1)last(#3)表示最近**第**3個值(并不是最近的三個值) 本函數也支持第二個參數**time_shift**,例如 last(0,86400)返回一天前的最近的值 如果在history中同一秒中有多個值存在,Zabbix不保證值的精確順序 #num從Zabbix1.6.2起開始支持,timeshift從1.8.2其開始支持,可以查詢avg()函數獲取它的使用方法
12.logeventid 參數:string支持值類型:log 描述:檢查最近的日志條目的EventID是否匹配正則表達式.參數為正則表達式,POSIX擴展樣式.當返回值為0時表示不匹配,1表示匹配。該函數從Zabbix1.8.5起開始支持.
13.logseverity 參數:忽略 支持值類型:log 描述:返回最近日志條目的日志等級(logseverity).當返回值為0時表示默認等級,N為具體對應等級(整數,常用于Windowseventlogs).Zabbix日志等級來源于Windowseventlog的Information列.
14.logsource 參數:string支持值類型:log 描述:檢查最近的日志條目是否匹配參數的日志來源.當返回值為0時表示不匹配,1表示匹配。通場用于Windowseventlogs監控.例如logsource["VMWareServer"]
14.max 參數:秒或#num 支持值類型:float,int描述:返回指定時間間隔的最大值.時間間隔作為第一個參數可以是秒或收集值的數目(前綴為#).從Zabbix1.8.2開始,函數支持第二個可選參數time_shift,可以查看avg()函數獲取它的使用方法.
15.min 參數:秒或#num 支持值類型:float,int描述:返回指定時間間隔的最小值.時間間隔作為第一個參數可以是秒或收集值的數目(前綴為#).從Zabbix1.8.2開始,函數支持第二個可選參數time_shift,可以查看avg()函數獲取它的使用方法.
16.nodata 參數:秒 支持值類型:any 描述:當返回值為1表示指定的間隔(間隔不應小于30秒)沒有接收到數據,0表示其他.
17.now 參數:忽略 支持值類型:any 描述:返回距離Epoch(1970年1月1日00:00:00UTC)時間的秒數
18.prev 參數:忽略 支持值類型:float,int,str,text,log 描述:返回之前的值,類似于last(#2)
19.regexp 參數:第一個參數為string,第二個參數為秒或#num 支持值類型:str,log,text 描述:檢查最近的值是否匹配正則表達式,參數的正則表達式為POSIX擴展樣式,第二個參數為秒數或收集值的數目,將會處理多個值.本函數區分大小寫。當返回值為1時表示找到,0為其他.
20.str 參數:第一個參數為string,第二個參數為秒或#num 支持值類型:str,log,text 描述:查找最近值中的字符串。第一個參數指定查找的字符串,大小寫敏感。第二個可選的參數指定秒數或收集值的數目,將會處理多個值。當返回值為1時表示找到,0為其他.
21.strlen 參數:秒或#num 支持值類型:str,log,text 描述:指定最近值的字符串長度(并非字節),參數值類似于last函數.例如strlen(0)等價于strlen(#1),strlen(#3)表示最近的第三個值,strlen(0,86400)表示一天前的最近的值.該函數從Zabbix1.8.4起開始支持;
22.sum參數:秒或#num 支持值類型:float,int描述:返回指定時間間隔中收集到的值的總和.時間間隔作為第一個參數支持秒或收集值的數目(以#開始).從Zabbix1.8.2開始,本函數支持time_shift作為第二個參數。可以查看avg函數獲取它的用法;
23.time參數:忽略 支持值類型:any 描述:返回當前時間,格式為HHMMSS,例如123055
2、舉例參數的等效轉換,參數1==參數2
參數1: {host:zabbix[proxy,zabbix_proxy,lastaccess]}>120{host:system.uptime[].last(0)}<86400{host:system.cpu.load.avg(600)}<10參數2: {host:zabbix[proxy,zabbix_proxy,lastaccess]}>2m {host:system.uptime.last(0)}<1d {host:system.cpu.load.avg(10m)}<10
示例1:
觸發器名稱:Processor load is too high on www.zabbix.com {www.zabbix.com:system.cpu.load[all,avg1].last(0)}>5觸發器說明: www.zabbix.com:host名稱 system.cpu.load[all,avg1]:item值,一分內cpu平均負載值last(0):最新值 >5:最新值大于5 如上所示,www.zabbix.com這個主機的監控項,最新的CPU負載值如果大于5,那么表達式會返回true,這樣一來觸發器狀態就改變為“problem”了。
示例2:
觸發器名稱:www.zabbix.com is overloaded {www.zabbix.com:system.cpu.load[all,avg1].last(0)}>5|{www.zabbix.com:system.cpu.load[all,avg1].min(10m)}>2
當前cpu負載大于5或者最近10分內的cpu負載大于2,那么表達式將會返回true.
示例3:
觸發器名稱:/etc/passwd has been changed 使用函數 diff(): {www.zabbix.com:vfs.file.cksum[/etc/passwd].diff(0)}>0
/etc/passwd最新的checksum與上一次獲取到的checksum不同,表達式將會返回true. 我們可以使用同樣的方法監控系統重要的配置文件,例如/etc/passwd,/etc/inetd.conf等等
示例4:
觸發器名稱:Someone is downloading a large file from the Internet 使用函數 min: {www.zabbix.com:net.if.in[eth0,bytes].min(5m)}>100K
當前主機網卡eth0最后5分鐘內接收到的流量超過100KB那么觸發器表達式將會返回true
示例5:
觸發器名稱:Server is unreachable {zabbix.zabbix.com:icmpping.count(30m,0)}>5
如上表達式表示最近30分鐘zabbix.zabbix.com這個主機超過5次不可到達。
示例6:
觸發器名稱:CPU activity at night time 使用函數 time(): {zabbix:system.cpu.load[all,avg1].min(5m)}>2 & {zabbix:system.cpu.load[all,avg1].time(0)}>000000 & {zabbix:system.cpu.load[all,avg1].time(0)}<060000
只有在凌晨0點到6點整,最近5分鐘內cpu負載大于2,表達式返回true,觸發器的狀態變更為“problem”
示例7:
觸發器名稱:Both nodes of clustered SMTP server are down {smtp1.zabbix.com:net.tcp.service[smtp].last(0)}=0 & {smtp2.zabbix.com:net.tcp.service[smtp].last(0)}=0
當smtp1.zabbix.com和smtp2.zabbix.com兩臺主機上的SMTP服務器都離線,表達式將會返回true.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。