MRTGによるネットワーク監視システムの構築

MRTGを用いたネットワーク監視システムの構築

はじめに

システムの統合監視サービスである「Zabbixによる企業向け監視システムの構築」「Nagioによる企業向け監視システムの構築」をエンタープライズで利用する場合の構築例として紹介してきました。 今回はMRTG(Multi Router Trafice Grapher)によるネットワーク監視システムをLinux(CentOS)に構築する方法を説明します。MRTGは、ネットワーク帯域の監視やCPU使用率などのサーバーリソースの監視に古くから使われており、UNIXではネットワーク帯域監視の定番とも言えるツールです。今回は、MRTGによるネットワーク監視システムの構築方法を解説します。

前提条件

構築に必要なサーバー要件および、導入パッケージは下記のとおりです。

  1. サーバー要件

    サーバー要件は、次のとおりです。

    ホスト名centos
    IPアドレス1(eth0)10.0.2.15
    IPアドレス2(eth1)192.168.0.20
    OSCentOS 6.5 i386
    Apache2.2.15
  2. 導入するパッケージ

    導入するパッケージは、次のとおりです。

    パッケージ名バージョン
    net-snmp5.5
    net-snmp-utils5.5
    mrtg2.16.2

SNMPの導入

パッケージをインストールし、SNMPの設定を行います。

  1. パッケージのインストール
    $ sudo yum -y install net-snmp net-snmp-utils
    
    4010-01 4010-02
  2. SNMP設定ファイルの変更

    全MIB情報を取得するため、設定ファイルを変更します。

    $ sudo sed -i -e "s|^view|#view|" -e "s|systemview|all|" -e "s|^#disk|disk|" -e "s|^syslocation.*$|syslocation centos|" -e "s|^syscontact.*$|syscontact root@localhost|" /etc/snmp/snmpd.conf
    $ echo "view all included .1 80" | sudo tee -a /etc/snmp/snmpd.conf 1> /dev/null
    
    4010-03
  3. SNMPの起動と自動起動設定
    $ sudo service snmpd start
    $ sudo chkconfig snmpd on
    
    4010-04
  4. SNMP動作確認

    構築中のサーバーには、lo/eth0/eth1の3つのネットワークインターフェースが割り当てられているいるため、各々のネットワークからMIB情報にアクセスできるか確認します。

    $ snmpwalk -v 2c -c public localhost | head -10
    $ snmpwalk -v 2c -c public 10.0.2.15 | head -10
    $ snmpwalk -v 2c -c public 192.168.0.20 | head -10
    
    4010-05 4010-06 4010-07

MRTGの導入

