目次

SNMP関連

Simple Network Management Protocol

CPU利用率

CPU利用率計測の話

名称 OID 意味
laLoadInt.1 .1.3.6.1.4.1.2021.10.1.5.1 1分平均
laLoadInt.2 .1.3.6.1.4.1.2021.10.1.5.2 5分平均
laLoadInt.3 .1.3.6.1.4.1.2021.10.1.5.3 15分平均
名称 OID 意味
ssCpuRawUser.0 .1.3.6.1.4.1.2021.11.50.0 Userが利用した時間
ssCpuRawNice.0 .1.3.6.1.4.1.2021.11.51.0 Niceが利用した時間(優先度が低いやつ?)
ssCpuRawSystem.0 .1.3.6.1.4.1.2021.11.52.0 Systemが利用した時間
ssCpuRawIdle.0 .1.3.6.1.4.1.2021.11.53.0 Idle時間
ssCpuRawWait.0 .1.3.6.1.4.1.2021.11.54.0 Wait時間
ssCpuRawKernel.0 .1.3.6.1.4.1.2021.11.55.0 Kernelが利用した時間
ssCpuRawInterrupt.0 .1.3.6.1.4.1.2021.11.56.0 割り込みが利用した時間

全てタイプはCounter32

参考)http://net-snmp.sourceforge.net/docs/mibs/ucdavis.html

演算

ssCpuRawXXXXを利用する時の演算、5分後とにSNMPで取得していると仮定

対象:ssCpuRawSystemとする
今の値:X_now(tick)
5分前の値:X_ago(tick)
5分間のCPU利用時間:X(tick) = X_now - X_ago

ssCpuRawは1tick(1/100s)毎の値なので、秒に単位を修正
5分間のCPU利用時間(秒):XX(s) = X(tick) * 1/100

5分間の使用率を%であらわすと
5分間の使用率(%): XX(s) / (5 * 60) * 100
                =  X(tick) * 1/100 / (5 * 60) * 100
                =  X(tick) / (5 * 60)

つまり、ssCpuRawSyatemから取得できた値の差分をそのまま
更新間隔(ここでは5分)で割ると使用率が出てくる!

SNMPdサーバ

snmpdの設定

OPTIONS=“-Lsd -Lf /dev/null -p /var/run/snmpd -a”とrc.dに記述あり

OPTIONSの-Lについてはsnmpcmdのmanに記載あり

OPTIONSは/etc/rc.d/init.d/snmpdに直接記述するか /etc/snmp/snmpd.optionsファイルに記述するかのどちらか

/etc/sysconfig/snmpd.optionsに変更された模様(2009/04/13追記)

snmpd.optionsで管理した方が楽だと思われるので /etc/snmp/snmpd.optionsを作成して/etc/sysconfig/snmpd.optionsにシンボリック!

snmpdのログファイルを-Lf <ログファイル名>で設定すると 指定したログにデータが書かれるがタイムスタンプデータがない! :-(

なので、-Ls6などどしてfacility設定しておけばタイムスタンプが出る

このときにはsyslog.conf側でも受信設定が必要

んでもって、messageにログを出している設定行には local6のfacility分を書き出さないようにする必要あり

trap送信先の設定

trapcommunity STRING TRAP送信時のコミュニティ名 trapsink、trap2sink、informsinkよりも前に記述する必要あり
trapsink HOST バージョン1のTRAP
trap2sink HOST バージョン2のTRAP
informsink HOST 通知発行のみ?

trap送信先を設定した後、snmpdを起動した際にはColdStartのtrapが必ず送られる

snmptrap

snmptrapの使い方

$ snmptrap -v [2c|3] 共通オプション 時刻 トラップOID [ data bindingの値群...]

OID

色々なOIDを知っておくことで情報取得ができるのだ

LM-SENSORS .1.3.6.1.4.1.2021.13.16.3 CPU温度やFan回転数など