第6回 サーバ異常をSNMPで通知させるにはSNMPによるネットワークモニタリング「第2版」(4/6 ページ)

» 2007年05月25日 07時59分 公開
[大澤文孝,ITmedia]

 例えば「/」を監視し、残り容量が20%を下回ったときにエラーとして警告するには、snmpd.confに、次のように記述する。

リスト2■ディスクを監視するsnmpd.conf記述の例

disk / 20%

 このときdskTableを参照すると、次のようになる。

 それぞれの値の意味は、表4の通りだ。プロセスの監視と同様に、diskディレクティブで指定した最小値を下回ったときには、エラーを伝えるため、dskErrorFlagが1になる。そこで、この値を監視すれば、ディスクあふれを検知できるというわけだ。

表4■dskTableサブツリー

名称 OID 意味
dskIndex ucdavis.9.1 インデックス番号
dskPath ucdavis.9.2 マウント先のパス名。diskディレクティブで指定した値
dskDevice ucdavis.9.3 デバイスのパス名
dskMinimum ucdavis.9.4 diskディレクティブにおいて、キロバイト単位で指定したとき(後ろに「%」が付かないとき)のエラー扱いとする設定値
dskMinPercent ucdavis.9.5 diskディレクティブにおいて、パーセント単位で指定したとき(後ろに「%」を付けたとき)のエラー扱いとする設定値
dskTotal ucdavis.9.6 そのパスに対応するディスクの総量(キロバイト単位)
dskAvail ucdavis.9.7 そのパスに対応するディスクの残量(キロバイト単位)
dskUsed ucdavis.9.8 そのパスに対応するディスクの使用量(キロバイト単位)
dskPercent ucdavis.9.9 そのパスに対応するディスクの使用割合
dskPercentNode usdavis.9.10 そのパスに対応するディスクのiノードの使用割合
dskErrorFlag usdavis.9.100 ディスク容量不足のエラーフラグ。ディスク残量がdskMinimumまたはdskMinPercentを下回ったときに1が設定される
dskErrorMsg ucdavis.9.101 dskErrorFlagが1になったときのエラーメッセージ

ロードアベレージの監視

 サーバでは、過負荷がかかったかどうかを検知したいことも多いはずだ。

 そのようなときに使うのがlaTableサブツリー(ucdavis.10)だ。このサブツリーは、ロードアベレージを監視して、過負荷がかかったときにエラー報告する機能を持つ。laTableサブツリーを使うには、あらかじめsnmpd.confファイルに、loadディレクティブで指定する。


load [1分の閾値] [5分の閾値] [15分の閾値]

 loadディレクティブでは、1分間、5分間、15分間に、それぞれどれだけのロードアベレージを超えたならエラーとして警告するかどうかを設定する。5分間の閾値、15分間の閾値は、省略可能だ。

 例えば1分間のロードアベレージが10を超えたときにエラーとして報告したいのならば、次のようにする。

リスト3■ロードアベレージを監視するsnmpd.conf内記述の例

load 10

 このとき、laTableサブツリー以下の結果は、次のようになる(表5)


$ snmpwalk -c hogeprivate -v 1 localhost laTable
UCD-SNMP-MIB::laIndex.1 = INTEGER: 1
UCD-SNMP-MIB::laIndex.2 = INTEGER: 2
UCD-SNMP-MIB::laIndex.3 = INTEGER: 3
UCD-SNMP-MIB::laNames.1 = STRING: Load-1
UCD-SNMP-MIB::laNames.2 = STRING: Load-5
UCD-SNMP-MIB::laNames.3 = STRING: Load-15
UCD-SNMP-MIB::laLoad.1 = STRING: 0.00
UCD-SNMP-MIB::laLoad.2 = STRING: 0.00
UCD-SNMP-MIB::laLoad.3 = STRING: 0.00
UCD-SNMP-MIB::laConfig.1 = STRING: 10.00
UCD-SNMP-MIB::laConfig.2 = STRING: 10.00
UCD-SNMP-MIB::laConfig.3 = STRING: 10.00
UCD-SNMP-MIB::laLoadInt.1 = INTEGER: 0
UCD-SNMP-MIB::laLoadInt.2 = INTEGER: 0
UCD-SNMP-MIB::laLoadInt.3 = INTEGER: 0
UCD-SNMP-MIB::laLoadFloat.1 = Opaque: Float: 0.000000
UCD-SNMP-MIB::laLoadFloat.2 = Opaque: Float: 0.000000
UCD-SNMP-MIB::laLoadFloat.3 = Opaque: Float: 0.000000
UCD-SNMP-MIB::laErrorFlag.1 = INTEGER: 0
UCD-SNMP-MIB::laErrorFlag.2 = INTEGER: 0
UCD-SNMP-MIB::laErrorFlag.3 = INTEGER: 0
UCD-SNMP-MIB::laErrMessage.1 = STRING: 
UCD-SNMP-MIB::laErrMessage.2 = STRING: 
UCD-SNMP-MIB::laErrMessage.3 = STRING:

 なおloadディレクティブは、snmpd.confに対して、複数設定することもできる。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