MRTG でネットワークトラフィックの IN と OUT を分ける
_ [comp] MRTG でネットワークトラフィックの IN と OUT を分ける
MRTG ではネットワークトラフィックの IN と OUT が同一のグラフになっているけど、それを別々にできないか調べてみる。単純に分離するオプションとかはないようなので、MIB を指定して得ることにする。ネットワークモニタリングツールを製作する 第1回 SNMPの仕組みを理解する というページを発見したので参考にしてみる。 まずインターフェイスのチェック。
% snmpwalk -v 1 XXXXXXXX -c XXXXXXXX ifDescr
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: sit0
% snmpwalk -v 1 XXXXXXXX -c XXXXXXXX ipAdEntIfIndex
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.XXX.XXX.XXX.XXX = INTEGER: 2
eth0 は 2 のようだ。 受信オクテット数は ifInOctets、送信オクテット数は ifOutOctets で取れるようだ。
% snmpget -v 1 XXXXXXXX -c XXXXXXXX ifInOctets.2 ifOutOctets.2
IF-MIB::ifInOctets.2 = Counter32: 260681632
IF-MIB::ifOutOctets.2 = Counter32: 1059735146
mrtg.cfg には次のように追加。
Target[eth0_in]: ifInOctets.2&ifInOctets.2:XXXXXXXX@XXXXXXXX
Options[eth0_in]: growright
Title[eth0_in]: Traffic Analysis for eth0_in -- XXXXXXXX
Target[eth0_out]: ifOutOctets.2&ifOutOctets.2:XXXXXXXX@XXXXXXXX
Options[eth0_out]: growright
Title[eth0_out]: Traffic Analysis for eth0_out -- XXXXXXXX
これでネットワークトラフィックの IN と OUT を別々のグラフにすることができた。