5. 機器監視(3/4):laTable,systemStats等
5.5 laTable(OID .1.3.6.1.4.1.2021.10)
CPUのロードアベレージ(稼働率)の取得です。閾値を設けて、それ以上の値になったらエラーとする場合は、snmpd.conf に記述する必要があります。単にロードアベレージを取得するだけなら、snmpd.confへの記述は必要ありません。各項目は、「Manpage of PROC」の/proc/loadavgを参照して下さい。
閾値設定を行う場合、下記の記述を snmpd.conf に記述後、snmpdを再起動します。1分あたり 0.02%、5分あたり 0.2%、15分あたり 0.5% としています。1分あたり 0.02%というのは低すぎる値なので、エラーが出力されるはずです。
load 0.02 0.2 0.5 <- ロードアベレージの閾値設定 % service snmpd restart
% snmpwalk -v 2c -c localcom localhost laTable
UCD-SNMP-MIB::laIndex.1 = INTEGER: 1
↑ 1固定
UCD-SNMP-MIB::laIndex.2 = INTEGER: 2
↑ 2固定
UCD-SNMP-MIB::laIndex.3 = INTEGER: 3
↑ 3固定
UCD-SNMP-MIB::laNames.1 = STRING: Load-1
↑ Load-1固定
UCD-SNMP-MIB::laNames.2 = STRING: Load-5
↑ Load-5固定
UCD-SNMP-MIB::laNames.3 = STRING: Load-15
↑ Load-15固定
UCD-SNMP-MIB::laLoad.1 = STRING: 0.03
↑ 現在のLoad-1の数値
UCD-SNMP-MIB::laLoad.2 = STRING: 0.02
↑ 現在のLoad-5の数値
UCD-SNMP-MIB::laLoad.3 = STRING: 0.00
↑ 現在のLoad-15の数値
UCD-SNMP-MIB::laConfig.1 = STRING: 0.02
↑ Load-1の閾値
UCD-SNMP-MIB::laConfig.2 = STRING: 0.20
↑ Load-1の閾値
UCD-SNMP-MIB::laConfig.3 = STRING: 0.50
↑ Load-1の閾値
UCD-SNMP-MIB::laLoadInt.1 = INTEGER: 3
↑ 現在のLoad-1の整数値
UCD-SNMP-MIB::laLoadInt.2 = INTEGER: 2
↑ 現在のLoad-5の整数値
UCD-SNMP-MIB::laLoadInt.3 = INTEGER: 0
↑ 現在のLoad-15の整数値
UCD-SNMP-MIB::laLoadFloat.1 = Opaque: Float: 0.030000
↑ 現在のLoad-1の浮動小数点数値
UCD-SNMP-MIB::laLoadFloat.2 = Opaque: Float: 0.020000
↑ 現在のLoad-5の浮動小数点数値
UCD-SNMP-MIB::laLoadFloat.3 = Opaque: Float: 0.000000
↑ 現在のLoad-15の浮動小数点数値
UCD-SNMP-MIB::laErrorFlag.1 = INTEGER: error(1)
↑ Load-1のエラーフラグ(閾値超え)
UCD-SNMP-MIB::laErrorFlag.2 = INTEGER: noError(0)
↑ Load-5のエラーフラグ(閾値超え)
UCD-SNMP-MIB::laErrorFlag.3 = INTEGER: noError(0)
↑ Load-15のエラーフラグ(閾値超え)
UCD-SNMP-MIB::laErrMessage.1 = STRING: 1 min Load Average too high (= 0.03)
↑ Load-1のエラーメッセージ
UCD-SNMP-MIB::laErrMessage.2 = STRING:
↑ Load-5のエラーメッセージ
UCD-SNMP-MIB::laErrMessage.3 = STRING:
↑ Load-15のエラーメッセージ
%
上記の通り、エラーが確認できます。
5.6 systemStats(OID .1.3.6.1.4.1.2021.11)
仮想メモリ、CPU情報等を取得できます。snmpd.conf への編集は必要ありません。恐らくvmstatコマンドを実行した結果を返していると思われます。vmstatおよび下記各項目については「Manpage of VMSTAT」を参照して下さい。
% snmpwalk -v 2c -c localcom localhost systemStats UCD-SNMP-MIB::ssIndex.0 = INTEGER: 1 UCD-SNMP-MIB::ssErrorName.0 = STRING: systemStats UCD-SNMP-MIB::ssSwapIn.0 = INTEGER: 0 kB UCD-SNMP-MIB::ssSwapOut.0 = INTEGER: 0 kB UCD-SNMP-MIB::ssIOSent.0 = INTEGER: 3 blocks/s UCD-SNMP-MIB::ssIOReceive.0 = INTEGER: 0 blocks/s UCD-SNMP-MIB::ssSysInterrupts.0 = INTEGER: 924 interrupts/s UCD-SNMP-MIB::ssSysContext.0 = INTEGER: 47 switches/s UCD-SNMP-MIB::ssCpuUser.0 = INTEGER: 0 UCD-SNMP-MIB::ssCpuSystem.0 = INTEGER: 0 UCD-SNMP-MIB::ssCpuIdle.0 = INTEGER: 99 UCD-SNMP-MIB::ssCpuRawUser.0 = Counter32: 40306 UCD-SNMP-MIB::ssCpuRawNice.0 = Counter32: 31439 UCD-SNMP-MIB::ssCpuRawSystem.0 = Counter32: 328245 UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 51538092 UCD-SNMP-MIB::ssCpuRawWait.0 = Counter32: 31093 UCD-SNMP-MIB::ssCpuRawKernel.0 = Counter32: 0 UCD-SNMP-MIB::ssCpuRawInterrupt.0 = Counter32: 134467 UCD-SNMP-MIB::ssIORawSent.0 = Counter32: 1822748 UCD-SNMP-MIB::ssIORawReceived.0 = Counter32: 1292428 UCD-SNMP-MIB::ssRawInterrupts.0 = Counter32: 518369446 UCD-SNMP-MIB::ssRawContexts.0 = Counter32: 27159728 UCD-SNMP-MIB::ssCpuRawSoftIRQ.0 = Counter32: 16756 UCD-SNMP-MIB::ssRawSwapIn.0 = Counter32: 0 UCD-SNMP-MIB::ssRawSwapOut.0 = Counter32: 0 % % vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 7984 88776 272096 0 0 1 2 6 52 0 1 99 0 0 %
5.7 fileTable(OID .1.3.6.1.4.1.2021.15)
特定のファイルのボリュームを監視することができます。どのファイルを監視するのか、snmpd.conf に記述する必要があります。
file /tmp/dummy.txt 100 <- 監視ファイルと閾値 % service snmpd restart
% snmpwalk -v 2c -c localcom localhost fileTable
UCD-SNMP-MIB::fileIndex.1 = INTEGER: 1
↑ インデックス値
UCD-SNMP-MIB::fileName.1 = STRING: /tmp/dummy.txt
↑ 監視ファイル名
UCD-SNMP-MIB::fileSize.1 = INTEGER: 0 kB
↑ 現ファイルボリューム
UCD-SNMP-MIB::fileMax.1 = INTEGER: 100 kB
↑ ファイルボリューム上限値
UCD-SNMP-MIB::fileErrorFlag.1 = INTEGER: noError(0)
↑ エラーコード
UCD-SNMP-MIB::fileErrorMsg.1 = STRING:
↑ エラーメッセージ
%
閾値を設定し、それを超えていればエラー情報も取得できます。実際はstatコマンドで取得しているらしいです。
