SSブログ

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-pnp
    host_name       localhost
    service_description Traffic Usage
    check_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はいろんなデータが取得できるのでデータ収集し出すと止まらない。
きりがないので適当なところでやめておこう。

タグ:Nagios linux SNMP
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:[必須]
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。