パッケージをインストールし、MRTGの設定を行います。

  1. パッケージのインストール
    $ sudo yum -y install mrtg
    
    4010-08 4010-09
  2. MRTG設定ファイルの作成

    MRTG設定ファイルのひな型を作成します。

    $ cfgmaker --ifref=descr --ifdesc=descr public@192.168.0.20|sed -e "s|[1-9].*_eth|eth|" -e "s|^\t|#|" | sudo tee /etc/mrtg/mrtg.cfg 1> /dev/null
    
    4010-10
  3. メモリとスワップ容量の確認

    MRTG設定ファイルに指定するサーバーのメモリおよび、スワップ容量を確認します。

    $ free
    
    4010-11
  4. MRTG設定ファイルの編集

    先ほど作成したMRTG設定ファイルを、下記のとおり編集します。

    $ sudo vi /etc/mrtg/mrtg.cfg
    
    # MRTGのドキュメントルート
    WorkDir: /var/www/mrtg
    
    # グラフの表示向きを左から右(過去から現在)にする
    Options[_]: growright, noinfo
    
    # eth0のIPアドレスを修正
    Target[eth0]: \eth0:public@10.0.2.15:
    
    4010-12 4010-13 4010-14

    CPU使用率を追加します。

    # CPU使用率
    Target[cpu]: 1.3.6.1.4.1.2021.10.1.5.1&1.3.6.1.4.1.2021.10.1.5.2:public@192.168.0.20
    MaxBytes[cpu]: 100
    Unscaled[cpu]: dwmy
    Options[cpu]: gauge, absolute, growright, noinfo, nopercent
    YLegend[cpu]: CPU Load(%)
    ShortLegend[cpu]: (%)
    LegendI[cpu]: 1 min CPU Load Average
    LegendO[cpu]: 5 min CPU Load Average
    Legend1[cpu]: 1 min CPU Load Average(%)
    Legend2[cpu]: 5 min CPU Load Average(%)
    Title[cpu]: CPU Load Average
    PageTop[cpu]: <H1>CPU Load Average</H1>
    
    4010-15

    RAM使用量を追加します。なお、MaxBytes1,MaxBytes2に指定する値は、freeコマンドで確認したMem Totalおよび、Swap Totalを指定します。

    # メモリ使用量
    Target[mem]: 1.3.6.1.4.1.2021.4.6.0&1.3.6.1.4.1.2021.4.4.0:public@192.168.0.20
    MaxBytes1[mem]: 510756
    MaxBytes2[mem]: 835576
    Unscaled[mem]: dwmy
    Options[mem]: gauge, absolute, growright, noinfo
    YLegend[mem]: Mem Free(Bytes)
    ShortLegend[mem]: Bytes
    kilo[mem]: 1024
    kMG[mem]: k,M,G,T,P
    LegendI[mem]: Real
    LegendO[mem]: Swap
    Legend1[mem]: Real Memory[MBytes]
    Legend2[mem]: Swap Memory[MBytes]
    Title[mem]: Memory Used
    PageTop[mem]: <H1>Memory Used</H1>
    
    4010-16

    RAM使用量、ディスク使用率を追加します。

    # ディスク使用率
    Target[disk]: 1.3.6.1.4.1.2021.9.1.9.1&1.3.6.1.4.1.2021.9.1.9.1:public@192.168.0.20
    MaxBytes[disk]: 100
    Unscaled[disk]: dwmy
    Options[disk]: gauge, absolute, growright, nopercent, noinfo
    YLegend[disk]: Disk Used(%)
    ShortLegend[disk]: (%)
    LegendI[disk]: / Disk used
    LegendO[disk]: / Disk Used
    Legend1[disk]: / Disk used
    Legend2[disk]: / Disk used
    Title[disk]: Disc Used
    PageTop[disk]: <H1>Disc Used</H1>
    
    4010-17

MRTGウエブページの作成

MRTGの設定が終了しましたので、MRTGのウエブページを作成します。

  1. index.htmlファイルの生成

    編集したMRTG設定ファイルから、ウエブページのindex.htmlファイルを生成します。
    設定ファイルに監視項目を追加するなどで、設定ファイルを変更したら必ず実行する必要があります。

    $ indexmaker --columns=1 /etc/mrtg/mrtg.cfg | sudo tee /var/www/mrtg/index.html 1> /dev/null
    
    4010-18
  2. グラフの生成

    MRTGは、SNMPが収集したデータを元に監視データをグラフ化します。
    毎時、日次、月次といったタイミングでグラフを生成すると良いでしょう。
    なお、グラフ生成をスケジュール運用するには、crontabに登録する必要があります。
    ここでは、グラグを生成方法のみを解説しますので、crontabへの登録は行っていません。

    $ env LANG=C sudo mrtg /etc/mrtg/mrtg.cfg
    $ env LANG=C sudo mrtg /etc/mrtg/mrtg.cfg
    
    4010-19 4010-20 4010-21

    1回目と2回目の実行では、Warningが表示されますが、3回めの実行以降は、Warningは表示されなくなります。

    $ env LANG=C sudo mrtg /etc/mrtg/mrtg.cfg
    
    4010-22
  3. Apacheの設定

    MRTGのインストール時に、MRTGウエブページの設定ファイルがインストールされますので、インストールされた設定ファイルを下記のとおり編集します。

    $ sudo vi /etc/httpd/conf.d/mrtg.conf
    
    Allow from 192.168.0.
    
    4010-23
  4. Apacheの再起動
    $ sudo service httpd restart
    
    4010-24
  5. 動作確認

    下記のサイトにブラウザでアクセスすると、MRTGのページが表示されます。

    http://192.168.0.20/mrtg/
    
    4010-25

まとめ

ここまで、MRTGによるネットワーク監視システムの構築方法を解説しました。MRTGは、現在もさまざまなサイトでネットワーク帯域の監視などで使われている実績のある監視ツールです。記事を参考にネットワーク帯域の監視にチェレンジしましょう。

Comments are closed.