天天看點

zabbix監控磁盤IO

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

參數禁止使用下列字元:

\ ‘ ” ` * ? [ ]{ } ~ $ ! & ; ( ) <> | # @