概述
預處理允許為接收到的item值定義轉換規則。 在保存到數據庫之前,可以進行一次或多次轉換。
轉換按照定義的順序執行。 預處理由 Zabbix server或proxy完成(如果item由proxy監控)。
請注意,轉換為所需值類型(在item配置中定義)是在預處理管道結束時執行的;
預處理各個參數講解
Text
- Regular expression
將值與正則表達式pattern進行匹配,並將值輸出到output,正則表達式支持使用 \N 序列提取最多 10 個捕獲的組
如果勾選了“Custom on fail”復選框,在預處理失敗的情況下item不會變成不支持,並且可以自定義錯誤處理選項:
discard the value:丟棄值
set value to:設置指定的值
set error to:設置指定的錯誤消息
正則表達式支持全局表達式(通過@+名稱引用),也可以手動填寫
- 全局正則表達式講解
Character string included - 匹配子字符串
Any character string included - 匹配分隔列表中的任何子字符串。 分隔列表包括逗號 (,)、點 (.) 或正斜杠 (/)。
Character string not included - 匹配除子字符串之外的任何字符串
Result is TRUE - 匹配正則表達式
Result is FALSE - 不匹配正則表達式
Case sensitive - 一個復選框,用於指定正則表達式是否對字母的大小寫敏感。
- Replace
找到搜索字符串並將其替換為另一個(或沒有)。 將替換所有出現的搜索字符串。
參數:
search string - 要查找和替換的字符串,區分大小寫(必需)
replacement - 用於替換搜索字符串的字符串。 替換字符串也可以為空,有效地允許在找到時刪除搜索字符串。
可以使用轉義序列來搜索或替換換行符、回車、制表符和空格“\n \r \t \s”; 反斜杠可以轉義為“\\”,轉義序列可以轉義為“\\n”。 在低級發現期間自動完成換行符、回車、制表符的轉義。
- Trim
從值的開頭和結尾刪除指定的字符。
- Right trim
從值的末尾刪除指定的字符。
- Left trim
從值的開頭刪除指定的字符。
Structured data
- XML XPath
使用 XPath 功能從 XML 數據中提取值或片段。
要使此選項起作用,Zabbix 服務器必須使用 libxml 支持進行編譯。
- JSON Path
使用 JSONPath 功能從 JSON 數據中提取值或片段。
- CSV to JSON
將 CSV 文件數據轉換為 JSON 格式。參考鏈接
Arithmetic
- Custom multiplier
將該值乘以指定的整數或浮點值。
請注意,如果信息的項目類型是數字(無符號),則在應用自定義乘數之前,將修剪帶有小數部分的傳入值(即“0.9”將變為“0”)。
Change
- Simple change
計算當前值與先前值之間的差值
- Change per second
計算每秒的值變化(當前值和先前值之間的差異)速度。
Numeral systems
- Boolean to decimal
布爾類型轉換為十進制
文本表示被轉換為 0 或 1。因此,“TRUE”存儲為 1,“FALSE”存儲為 0。所有值都以不區分大小寫的方式匹配。 當前公認的值是:
TRUE - true, t, yes, y, on, up, running, enabled, available, ok, master
FALSE - false, f, no, n, off, down, unused, disabled, unavailable, err, slave
- Octal to decimal
將值從八進制格式轉換為十進制。
- Hexadecimal to decimal
將值從十六進制格式轉換為十進制。
Custom scripts
- JavaScript
Validation
- In range
通過指定最小/最大值(包括)來定義一個值應該在的范圍。
- Matches regular expression
指定一個值必須匹配的正則表達式。
- Does not match regular expression
指定一個值不能匹配的正則表達式
- Check for error in JSON
檢查位於 JSONpath 的應用程序級錯誤消息。
- Check for error using a regular expression
使用正則表達式檢查應用程序級錯誤消息。
- Check for not supported value
Throttling
- Discard unchanged
如果值未更改,則丟棄它。
如果一個值被丟棄,它不會保存在數據庫中,並且 Zabbix 服務器不知道該值已被接收。 不會評估觸發器表達式,因此不會創建/解決相關觸發器的問題。 函數僅基於實際保存在數據庫中的數據起作用。 由於趨勢是基於數據庫中的數據構建的,如果一個小時內沒有保存值,那么該小時也沒有趨勢數據。
- Discard unchanged with heartbeat
如果值在定義的時間段(以秒為單位)內未更改,則丟棄該值。
Prometheus
- Prometheus pattern
- Prometheus to JSON