zabbix自定義用戶key

有時咱們須要被監控端執行一個zabbix沒有預約義的檢測項,zabbix的用戶自定義參數功能提供了這個方法。咱們能夠在客戶端配置文件zabbix_angentd.conf裏面配置UserParameter或者在/etc/zabbix/zabbix_agentd.d/目錄下編輯配置文件,其語法相同爲:mysql

UserParameter=key,command

用戶自定義參數包含一個key和一個命令,key必須整個系統惟一,配置好以後,重啓客戶端;sql

而後配置item,在key的位置填上咱們自定義的key便可。安全

用戶自定義參數裏指定的腳本由zabbix agent來執行,最大能夠返回512KB的數據bash


簡單點的命令示例:
UserParameter=ping,echo 1
若是調用ping這個key,將會收到返回值1.
更復雜的命令示例:
UserParameter=mysql.ping,mysqladmin -uroot ping|grep -c alive
若是返回1表示MySQL運行中,若是返回0表示MySQL掛了ide


以下爲靈活的用戶自定義參數測試

UserParameter=key[*],command

key        惟一. [*]表示裏面能夠傳遞多個參數命令行

command    須要執行的腳本,key的[]裏面的參數一一對應$1到$9,一共9個參數。$0表示腳本命令ci


注意:it

  1. 若是須要使用命令行裏面出現$2這種變量,那麼你要使用兩個$$2,例如awk ’{ print $$2 }’,以前就遇到過這個問題,不停的測試本身腳本輸出正常,可是zabbix卻拿不到數據,原來是出在這裏。爲了防止和參數衝突,因此zabbix作了這 個規定。class

  2. zabbix禁止使用一些不安全的參數,以下:
        \ ' 」 ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @

  3. 從zabbix 2.0開始,zabbix返回文本數據能夠是空格


例一:

UserParameter=ping[*],echo $1
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]

相關文章
相關標籤/搜索