CodeZine(コードジン)

特集ページ一覧

net-snmpについて(機器監視)

net-snmpによる機器監視の具体的な方法について

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/09/10 14:00

目次

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


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:net-snmpについて

著者プロフィール

  • 赤松 エイト(エイト)

    (株)DTSに勤てます。 WebアプリやJavaやLL等の上位アプリ環境を密かに憧れつつも、ず~っとLinuxとかHP-UXばかり、ここ数年はカーネル以上アプリ未満のあたりを行ったり来たりしています。 mixiもやってまして、こちらは子育てとか日々の日記メインです。

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5