トラフィック情報の統計

最終更新日時:2007-03-22 13:53:12
自宅サーバへの道

自宅サーバに、どの程度のネットワークトラフィックがあり、どの程度CPUが使用され、どの程度ディスクが使用されているか、、、等々の情報が取得できると何かと便利です。
例えば、何か異変(攻撃等)があった際に発見できたり、性能に問題がある場合に、どの部分(CPU、メモリ、ネットワーク等々)が問題になっているのか判断する材料になったりします。
また、これを時系列でグラフにして見たりできると、時間帯や曜日によってトラフィックがどのように変化する傾向があるのかとか、各種情報の増減の傾向としてどうなのかとかが一目で判断することができます。
ま、そんな難しい話ではなくても、自宅サーバの状態がグラフで見れるというのはなかなか楽しいものです。
というわけで、Webサーバのように外部にサービスを公開するようなアプリケーションを稼働させた後には、トラフィック情報の統計を取るようにしてみることをおすすめします。

統計情報の取得


まずは、統計情報を自宅サーバから取得できるようにします。
これにはSNMPという仕組みを使います。
SNMPを使うためのアプリケーションとしてnet-snmpがありますので、まずはnet-snmpをインストールします。
その後、適切にsnmpd.confを設定した上でsnmpdを常駐させるようにすることにより、snmpdから自宅サーバの各種トラフィック情報を取得することが可能になります。
net-snmpの詳しい話は、SNMPのメモを参照してください。
ちなみに、私の環境では、net-snmpをビルドするにはパッケージが足りなかったので、以下のようにパッケージを追加しました。

 # up2date beecrypt-devel
 # up2date elfutils-devel


統計情報のグラフ化


SNMPで得られる情報は基本的に単なる数値なので、直接人間が見るには適しません。
従って、定期的にSNMPで情報を取得して、その情報を元にグラフ化することを考えます。
そのために使うのがMRTGです。
MRTGをインストール、設定して実行するとSNMPの情報を元にグラフ画像を作成することができます。
また、そのグラフ画像を参照できるようなHTMLファイルを作成することも出来ます。
MRTGの詳しい話は、MRTGメモを参照してください。
ちなみに、MRTGのインストールにはGDが必要なのですが、私の環境ではGDが入っていなかったので以下のようにパッケージを追加しました。

 # up2date gd
 # up2date gd-devel


毎回SNMPで情報を取得してMRTGを実行することを手動で行っていては大変だし、グラフの精度も落ちますので、5~10分おき程度に自動的に実行するように設定しておきます。
こうしておけば、自動的にグラフが作成され続けますので、手がかかりません。

お問い合わせは 掲示板 にて。