2010.11.18
waka

SNMPでシステム監視(3)

SNMPでシステム監視(2)からの続き

今回はサーバーの監視設定について。

管理マネージャ:CentOS 5.4 (IP 192.168.1.10)
エージェント1:CentOS 5.4 + MySQL (IP 192.168.1.101)
エージェント2:Windows Vista (IP 192.168.1.102)
エージェント3:ルーター(Yamaha SRT100) (IP 192.168.1.103)

管理マネージャの設定は前回行っているので、エージェント1の設定を行います。

[root@agent1 ]# yum install net-snmpwalk

マネージャからのアクセスを許可するようsnmpd.confの変更

[root@agent1 ]# vi /etc/snmp/snmpd.conf

## sec.name source community
#com2sec local localhost COMMUNITY
#com2sec mynetwork NETWORK/24 COMMUNITY
com2sec local localhost private
com2sec mynetwork 192.168.1.0/24 public

## group.name sec.model sec.name
#group MyRWGroup any local
#group MyROGroup any mynetwork
#
#group MyRWGroup any otherv3user
#…
group MyROGroup v1 mynetwork
group MyROGroup v2c mynetwork

# Make at least snmpwalk -v 1 localhost -c public system fast again.
# name incl/excl subtree mask(optional)
#view systemview included .1.3.6.1.2.1.1
#view systemview included .1.3.6.1.2.1.25.1.1
view all included .1 80

####
# Finally, grant the group read-only access to the systemview view.

# group context sec.model sec.level prefix read write notif
#iaccess notConfigGroup “” any noauth exact none none none
access MyROGroup “” any noauth exact all none none
access MyRWGroup “” any noauth exact all all none

ここまで設定が完了した時点でsnmpdを起動
[root@agent1 ]# service snmpd restart

これでエージェント側は準備完了(iptablesなどは環境に合わせて変更が必要)
マネージャ側からsnmpwalkで値がとれるか確認してみます。

[root@manager ]# snmpwalk -c public -v 2c 192.168.1.101 IF-MIB::ifHCInMulticastPkts.2
IF-MIB::ifHCInMulticastPkts.1 = Counter64: 0
IF-MIB::ifHCInMulticastPkts.2 = Counter64: 927
IF-MIB::ifHCInMulticastPkts.3 = Counter64: 0
IF-MIB::ifHCInMulticastPkts.4 = Counter64: 0

こんな感じで取得できればOKです
ちなみにOIDの引数をつけずに取得すると全ての値が取得できます。

[root@manager ]# snmpwalk -c public -v 2c 192.168.1.101 ※全件取得

サーバーのリソースも取得できます。

[root@manager ]# snmpwalk -c public -v 2c 192.168.1.101 .1.3.6.1.2.1.25
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (242908017) 28 days, 2:44:40.17
HOST-RESOURCES-MIB::hrSystemDate.0 = STRING: 2010-11-15,12:23:14.0,+9:0
HOST-RESOURCES-MIB::hrSystemInitialLoadDevice.0 = INTEGER: 1536
HOST-RESOURCES-MIB::hrSystemInitialLoadParameters.0 = STRING: “ro root=/dev/VolGroup00/LogVol00

HOST-RESOURCES-MIB::hrSystemNumUsers.0 = Gauge32: 1
HOST-RESOURCES-MIB::hrSystemProcesses.0 = Gauge32: 73
HOST-RESOURCES-MIB…

追っていくと分かるようにメモリ/HDDの全体量、使用量などが算出できます。

○全体量と消費量
.1.3.6.1.2.1.25.2.3.1.3 をみると
[root@manager ]# snmpwalk -c public -v 2c 192.168.1.101 .1.3.6.1.2.1.25.2.3.1.3
HOST-RESOURCES-MIB::hrStorageDescr.1 = STRING: Memory Buffers
HOST-RESOURCES-MIB::hrStorageDescr.2 = STRING: Real Memory
HOST-RESOURCES-MIB::hrStorageDescr.3 = STRING: Swap Space
HOST-RESOURCES-MIB::hrStorageDescr.4 = STRING: /
HOST-RESOURCES-MIB::hrStorageDescr.5 = STRING: /boot
となっており、.2が実メモリ、.4が”/”のストレージだと分かる。

