用戶自定義參數(shù)
用戶定義參數(shù)可以用來幫助用戶實現(xiàn)通過Zabbixagent執(zhí)行非Zabbix原生的agentcheck。
你可以編寫一個命令來檢索所需的數(shù)據(jù),并將其包含在用戶自定義參數(shù)agent配置文件中('UserParameter'參數(shù)配置)。
一條用戶自定義參數(shù)配置應(yīng)當使用以下語法:
UserParameter=<key>,<command>如你所見,一條用戶自定義參數(shù)除了命令部分,還包括一個key。這個key將在配置監(jiān)控項時使用。輸入你選擇的易于引用的key(key在一臺主機中必須是唯一的)。重啟agent。
接下來,在配置配置監(jiān)控項時,輸入要執(zhí)行的來自用戶自定義參數(shù)中的,引用命令的key。
用戶自定義參數(shù)是由Zabbixagent來執(zhí)行命令的。在監(jiān)控項預(yù)處理步驟前,最多可以返回512KB的數(shù)據(jù)。但是,請注意,最終可以存儲在數(shù)據(jù)庫中的文本值,在MySQL上的限制為64KB(其他數(shù)據(jù)庫的信息請參閱數(shù)據(jù)表)。
/bin/sh在UNIX操作系統(tǒng)中,作為命令行解釋器使用。用戶自定義參數(shù)參照agentcheck超時;如果超時時間到了,那么執(zhí)行用戶自定義參數(shù)的子進程將會被中止。
參見:
- 分布教程配置用戶自定參數(shù)parameters
- 命令執(zhí)行
用戶自定義參數(shù)用例
一個簡單的命令:
UserParameter=ping,echo1agent將始終為使用“ping”為key的監(jiān)控項返回“1”。
一個復(fù)雜一些的例子:
UserParameter=mysql.ping,mysqladmin-urootping|grep-calive如果Mysql服務(wù)器是活動狀態(tài),agent將返回“1”,否則會返回“0”。
靈活的用戶自定義參數(shù)
靈活的用戶自定義參數(shù)可以從key中接受參數(shù)。這是一種使用一個用戶自定義參數(shù)創(chuàng)建多個監(jiān)控項的方式。
靈活的用戶自定義參數(shù)有以下語法:
UserParameter=key[*],commandParameter參數(shù)Description描述Key唯一的監(jiān)控項key。[*]用于定義該key接受括號內(nèi)的參數(shù)。參數(shù)需在配置監(jiān)控項時給出Command命令在執(zhí)行時,引用key中指定的值只對靈活的用戶參數(shù)有效:你可以在命令中使用位置引用$1…$9來引用監(jiān)控項Key中的相應(yīng)參數(shù)。Zabbix解析監(jiān)控項Key的[]中包含的參數(shù),并相應(yīng)地替換$1,…,$9。$0會替換為完整的原始命令(在對$0,…,$9執(zhí)行替換之前的命令)運行。不管位置參數(shù)($0,…,$9)是用雙引號(“)還是單引號(')括起來,都會解析位置引用。要使用位置引用解析,請指定雙美元符號($)-例如,。在這種情況下,執(zhí)行命令時,實際上會變成。僅對靈活的用戶自定義參數(shù)進行搜索具有符號的位置引用并由Zabbixagent解析替換。對于簡單的用戶自定義參數(shù),跳過此類參考處理,因此不需要任何$符號引用。默認情況下,不允許用戶在用戶自定義參數(shù)中使用某些特殊符號。詳情請移步UnsafeUserParameters,查詢相關(guān)的符號列表示例一
先來一個簡單的:
UserParameter=ping[*],echo$1我們可以定義無數(shù)個監(jiān)控項來監(jiān)控所有形如ping[something]格式的東西。
- ping[0]-將總是返回‘0’
- ping[aaa]-將總是返回‘a(chǎn)aa’
示例二
讓我們更進一步!
UserParameter=mysql.ping[*],mysqladmin-u$1-p$2ping|grep-calive這個用戶自定義參數(shù)可以用來監(jiān)控MySQL數(shù)據(jù)庫的狀態(tài)。可以想下面的樣式傳入用戶名和密碼:
mysql.ping[zabbix,our_password]示例三
一個文件中有多少行匹配正則表達式?
UserParameter=wc[*],grep-c"$2"$1這個用戶自定義參數(shù)能用來計算一個文件中有多少行匹配相應(yīng)的表達式。就像下面一樣:
wc[/etc/passwd,root]wc[/etc/services,zabbix]命令結(jié)果
命令的返回值是標準輸出和標準錯誤。
標準錯誤情況下,不支持文本(字符、日志或是文本類型的信息)的監(jiān)控項返回文本的用戶自定義參數(shù)(字符,日志,文本信息類型)可以返回空格。如果結(jié)果不可用,那么這個監(jiān)控項會變?yōu)椴恢С譅顟B(tài)。