zabbix3.4.7官方解釋觸發器


 

函數
  描述 參數 說明
abschange
  最近獲取值與之前獲取值差的絕對值。   支持值的類型: float, int, str, text, log

例如:
(最近獲取值;之前獲取值=abschange)
1;5=4
3;1=2
0;-2.5=2.5

返回值:
0 - 兩值相等
1 - 兩值不等
 
avg (sec|#num,<time_shift>)
  指定評估期內一個項目的平均值。 sec or #num - 評估期以秒值或最新值個數(跟在#號后)表示
time_shift (可選) - 時間偏移
支持值的類型: float, int

例如:
⇒ avg(#5) → 五個最新值的平均值
⇒ avg(1h) → 一個小時的平均值
⇒ avg(1h,1d) → 一天前一個小時的平均值。

從Zabbix 1.8.2開始支持time_shift參數。當需要比較當前平均值和指定時間之前的平均值(由time_shift參數指定)時,它就很有用了。
 
band (sec|#num,mask,<time_shift>)
  項目值和掩碼的按位與值。 sec (可省略) or #num - 最新的第N個值
mask (必須有) - 64位無符號整數 (0 - 18446744073709551615)
time_shift (可選) - 參照 avg()
支持值的類型: int

注意此處的 #num 參數和其它一些函數的作用不用 (參照 last()).

盡管以二進制方式進行比較,但是所有的參數和返回值都是十進制數。 例如, 檢查第三位是和4做比較而不是100。

例如:
⇒ band(,12)=8 or band(,12)=4 → 第三位和第四位被設置,但不是同時
⇒ band(,20)=16 → 第三位沒有被設置但是第五位被設置了。

從Zabbix 2.2.0開始支持該函數。
 
change
  最近獲取值與之前獲取值的差。   支持的值類型: float, int, str, text, log

例如:
(最近獲取值;之前獲取值=change)
1;5=+4
3;1=-2
0;-2.5=-2.5

返回值:
0 - 兩值相等
1 - 兩值不等
 
count (sec|#num,<pattern>,<operator>,<time_shift>)
  指定評估期內值的個數。 sec or #num - 評估期以秒值或最新值個數(跟在#號后)表示
pattern (可選) - 所需模式 (整型項目 - 精確匹配; 浮點型項目 - 誤差值0.000001內)
operator (可選)

支持的 operators:
eq - 相等
ne - 不相等
gt - 大於
ge - 大於等於
lt - 小於
le - 小於等於
like - 只要包含pattern (區分大小寫)就被匹配
band - 按位與
regexp - 給定 pattern 的正則表達式,區分大小寫
iregexp - 給定 pattern 的正則表達式,不區分大小寫

注意:
eq (默認), ne, gt, ge, lt, le, band, regexp, iregexp 支持整數型項目
eq (默認), ne, gt, ge, lt, le, regexp, iregexp 支持浮點型項目
like (默認), eq, ne, regexp, iregexp支持string, text and log 型項目

time_shift (可選) - 參照 avg()
支持值的類型: float, int, str, text, log

band 做第三個參數時,第二個 pattern 參數可以用兩個數字表示, 以'/'分隔: number_to_compare_with/mask。 count() 計算項目值和掩碼的按位與,再和 number_to_compare_with 比較的結果。如果按位與值等於 number_to_compare_with ,則計數。
如果掩碼值等於 number_to_compare_with, 只需要指定掩碼值。

regexp 或 iregexp 做為第三個參數時,第二個 pattern 參數可以是一個普通的或 global ( '@' 開頭)的正則表達式。 避免全局表達式大小寫敏感從全局表達式設置中繼承。為了方便正則匹配,浮點型數值通常以四位小數方式表示。也應該注意大數值在以十進制(存儲在數據庫中)和二進制(zabbix server中使用)表示中的區別,可能會影響十進制的第四位小數。

例如:
⇒ count(10m) → 過去10分鍾值的個數
⇒ count(10m,12) → 過去10分鍾值等於12的個數
⇒ count(10m,12,"gt") → 過去10分鍾值大於12的個數
⇒ count(#10,12,"gt") → 最新10個值,它們的值大於12的個數
⇒ count(10m,12,"gt",1d) → 一天前的前十分鍾值大於12的個數
⇒ count(10m,6/7,"band") → 過去10分鍾值最低三個有效位是 '110' (十進制)的個數。
⇒ count(10m,,,1d) → 一天前的前十分鍾值的個數

從Zabbix 1.6.1開始支持#num參數。
從Zabbix 1.8.2開始支持time_shift參數和字符串運算符。
從Zabbix 2.2.0開始支持band運算符。
從Zabbix 3.2.0開始支持regexp, iregexp運算符。
 
date
  當前日期,以YYYYMMDD格式表示。   支持值的類型: any

返回值如: 20150731
 
dayofmonth
  當前是本月的第幾天,取值范圍從1到31。   支持值的類型: any

從Zabbix 1.8.5開始支持該函數。
 
dayofweek
  當前是本周的第幾天,取值范圍從1到7 (周一 - 1, 周日 - 7).   支持值的類型: any
 
delta (sec|#num,<time_shift>)
  指定評估期內最大值和最小值的差('max()' 減去 'min()')。 sec or #num - 評估期以秒值或最新值個數(跟在#號后)表示
time_shift (可選) - see avg()
支持值的類型: float, int

從Zabbix 1.8.2開始支持time_shift參數。
 
diff
  比較最近獲取值與之前獲取值是否相同.   支持值的類型: float, int, str, text, log

返回值:
1 - 兩值不等
0 - 兩值相等
 
forecast (sec|#num,<time_shift>,time,<fit>,<mode>)
  項目的未來值,最大值,最小值,差值或平均值。 sec or #num - 評估期以秒值或最新值個數(跟在#號后)表示
time_shift (可選) - see avg()
time - 需要進行估計的指定時間
fit (可選) - 用於匹配歷史數據的函數

支持的fits:
linear - 線性函數
polynomialN - n次多項式 (1 <= N <= 6)
exponential - 指數函數
logarithmic - 對數函數
power - 冪函數

注意:
默認是linear , polynomial1 等同於 linear

mode (可選) - demanded output

支持的 modes:
value - 值 (默認)
max - 最大值
min - 最小值
delta - 最大值-最小值
avg - 平均值

注意:
value 估計項目值在此刻now + time
max, min, delta and avg 根據nownow + time 時間段估計的項目值確定結果
支持值的類型: float, int

如果返回值大於 999999999999.9999 或者小於 -999999999999.9999, 返回值相應被設置為999999999999.9999 或 -999999999999.9999 。

只有在表達式被誤用時才不被支持(錯誤的項目類型,無效的參數),出現錯誤時返回-1。

例如:
⇒ forecast(#10,,1h) → 根據最新的十個值估計一小時后的項目值
⇒ forecast(1h,,30m) → 根據過去一小時的值估計三十分鍾后的項目值
⇒ forecast(1h,1d,12h) → 根據一天前的一個小時值估計十二個小時后的項目值
⇒ forecast(1h,,10m,exponential) → 根據過去一小時並按照指數函數方式估計十分鍾后的項目值
⇒ forecast(1h,,2h,polynomial3,max) → 根據過去一小時並按照三次多項式方式估計兩小時的最大項目值
⇒ forecast(#​2,,​-20m) → 根據最新的兩個值估計二十分鍾前的項目值 (比使用last()或prev()函數更加精確, 特別是項目很少更新的時候, 比如說, 一小時一次)

從Zabbix 3.0.0開始支持該函數。
​從Zabbix 3.0.6 和 3.2.2開始支持負的​time值。
通過 predictive trigger functions查看擴展信息。
 
fuzzytime (sec)
  檢查項目時間戳和zabbix服務器時間相差多大。 sec - 秒數 支持值的類型: float, int

返回值:
0 - 如果項目時間戳和zabbix服務器時間戳之間相差超過指定的時間
1 - 其它。

常使用system.localtime來檢查本地時間是否與zabbix服務器的時間相同。
也可以使用vfs.file.time[/path/file,modify]鍵值檢測文件是否長時間未更新。

例如:
⇒ fuzzytime(60)=0 → 如果時間差超過60秒,就會檢測到一個問題
 
iregexp (pattern,<sec|#num>)
  該函數和 regexp() 類似,只是不區分大小寫。 see regexp() 支持值的類型: str, log, text
 
last (sec|#num,<time_shift>)
  最近的值。 sec (可省略) or #num - 最新的第N個值
time_shift (可選) - see avg()
支持值的類型: float, int, str, text, log

注意此處的 #num 參數和其它一些函數的作用不用。
例如:
last() 通常等同於 last(#1)
last(#3) - 第三個最新值 (不是三個最新值)

如果在history中同一秒有多個值存在,Zabbix不能保證值的精確順序。

從Zabbix 1.6.2開始支持 #num 參數。
從Zabbix 1.8.2開始支持 time_shift 參數。
 
logeventid (pattern)
  檢查最近日志記錄的EventID是否匹配正則表達式。 pattern - 使用正則表達式表示需要匹配的模式, POSIX extended 類型。 支持值的類型: log

返回值:
0 - 不匹配
1 - 匹配

從Zabbix 1.8.5開始支持該函數。
 
logseverity
  最近日志記錄的日志等級。   支持值的類型: log

返回值:
0 - 默認等級
N - 對應的等級 (整數,常用語Windows event logs: 1 - Information, 2 - Warning, 4 - Error, 7 - Failure Audit, 8 - Success Audit, 9 - Critical, 10 - Verbose).
Zabbix從Windows event log Information域獲取日志等級。
 
logsource (pattern)
  檢查最近的日志記錄是否匹配參數的日志來源。 pattern - string類型 支持值的類型: log

返回值:
0 - 不匹配
1 - 匹配
通常用於Windows event logs. 例如, logsource("VMware Server").
 
max (sec|#num,<time_shift>)
  指定評估期內一個項目的最大值。 sec or #num - 評估期以秒值或最新值個數(跟在#號后)表示
time_shift (可選) - see avg()
支持值的類型: float, int

從Zabbix 1.8.2開始支持 time_shift 參數。
 
min (sec|#num,<time_shift>)
  指定評估期內一個項目的最小值。 sec or #num - 評估期以秒值或最新值個數(跟在#號后)表示
time_shift (可選) - see avg()
支持值的類型: float, int

從Zabbix 1.8.2開始支持 time_shift 參數。
 
nodata (sec)
  檢查是否沒有接收到數據。 sec - 評估期以秒值表示。
時間不應該少於30秒,因為timer處理器每30秒計算一次該函數。

nodata(0) 不被允許.
支持值的類型: any

返回值:
1 - 指定評估期沒有接收到數據
0 - 其它

注意,如果在第一個參數指定的時間內出現以下問題,該函數會報錯:
- 沒有數據以及Zabbix server被重啟
- 沒有數據以及修復完成
- 沒有數據以及項目被添加或重新激活
錯誤顯示在觸發器configuration的 Info 列 .
 
now
  距離Epoch (00:00:00 UTC, January 1, 1970)時間的秒數。   支持值的類型: any
 
percentile (sec|#num,<time_shift>,percentage)
  P-th 一段時間的百分值, P (percentage) 做為第三個參數。 sec or #num - 評估期以秒值或最新值個數(跟在#號后)表示
time_shift (可選) - see avg()
percentage - 0 and 100 (包括)之間的一個浮點數,小數點后最多四位
支持值的類型: float, int

從Zabbix 3.0.0開始支持該函數。
 
prev
  前一個值。   支持值的類型: float, int, str, text, log

返回值和 last(#2)相同。
 
regexp (pattern,<sec|#num>)
  檢查最近的值是否匹配正則表達式。 pattern - 正則表達式, POSIX extended 樣式。
sec or #num (可選) - 評估期以秒值或最新值個數(跟在#號后)表示。 這種情況下,可處理一個值以上。
支持值的類型: str, text, log

返回值:
1 - 找到
0 - 其它

該函數區分大小寫。
 
str (pattern,<sec|#num>)
  從最新值中查找一個字符串。 pattern - string型
sec or #num (可選) - 評估期以秒值或最新值個數(跟在#號后)表示。 這種情況下,可處理一個值以上。
支持值的類型: str, text, log

返回值:
1 - 找到
0 - 其它

該函數區分大小寫。
 
strlen (sec|#num,<time_shift>)
  最新值的字符長度(而不是字節數)。 sec (可省略) or #num - 最新的第N個值
time_shift (可選) - see avg()
支持值的類型: str, text, log

注意此處的 #num 參數和其它一些函數的作用不用。

例如:
⇒ strlen()(等同於 strlen(#1)) → 最新值的長度
⇒ strlen(#3) → 最新的第三個值的長度
⇒ strlen(,1d) → 一天前最新值的長度。

從Zabbix 1.8.4開始支持該函數。
 
sum (sec|#num,<time_shift>)
  指定評估期內項目值的和。 sec or #num - 評估期以秒值或最新值個數(跟在#號后)表示。
time_shift (可選) - see avg()
支持值的類型: float, int

從Zabbix 1.8.2開始支持 time_shift 參數。
 
time
  當前時間,以HHMMSS格式表示。   支持值的類型: any

返回值如: 123055
 
timeleft (sec|#num,<time_shift>,threshold,<fit>)
  達到閥值需要多久時間。 sec or #num - 評估期以秒值或最新值個數(跟在#號后)表示。
time_shift (可選) - see avg()
threshold - 閥值
fit (可選) - see forecast()
支持值的類型: float, int

如果返回值大於 999999999999.9999, 則被設置為999999999999.9999.

如果達不到閥值則將返回值設置為999999999999.9999。

只有在表達式被誤用時才不被支持(錯誤的項目類型,無效的參數),出現錯誤時返回-1。

例如:
⇒ timeleft(#10,,0) → 根據最新的十個值估計項目值達到0需要的時間
⇒ timeleft(1h,,100) → 根據過去一小時的值估計項目值達到100需要的時間
⇒ timeleft(1h,1d,0) → 根據一天前的一個小時值估計項目值達到0需要的時間
⇒ timeleft(1h,,200,polynomial2) → 根據過去一小時並按照二次多項式方式估計項目值達到200需要的時間

從Zabbix 3.0.0開始支持該函數。
從Zabbix 3.0.6 和 3.2.2開始支持Unit symbols 的 ​threshold 參數。
通過 predictive trigger functions查看擴展信息。


免責聲明!

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



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