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
コマンドで取得しているらしいです。