使用者自定義引數
使用者定義引數可以用來幫助使用者實現透過Zabbix agent執行非Zabbix原生的 agent check。
你可以編寫一個命令來檢索所需的資料,並將其包含在使用者自定義引數agent 配置檔案中 ("UserParameter" 引數配置)。
一條使用者自定義引數配置應當使用以下語法:
如你所見,一條使用者自定義引數除了命令部分,還包括一個key。這個key將在配置監控項時使用。輸入你選擇的易於引用的key(key在一臺主機中必須是唯一的)。重啟agent。
接下來,在配置配置監控項時,輸入要執行的來自使用者自定義引數中的,引用命令的key。
使用者自定義引數是由Zabbix agent來執行命令的。在監控項預處理步驟前,最多可以返回512KB的資料。但是,請注意,最終可以儲存在資料庫中的文字值,在MySQL上的限制為64KB(其他資料庫的資訊請參閱資料表)。
/bin/sh 在UNIX作業系統中,作為命令列直譯器使用。使用者自定義引數參照agent check超時;如果超時時間到了,那麼執行使用者自定義引數的子程序將會被中止。
參見:
使用者自定義引數用例
一個簡單的命令:
agent 將始終為使用“ping”為key的監控項返回“1”。
一個複雜一些的例子:
如果Mysql伺服器是活動狀態,agent將返回“1”,否則會返回“0”。
靈活的使用者自定義引數
靈活的使用者自定義引數可以從key中接受引數。這是一種使用一個使用者自定義引數建立多個監控項的方式。
靈活的使用者自定義引數有以下語法:
示例一
先來一個簡單的:
我們可以定義無數個監控項來監控所有形如ping[something]格式的東西。
示例二
讓我們更進一步!
這個使用者自定義引數可以用來監控 MySQL 資料庫的狀態。可以想下面的樣式傳入使用者名稱和密碼:
示例三
一個檔案中有多少行匹配正則表示式?
這個使用者自定義引數能用來計算一個檔案中有多少行匹配相應的表示式。就像下面一樣:
命令結果
命令的返回值是標準輸出和標準錯誤。
返回文字的使用者自定義引數(字元,日誌,文字資訊型別)可以返回空格。如果結果不可用,那麼這個監控項會變為不支援狀態。
使用者自定義引數
使用者定義引數可以用來幫助使用者實現透過Zabbix agent執行非Zabbix原生的 agent check。
你可以編寫一個命令來檢索所需的資料,並將其包含在使用者自定義引數agent 配置檔案中 ("UserParameter" 引數配置)。
一條使用者自定義引數配置應當使用以下語法:
UserParameter=<key>,<command>如你所見,一條使用者自定義引數除了命令部分,還包括一個key。這個key將在配置監控項時使用。輸入你選擇的易於引用的key(key在一臺主機中必須是唯一的)。重啟agent。
接下來,在配置配置監控項時,輸入要執行的來自使用者自定義引數中的,引用命令的key。
使用者自定義引數是由Zabbix agent來執行命令的。在監控項預處理步驟前,最多可以返回512KB的資料。但是,請注意,最終可以儲存在資料庫中的文字值,在MySQL上的限制為64KB(其他資料庫的資訊請參閱資料表)。
/bin/sh 在UNIX作業系統中,作為命令列直譯器使用。使用者自定義引數參照agent check超時;如果超時時間到了,那麼執行使用者自定義引數的子程序將會被中止。
參見:
分佈教程 配置使用者自定引數 parameters命令執行使用者自定義引數用例
一個簡單的命令:
UserParameter=ping,echo 1agent 將始終為使用“ping”為key的監控項返回“1”。
一個複雜一些的例子:
UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive如果Mysql伺服器是活動狀態,agent將返回“1”,否則會返回“0”。
靈活的使用者自定義引數
靈活的使用者自定義引數可以從key中接受引數。這是一種使用一個使用者自定義引數建立多個監控項的方式。
靈活的使用者自定義引數有以下語法:
UserParameter=key[*],command Parameter引數Description描述 Key 唯一的監控項key。 [*] 用於定義該key接受括號內的引數。引數需在配置監控項時給出 Command 命令在執行時,引用key中指定的值只對靈活的使用者引數有效:你可以在命令中使用位置引用$1 … $9來引用監控項Key中的相應引數。Zabbix解析監控項Key的[]中包含的引數,並相應地替換$1,…,$9。$0會替換為完整的原始命令(在對$0,…,$9執行替換之前的命令)執行。不管位置引數($0,…,$9)是用雙引號( “ )還是單引號( " )括起來,都會解析位置引用。 要使用位置引用解析,請指定雙美元符號($) - 例如, 。 在這種情況下,執行命令時, 實際上會變成 。 僅對靈活的使用者自定義引數進行搜尋具有 符號的位置引用並由Zabbix agent解析替換。 對於簡單的使用者自定義引數,跳過此類參考處理,因此不需要任何$符號引用。預設情況下,不允許使用者在使用者自定義引數中使用某些特殊符號。詳情請移步 UnsafeUserParameters ,查詢相關的符號列表示例一
先來一個簡單的:
UserParameter=ping[*],echo $1我們可以定義無數個監控項來監控所有形如ping[something]格式的東西。
ping[0] - 將總是返回 ‘ 0 ’ping[aaa] - 將總是返回 ‘aaa’示例二
讓我們更進一步!
UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive這個使用者自定義引數可以用來監控 MySQL 資料庫的狀態。可以想下面的樣式傳入使用者名稱和密碼:
mysql.ping[zabbix,our_password]示例三
一個檔案中有多少行匹配正則表示式?
UserParameter=wc[*],grep -c "$2" $1這個使用者自定義引數能用來計算一個檔案中有多少行匹配相應的表示式。就像下面一樣:
wc[/etc/passwd,root] wc[/etc/services,zabbix]命令結果
命令的返回值是標準輸出和標準錯誤。
標準錯誤情況下,不支援文字(字元、日誌或是文字型別的資訊)的監控項返回文字的使用者自定義引數(字元,日誌,文字資訊型別)可以返回空格。如果結果不可用,那麼這個監控項會變為不支援狀態。