ネットワークのボトルネックを探す。WindowsでMRTG


メインスイッチ・・・はたまたブレード内のスイッチ、
仮想化され、仮想スイッチからポートグループ、チーミングポリシーと。
仮想化環境が出てきたことにより、集約されたネットワークのボトルネックを探すのが難しくなってきました。
もちろん、サーバーまたはホスト個々のネットワークボトルネックを見ることは可能ですが、
ストレージも集約され、パフォーマンスが上った事により、集約されたネットワークのパフォーマンス・帯域状況も確認すべき状況が出てきます。

例えば、集約された仮想化環境に対し、複数ホストに対しの複数のネットワークバックアップをパラレルで行っていた場合のネットワーク状況も知りたくなります。

そんな時に、有益なのが古典的ですがやはりMRTGというフリーソフト(無料)になります

MRTGとは

MRTG(Multi Router Traffic Grapher)は、SNMPエージェントから取得したデータを加工してグラフ化するツールです。
基本的には、監視対象の機器に対してSNMPリクエストiso(1).org(3).dod(6).internet(1).mgmt(2).mib2(1).intreface(2).ifTable(2).ifEntry(1) ifInOctets(10).I/Fポート(1)
および
iso(1).org(3).dod(6).internet(1).mgmt(2).mib2(1).intreface(2).ifTable(2).ifEntry(1) ifOutOctets(10).I/Fポート(1)
を送信し、取得したデータをPNG画像にします。
監視対象のシステムから収集したすべてのデータは過去2年間分保持され、過去1日間、7日間、4週間、12カ月間のトラフィックのグラフを生成するのに利用します。

MRTGはHTML形式のページを作成するため、ApacheやIISなどHTTPデーモンが動作しているサーバで利用すれば、Webブラウザ経由でグラフの閲覧が可能です。
また、トラフィックの監視だけでなく、あらゆるSNMP変数を監視することも可能です。





MRTGのインストール手順方法 (Windows Server 2008)


環境:
Windows Server 2008 SP2
ActivePerl 5.12.4.1205 x64
mrtg-2.17.2



MRTGインストール手順概要

  1. IISのインストール
  2. インストールしたサーバーも監視するならばSNMPサービスをインストール (MRTGのテスト用としてもインストールしてみた方が良い)
  3. ActivePerlのインストール
  4. MRTGのインストール
  5. MRTGによるSNMP監視対象の設定
  6. MRTGによるデータ更新テスト
  7. MRTGによる定期的データ更新とWeb表示


1. IISのインストール


2.インストールしたサーバーも監視するならばSNMPサービスをインストール

 (MRTGのテスト用としてもインストールしてみた方が良い)

3.ActivePerlのインストール


ActivePerl-5.12.4.1205-MSWin32-x64-294981.msi を実行










4.MRTGのインストール


mrtg-2.17.2.zipを解凍し、
C:\mrtg
に解凍したMRTGのモジュールを全て配置する




5.MRTGの設定


cfgmaker (MRTG設定ファイル作成)

perl c:\mrtg\bin\cfgmaker public@localhost --global "WorkDir: c:\inetpub\wwwroot\mrtg\" > c:\mrtg\cfg\mrtg.cfg

上記のコマンドを実行させて、MRTG コンフィグファイルを作成する。
今回は、SNMP監視対象として public@localhost を指定しているが、異なる監視対象を設定する場合は上記のpublic@localhost部分を変更する。

コマンド実行成功すると、mrtg.cfgファイルが作成される
以下の部分を変更してください
#  to get bits instead of bytes and graphs growing to the right
#  Options[_]: growright, bits
#  to get bits instead of bytes and graphs growing to the right
Options[_]: growright, bits

コメントアウトを外し、グラフィカル表示オプションを有効にします


cfgmakerコマンド実行エラー例:

>mkdir c:\mrtg\cfg

>perl c:\mrtg\bin\cfgmaker public@localhost --global "WorkDir: c:\inetpub\wwwroot\mrtg\" > c:\mrtg\cfg\mrtg.cfg
SNMP Error:
no response received
SNMPv1_Session (remote host: "localhost" [127.0.0.1].161)
                  community: "public"
                 request ID: 1391515227
                PDU bufsize: 8000 bytes
                    timeout: 2s
                    retries: 5
                    backoff: 1)
 at c:/mrtg/bin\..\lib\mrtg2/SNMP_util.pm line 629
SNMPWALK Problem for 1.3.6.1.2.1.1 on public@localhost::::::v4only
 at c:\mrtg\bin\cfgmaker line 955
WARNING: Skipping public@localhost: as no info could be retrieved


もしも、SNMP Errorと出た場合、
上記の場合は、監視対象のホスト(上記の場合はlocalhost)が、MRTGサーバーからpublicコミュニティーでSNMP読み取りが出来ないことを示す。
監視対象のホストに対し、publicコミュニティーを作成し、MRTGサーバーからのアクセス許可をしてあげる必要がる。


indexmaker (MRTGのトップページindex.html の作成)


c:\Perl64\bin\perl c:\mrtg\bin\indexmaker --columns 2 c:\mrtg\cfg\mrtg.cfg > c:\inetpub\wwwroot\mrtg\index.html

上記のコマンドを実行し、IISのトップページとしてmrtg.cfg 用のindex.htmlを作成します。


6.MRTGによるデータ更新テスト


c:\Perl64\bin\perl c:\mrtg\bin\mrtg c:\mrtg\cfg\mrtg.cfg
上記コマンドを実行してください。

成功すると、mrtg.cfgに設定した「c:\inetpub\wwwroot\mrtg\」にMRTGのデータファイルが出力されます


mrtgコマンド失敗例:
>perl c:\mrtg\bin\mrtg c:\mrtg\cfg\mrtg.cfg
ERROR: CFG Error in "workdir", file c:\mrtg\cfg\mrtg.cfg line 18: Working directory c:\inetpub\wwwroot\mrtg does not exist

上記のメッセージは、c:\inetpub\wwwroot\mrtg フォルダが無いと言っている。
c:\inetpub\wwwroot\mrtg フォルダを作成してもう一回実行してみてください。


7.MRTGによる定期的データ更新とWeb表示


mrtg.cfg の編集

mrtg.cfgファイルの末尾に以下の設定を追記してください
RunAsDaemon: yes
Interval:5

上記は、データ更新を繰り返し5分置きに実行するというオプションです。
つまり、コマンド実行で処理が終了せずに、ずっとコマンドが実行され続けます


mrtg.batの作成

以下の内容のバッチファイルを作成します
c:\mrtg\bat\mrtg.bat
@echo off

rem データ更新

c:\Perl64\bin\perl c:\mrtg\bin\mrtg c:\mrtg\cfg\mrtg.cfg


mrtg.batのタスクスケジュール化

mrtg.batバッチファイルをWindowsのタスクスケジューラに登録し、MRTGコマンドでデータ更新させ続けます。










MRTG サーバーへブラウザアクセス

http://localhost/mrtg/ へアクセスすると

ネットワークのトラフィックデータが蓄積され表示されます。
 

サブページ リスト

作成日:2011/07/21
更新日:2011/07/22
Comments