同様に
.1.3.6.1.2.1.25.2.3.1.4 ではそれぞれのアロケーション ユニット サイズが取得でき、
.1.3.6.1.2.1.25.2.3.1.5 でそれぞれのストレージ全体のサイズ、
.1.3.6.1.2.1.25.2.3.1.6 でそれぞれのストレージの使用中のサイズが取得できる。

[root@manager ]# snmpwalk -c public -v 2c 192.168.1.101 .1.3.6.1.2.1.25.2.3.1.4
HOST-RESOURCES-MIB::hrStorageAllocationUnits.1 = INTEGER: 1024 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.2 = INTEGER: 1024 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.3 = INTEGER: 1024 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.4 = INTEGER: 4096 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.5 = INTEGER: 1024 Bytes
[root@manager ]# snmpwalk -c public -v 2c 192.168.1.101 .1.3.6.1.2.1.25.2.3.1.5
HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 2057772
HOST-RESOURCES-MIB::hrStorageSize.2 = INTEGER: 2057772
HOST-RESOURCES-MIB::hrStorageSize.3 = INTEGER: 4095992
HOST-RESOURCES-MIB::hrStorageSize.4 = INTEGER: 235508135
HOST-RESOURCES-MIB::hrStorageSize.5 = INTEGER: 101086
[root@manager ]# snmpwalk -c public -v 2c 192.168.1.101 .1.3.6.1.2.1.25.2.3.1.6
HOST-RESOURCES-MIB::hrStorageUsed.1 = INTEGER: 27084
HOST-RESOURCES-MIB::hrStorageUsed.2 = INTEGER: 1303400
HOST-RESOURCES-MIB::hrStorageUsed.3 = INTEGER: 96
HOST-RESOURCES-MIB::hrStorageUsed.4 = INTEGER: 112522940
HOST-RESOURCES-MIB::hrStorageUsed.5 = INTEGER: 19172

これらの情報からメモリ/HDDの全体量(byte)と使用量(byte)を算出するには
メモリ全体量 = hrStorageSize.2 × hrStorageAllocationUnits.2
メモリ使用量 = hrStorageUsed.2 × hrStorageAllocationUnits.2
HDD全体量 = hrStorageSize.4 × hrStorageAllocationUnits.4
HDD使用量 = hrStorageUsed.4 × hrStorageAllocationUnits.4
※厳密には/bootも加算すべきだが、監視目的では必要ないので省略

また、.1.3.6.1.2.1.25.4.2.1.2 では現在サーバーで動いているプロセスも取得できます。

[root@manager ]# snmpwalk -c public -v 2c 192.168.10.61 HOST-RESOURCES-MIB::hrSWRunName -On
.1.3.6.1.2.1.25.4.2.1.2.1 = STRING: “init”
.1.3.6.1.2.1.25.4.2.1.2.2 = STRING: “migration/0”
.1.3.6.1.2.1.25.4.2.1.2.3 = STRING: “ksoftirqd/0”
.1.3.6.1.2.1.25.4.2.1.2.4 = STRING: “watchdog/0”
.1.3.6.1.2.1.25.4.2.1.2.5 = STRING: “migration/1”
.1.3.6.1.2.1.25.4.2.1.2.6 = STRING: “ksoftirqd/1”
.1.3.6.1.2.1.25.4.2.1.2.7 = STRING: “watchdog/1”
.1.3.6.1.2.1.25.4.2.1.2.8 = STRING: “events/0”
.1.3.6.1.2.1.25.4.2.1.2.9 = STRING: “events/1”
.1.3.6.1.2.1.25.4.2.1.2.10 = STRING: “khelper”
.1.3.6.1.2.1.25.4.2.1.2.27 = STRING: “kthread”
.1.3.6.1.2.1.25.4.2.1.2.32 = STRING: “kblockd/0”
.1.3.6.1.2.1.25.4.2.1.2.33 = STRING: “kblockd/1”
.1.3.6.1.2.1.25.4.2.1.2.34 = STRING: “kacpid”

今回で監視のためのsnmp取得の準備は完了したので、次回は色々な監視ツールを使用して、実際の監視設定を行います。

waka

一覧に戻る