| 函數 | |||
|---|---|---|---|
| 描述 | 參數 | 說明 | |
| 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 + timemax, min, delta and avg 根據 now 和 now + 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查看擴展信息。 |
|
