Nagiosでネットワークトラフィックをグラフ化する [nagios]
従来、ネットワークトラフィックをグラフ化するといえばMRTGが定番。
しかし、Nagiosに一本化することを検討。
まず、前提知識としてSNMPの知識は必須。
SNMPについてはこのへんが詳しい。
ちょいとはまった点は32ビットと64ビットでオブジェクトIDが違う点。
32bitOSのネットワークトラフィックのOIDはこちら。
ifInOctets 1.3.6.1.2.1.2.2.1.10
ifOutOctets 1.3.6.1.2.1.2.2.1.16
64bitOSのネットワークトラフィックのOIDはこちら。
ifHCInOctets 1.3.6.1.2.1.31.1.1.1.6
ifHCOutOctets 1.3.6.1.2.1.31.1.1.1.10
上記のOIDにネットワークインターフェースのIDを付加する。
例)eth0が2の場合
1.3.6.1.2.1.2.2.1.10.2
1.3.6.1.2.1.2.2.1.16.2
上記のOIDなどをネットで調べる場合はCiscoのSNMPオブジェクトナビゲーターが便利。
コマンドラインで調べる場合は以下の通り。
オブジェクト名が分かっていて、OIDを調べたい場合
# snmptranslate -On -IR ifInOctets
戻り値を調べる方法
# snmpwalk -v 2c -c public localhost 1.3.6.1.2.1.2.2.1.10.2
"No Such Object"って言われる場合は設定ファイルを見直そう。
/etc/snmp/snmpd.conf
以下の記述を追加。
view systemview included .1.3.6.1.2.1.31
.1.3.6.1.2.1.31配下のオブジェクトをsystemviewと言う名前オブジェクトに追加する。
こうすることで、ifHCInOctetsが読み取れるようになる。
◆Nagiosで利用する場合
check_snmpというコマンドがあるのでこれを利用する。
送信、受信のネットワークトラフィックを収集する場合は以下のように受信、送信のOIDをカンマ(,)でつなぐ。
注)check_snmp v1.4.15 (nagios-plugins 1.4.15)の場合
define service{use generic-service,srv-pnphost_name localhostservice_description Traffic Usagecheck_command check_snmp!-C public -P 2c --rate -o 1.3.6.1.2.1.2.2.1.10.2,1.3.6.1.2.1.2.2.1.16.2}
PNP4Nagiosのグラフはcheck_snmp_int.phpをもとに適宜修正する。
SNMPはいろんなデータが取得できるのでデータ収集し出すと止まらない。
きりがないので適当なところでやめておこう。
2011-08-15 18:00
nice!(0)
コメント(0)
トラックバック(0)
コメント 0