Zabbix觸發器函數(取前后差值)


獲取最新值last

zabbix觸發器方法last用於獲取item最新值或者第幾個值以及某個時間的哪一個值。

Last (most recent) T value is > N
Last (most recent) T value is < N
Last (most recent) T value is = N
Last (most recent) T value is NOT N

觸發器方法last - 語法

last (sec|#num,<time_shift>)
sec:暫時沒用
#num:倒數第幾個,例如#1,#2,默認為#1,即last()與last(#1)是一樣的,zabbix 1.6.2開始支持
<time_shift>:時間偏移,1d表示昨天的這個時候,1h表示一小時前的這個時候,zabbix 1.8.2開始支持。幾乎每次有這個我都解釋一遍,怕有些同學沒看到那幾篇文章。

觸發器方法last - 實例

CPU前一個上一個負載大於0.7

{web:system.cpu.load[percpu,avg1].last(#2)}>0.7

昨日此時CPU負載大於0.7

{web:system.cpu.load[percpu,avg1].last(,1d)}>0.7

zabbix觸發器方法last - 支持類型

它支持類型包括:float, int, str, text, log

值匹配字符串str

zabbix觸發器方法str用於獲取item值是否包含你需要匹配的字符串

如下是web界面提供的功能:

Find string V in last (most recent) value. N = 1 - if found, 0 - otherwise
Find string V in last (most recent) value. N NOT 1 - if found, 0 - otherwise

觸發器方法str - 語法

str (pattern,<sec|#num>)
pattern:要匹配的字符串
<sec|#num>:時間段,或者最近幾個值

觸發器方法str - 實例

當前agent版本是3.0.0.alpha2

{dd-pre-01:agent.version.str('3.0.0alpha2')}=1

zabbix觸發器方法str - 支持類型

它支持類型包括:str, text, log

獲取字符串長度strlen

zabbix觸發器方法strlen用於獲取item返回值長度

如下是web界面提供的功能:

Length of last (most recent) T value in characters is > N
Length of last (most recent) T value in characters is < N
Length of last (most recent) T value in characters is = N
Length of last (most recent) T value in characters is NOT N

觸發器方法strlen - 語法

strlen (sec|#num,<time_shift>)
sec|#num:#num可以用,最近哪個值,#1表示最后一個值,#10表示倒數第10個值
time_shift:時間偏移,比如1d,那么就是一天前的這個時候。

觸發器方法strlen - 實例

獲取agent版本長度為4

{web:agent.version.strlen()}=4

獲取agent版本倒數第二個值長度為4

{web:agent.version.strlen(#2)}=4

獲取agent版本做這個這個時候值長度為4

{web:agent.version.strlen(,1d)}=4

等同於

{web:agent.version.strlen(#1,1d)}=4

觸發器方法strlen - 支持類型

它支持類型包括:str, text, log

值比較diff

zabbix觸發器方法diff用於獲取item值是否發生變化

Difference between last and preceding values, then N = 1, 0 - otherwise
Difference between last and preceding values, then N NOT 1, 0 - otherwise

觸發器方法diff - 語法

diff()
返回值
1 - 值發生變化
0 - 無變化 。

觸發器方法diff - 實例

agent版本號發發生觸發告警

{web:agent.version.diff()}=1

zabbix觸發器方法diff - 支持類型

它支持類型包括:float,int,str, text, log

獲最小值min

zabbix觸發器函數min - 作用

獲取一個時間周期內最小值

獲取幾個返回值中的最小值

以上方法,時間往前推移1分鍾,1小時,1天等等

Minimum value for period T is > N
Minimum valuefor period T is < N
Minimum value for period T is = N
Minimum value for period T is NOT N

觸發器函數min - 例子

語法:min(sec|#num,<time_shift>) 一個小時內cpu負載最小值小於0.2

{dd-pre-01:system.cpu.load[percpu,avg1].min(1h)}<0.2

cpu負載最近10個返回值,最小值小於0.2

{dd-pre-01:system.cpu.load[percpu,avg1].min(#10)}<0.2

zabbix觸發器函數min/max - 實例

觸發器名稱:Free disk space is too low

Problem: 最近5分鍾剩余磁盤空間小於10GB。(異常)

Recovery: 最近10分鍾磁盤空間大於40GB。(恢復)

講解:簡單說便是一旦剩余空間小於10G就觸發異常,然后接下來剩余空間必須大於40G才能解除這個異常,就算剩余空間達到了39G(不在報警條件里)那也是沒用的.

({TRIGGER.VALUE}=0 and {server:vfs.fs.size[/,free].max(5m)}<10G)  or 
({TRIGGER.VALUE}=1 and {server:vfs.fs.size[/,free].min(10m)}<40G)

獲取最大值max

獲取一個時間周期內最大值

獲取幾個返回值中的最大值

以上方法,時間往前推移1分鍾,1小時,1天等等

Maximum value for period T is > N
Maximum value for period T is < N
Maximum value for period T is = N
Maximum value for period T is NOT N

觸發器函數max - 例子

語法:max (sec|#num,<time_shift>) 一個小時內cpu負載最大值超過10

{dd-pre-01:system.cpu.load[percpu,avg1].max(1h)}>10

cpu負載最近10個返回值,最大值超過10

{dd-pre-01:system.cpu.load[percpu,avg1].max(#10)}>10

取平均值avg

取前后兩個值對比,avg有如下取值方式:

最后N個值

最近XX時間,例如最近1h

以上1和2還要結合time_thift時間偏移參數,例如1h

Average value of a period is < N
Average value of a period is > N
Average value of a period is = N
Average value of a period is NOT N

觸發器方法avg - 實例

CPU負載最近一小時平均值等於1

{dd-pre-01:system.cpu.load[percpu,avg1].avg(1h)}=1

CPU負載昨天當前時間的上一小時平均值等於1,1d表示時間往前推移1天,你可以寫1h,1m,10d,現在明白了time_thrift的用法了吧?

{dd-pre-01:system.cpu.load[percpu,avg1].avg(1h,1d)}=1

CPU負載最近10次的平均值等於1

{dd-pre-01:system.cpu.load[percpu,avg1].avg(#10)}=1

昨天同一時間CPU負載最近10次的平均值等於1

{dd-pre-01:system.cpu.load[percpu,avg1].avg(#10,1d)}=1

zabbix觸發器方法avg - 支持類型

它支持類型包括:float, int

前后差值abschange

zabbix取前后差值(絕對值)- abschange

Absolute difference between last and previous value is = N
Absolute difference between last and previous value is > N
Absolute difference between last and previous value is < N
Absolute difference between last and previous value is NOT N

如果(每核)CPU 1分鍾負載浮動1(突然增加1,1分鍾后又降低1)

{web:system.cpu.load[percpu,avg1].abschange()}=1

如果(每核)CPU 1分鍾負載浮動大於1

{web:system.cpu.load[percpu,avg1].abschange()}>1

如果(每核)CPU 1分鍾負載浮動小於1

{web:system.cpu.load[percpu,avg1].abschange()}<1

如果(每核)CPU 1分鍾負載浮動不等於1

{web:system.cpu.load[percpu,avg1].abschange()}<>1

abschange支持類型

它支持類型包括:float, int, str, text, log,它不僅僅支持數值,還支持字符串。如果取值為字符串,那么字符串相同值為0,不同則為1

如下為主機名發生變更的觸發器表達式

{web:system.hostname.abschange()}=1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM