1. Zabbix自定義監控參數
zabbix在模闆中預定義了一些key,但通常情況,并不能滿足我們的需求。幸運的是zabbix提供了自定義key的方法,是以我們可以靈活的監控各種我們想要監控的資料。
1.1.定義配置檔案
通過yum安裝的
zabbix-agent
配置檔案路徑為
/etc/zabbix/zabbix_agentd.conf
。
大約在這個檔案的
255
行
左右,我們可以發現下面的代碼:
Include=/etc/zabbix/zabbix_agentd.d/
我們自定義的配置,可以放到這個目錄。
我們可以建立一個自定義的檔案來定義我們需要的key:
[root@monitorzabbix_agentd.d]# vim userparameter_system.conf
#自定義監控作業系統基礎性能腳本
#時間:2016-12-16
#作者:zy
#用途:磁盤狀态監控
#狀态:2016-12-16 add by zy
UserParameter=custom.vfs.dev.read.ops[*],cat/proc/diskstats | grep $1 | head -1 |awk '{print $$4}'
UserParameter=custom.vfs.dev.read.ms[*],cat/proc/diskstats | grep $1 | head -1 | awk '{print $$7}'
UserParameter=custom.vfs.dev.write.ops[*],cat/proc/diskstats | grep $1 | head -1 | awk '{print $$8}'
UserParameter=custom.vfs.dev.write.ms[*],cat/proc/diskstats | grep $1 | head -1 | awk '{print $$11}'
UserParameter=custom.vfs.dev.io.active[*],cat/proc/diskstats | grep $1 | head -1 | awk '{print $$12}'
UserParameter=custom.vfs.dev.io.ms[*],cat/proc/diskstats | grep $1 | head -1 | awk '{print $$13}'
UserParameter=custom.vfs.dev.read.sectors[*],cat/proc/diskstats | grep $1 | head -1 | awk '{print $$6}'
UserParameter=custom.vfs.dev.write.sectors[*],cat/proc/diskstats | grep $1 | head -1 | awk '{print $$10}'
#儲存之後重新開機zabbix-agent。
1.2.測試擷取自定義key值
在zabbix-server上使用zabbix_get工具擷取自定義值。
[root@monitorzabbix_agentd.d]# zabbix_get -s 10.252.109.13 -p 10050 -kcustom.vfs.dev.write.ops[sda] 4831352
擷取到了上面例子中執行的結果,說明配置是成功的。
在zabbix_agentd.d目錄自定義的參數腳本:
[root@monitorzabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[root@monitorzabbix_agentd.d]# ls
userparameter_mysql.conf userparameter_system.conf userparameter_kucun.conf
[root@monitorzabbix_agentd.d]#
[root@monitor scripts]#pwd
/etc/zabbix/zabbix_agentd.d/scripts
mkdir -p/etc/zabbix/script/
vim/etc/zabbix/script/kucun.sh
我們定義腳本,輸入一個店鋪号來查詢這個店鋪中商品數量小于n的條數。
若手動執行查詢,查詢方式是這樣的:
shell>/etc/zabbix/script/kucun.sh bj001 30
2
輸出2即表示有2個商品數量小于30。
下面是腳本的内容:
#!/bin/bash
shop_id=$1
number=$2
dbhost="100.10.1.2"
dbuser="monitor"
dbpasswd="21"
sql="SELECTcount(*) FROM lsp_cus.menu WHERE shop_no = \"$shop_id\" AND date =UNIX_TIMESTAMP(DATE_FORMAT(NOW(),'%Y-%m-%d')) AND num - sale <\"$number\""
mysql-h$dbhost -u$dbuser -p$dbpasswd -Ne "$sql"
1.3.使用腳本查詢的結果建立key
重新編輯
vim/etc/zabbix/zabbix_agent.d/userparameter_script.conf
檔案修改為:
#
這個檔案監控自定義腳本輸出值
#
格式為
UserParameter=<key>,<command>
UserParameter=script.kucun[*],/etc/zabbix/script/kucun.sh$1 $2
1.4.通過zabbix-server查詢
在zabbix伺服器上使用zabbix_get工具查詢店鋪号001,庫存小于30的商品數量。
shell>zabbix_get -s 100.10.1.2 -k script.kucun[001,30]
18
可以看到成功了。
1.5.上面用到方法的一些解釋
UserParameter=key[*],command
key
為唯一值,
[*]
表示參數。
command
為要執行的指令或腳本,
key
的
[*]
裡面的參數一一對應
$1
到
$9
,一共9個參數。
$0
表示腳本指令。傳回結果資料最大為
512KB
參數禁止使用下列字元:
\ ‘ ” ` * ? [ ]{ } ~ $ ! & ; ( ) <> | # @