|
為什么要自定義KEY
有時候我們想讓被監(jiān)控端執(zhí)行一個zabbix沒有預定義的檢測,zabbix的用戶自定義參數(shù)功能提供了這個方法。我們可以在客戶端配置文件zabbix_angentd.conf里面配置UserParameter.
語法如下:
|
|
UserParameter=key,command |
用戶自定義參數(shù)包含一個key和一個命令,key必須整個系統(tǒng)唯一,配置好之后,重啟客戶端。
然后配置item,在key的位置填上我們自定義的key即可。
用戶自定義參數(shù)里指定的腳本由zabbix agent來執(zhí)行,最大可以返回512KB的數(shù)據(jù).
用戶自定義key實例
簡單點的命令示例:
UserParameter=ping,echo 1
如果調用ping這個key,將會收到返回值1.
更復雜的命令示例:
UserParameter=mysql.ping,mysqladmin -uroot ping|grep -c alive
如果返回1表示MySQL運行中,如果返回0表示MySQL掛了
靈活的自定義key:
如下為靈活的用戶自定義參數(shù)
|
|
UserParameter=key[*],command |
| 參數(shù) |
描述 |
| Key |
唯一. [*]表示里面可以傳遞多個參數(shù) |
| Command |
需要執(zhí)行的腳本,key的[]里面的參數(shù)一一對應$1到$9,一共9個參數(shù)。$0表示腳本命令. |
注意事項
1. 如果需要使用命令行里面出現(xiàn)$2這種變量,那么你要使用兩個$$2,例如awk ’{ print $$2 }’,之前就遇到過這個問題,不停的測試自己腳本輸出正常,但是zabbix卻拿不到數(shù)據(jù),原來是出在這里。為了防止和參數(shù)沖突,所以zabbix做了這個規(guī)定。
2. zabbix禁止使用一些不安全的參數(shù),如下:
\ ' ” ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
3. 從zabbix 2.0開始,zabbix返回文本數(shù)據(jù)可以是空格。
示例1
UserParameter=ping[*],echo $1
ping[0] - 將一直返回0
ping[aaa] - 將一直返回 'aaa'
示例2
UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive
如下參數(shù)用于監(jiān)控MYSQL,并且可以傳遞用戶名和密碼。
mysql.ping[zabbix,our_password]
示例3
統(tǒng)計一個文件中有多少行被匹配?
UserParameter=wc[*],grep -c "$2" $1
如下方法將會返回文件中出現(xiàn)指定字符的行數(shù)
wc[/etc/passwd,root]
wc[/etc/services,zabbix]
|