zabbixはディスクを自動的に発見し、ディスクIOを監視する
転載先http://www.jianshu.com/p/62c86a397b4d
サーバディスクの動作は、システムの負荷にある程度反応します.ディスクは通常、サーバが最も遅いデバイスであり、ボトルネックが発生しやすく、監視によってシステム全体のショートボードを判断することができます.zabbixが持参した「Template OS Linux」テンプレートは、ディスクを自動的に発見し、空間利用率を監視することができます.今回はzabbix LLD機能を利用してディスクIOを監視する方法を紹介します.使用するシステムコマンドは/proc/diskstatsです
ダイナミックディスクIOモニタで使用した3つのファイルをgithubにアップロードしました
https://github.com/JPOPS/Monitor/tree/master/zabbix-DiskIO
自動検出スクリプト
スクリプトは編集者が直接書くものではなく、ネットワークから来ています.
zabbix agent構成 zabbix agentプロファイルを編集し、Includeディレクトリを設定する: keyファイルをagent構成フォルダの下に配置し、クライアント を再起動する.
Web構成導入Template_Linux_Disk_IO_Stats.xml 「管理」>「一般」>「正規表現」>「新しい正規表現」正規表現の内容は、自分のホストのハードディスク名に基づいて記入します.タイプは、結果として真の です.
テンプレートを追加すると後でグラフィックが描画されます
サーバディスクの動作は、システムの負荷にある程度反応します.ディスクは通常、サーバが最も遅いデバイスであり、ボトルネックが発生しやすく、監視によってシステム全体のショートボードを判断することができます.zabbixが持参した「Template OS Linux」テンプレートは、ディスクを自動的に発見し、空間利用率を監視することができます.今回はzabbix LLD機能を利用してディスクIOを監視する方法を紹介します.使用するシステムコマンドは/proc/diskstatsです
ダイナミックディスクIOモニタで使用した3つのファイルをgithubにアップロードしました
https://github.com/JPOPS/Monitor/tree/master/zabbix-DiskIO
#
/usr/local/zabbix/scripts/discover_disk.pl# web
Template_Linux_Disk_IO_Stats.xml#zabbix key
/usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_io_stats
自動検出スクリプト
スクリプトは編集者が直接書くものではなく、ネットワークから来ています.
#!/usr/bin/perlsub get_vmname_by_id
{
$vmname=`cat /etc/qemu-server/$_[0].conf | grep name | cut -d \: -f 2`;
$vmname =~ s/^\s+//; #remove leading spaces
$vmname =~ s/\s+$//; #remove trailing spaces
return $vmname
}
$first = 1;print "{
";print "\t\"data\":[
";for (`cat /proc/diskstats`)
{
($major,$minor,$disk) = m/^\s*([0-9]+)\s+([0-9]+)\s+(\S+)\s.*$/;
$dmnamefile = "/sys/dev/block/$major:$minor/dm/name";
$vmid= "";
$vmname = "";
$dmname = $disk;
$diskdev = "/dev/$disk"; # DM name
if (-e $dmnamefile) {
$dmname = `cat $dmnamefile`;
$dmname =~ s/
$//; #remove trailing
$diskdev = "/dev/mapper/$dmname"; # VM name and ID
if ($dmname =~ m/^.*--([0-9]+)--.*$/) {
$vmid = $1; #$vmname = get_vmname_by_id($vmid);
}
} #print("$major $minor $disk $diskdev $dmname $vmid $vmname
");
print "\t,
" if not $first;
$first = 0; print "\t{
"; print "\t\t\"{#DISK}\":\"$disk\",
"; print "\t\t\"{#DISKDEV}\":\"$diskdev\",
"; print "\t\t\"{#DMNAME}\":\"$dmname\",
"; print "\t\t\"{#VMNAME}\":\"$vmname\",
"; print "\t\t\"{#VMID}\":\"$vmid\"
"; print "\t}
";
}print "
\t]
";print "}
";
zabbix agent構成
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
# diskio discoveryUserParameter=discovery.disks.iostats,/usr/local/zabbix/scripts/discover_disk.pl# 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}'# UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep $1 | head -1 |awk '{print $$4}'# UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$8}'# UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$7}'# UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$11}'
Web構成
#Linux disks for autodiscovery
^(xvda|xvdb|xvdc|sda|sdb|sdc)$
テンプレートを追加すると後でグラフィックが描画されます