MRTGでVPSサーバーの性能データをグラフ表示

MRTGを導入すると、CPU、ディスク、メモリ、ネットワークトラフィック、プロセス数などのVPSサーバー内の性能データをある期間毎(日、週、月、年)にグラフ化し、Webブラウザで確認できるようになります。

MRTGとは、Multi Router Traffic Grapherの略で、SNMP(Simple Network Management Protocol)を使ってネットワークやサーバーリソースの使用量を定期的に取得し、グラフ化できるツールです。
 
CPU負荷、メモリー使用率、ディスク使用率、ネットワークトラフィック、Apacheのプロセス数をグラフ化する場合を例としています。
 
下記サイトの情報を参考にして設定しています。
 MRTGによるサーバ監視システムの構築
 
※目次をクリックすると目次の下部にコンテンツが表示されます。

パッケージのインストール
①net-snmpのインストール
 

# yum install net-snmp

Installed:
  net-snmp.x86_64 1:5.5-41.el6_3.1
 
Dependency Installed:
  lm_sensors-libs.x86_64 0:3.1.1-10.el6
  net-snmp-libs.x86_64 1:5.5-41.el6_3.1
 
Complete!

 
②MRTGのインストール
 

# yum install mrtg

Installed:
  mrtg.x86_64 0:2.16.2-5.el6
 
Dependency Installed:
  fontconfig.x86_64 0:2.8.0-3.el6
  freetype.x86_64 0:2.3.11-6.el6_2.9
  gd.x86_64 0:2.0.35-10.el6
  libX11.x86_64 0:1.3-2.el6
  libX11-common.noarch 0:1.3-2.el6
  libXau.x86_64 0:1.0.5-1.el6
  libXpm.x86_64 0:3.5.8-2.el6
  libjpeg.x86_64 0:6b-46.el6
  libpng.x86_64 2:1.2.49-1.el6_2
  libxcb.x86_64 0:1.5-1.el6
  mrtg-libs.x86_64 0:2.16.2-5.el6
  perl-IO-Socket-INET6.noarch 0:2.56-4.el6
  perl-SNMP_Session.noarch 0:1.12-4.el6
  perl-Socket6.x86_64 0:0.23-3.el6
 
Complete!

 
③net-snmp-utilsのインストール
 
MRTG自体には必要ありませんが、”snmpwalk”というsnmpの設定を確認するコマンドがこのパッケージ含まれていますのでインストールしました。
 

# yum install net-snmp-utils

Installed:
  net-snmp-utils.x86_64 1:5.5-41.el6_3.1
 
Complete!

net-snmpの設定、動作確認
設定ファイル”/etc/snmp/snmpd.conf”に必要な設定を追加します。
私が追加した設定は、以下になります。
 
①コミュニティ名とセキュリティ名のマッピング
 
com2sec local localhost TEST
(セキュリティ名:local、 送信元アドレス:localhost、コミュニティ名:TEST)
 
②セキュリティ名をグループ名のマッピング
 
group MyROGroup v1 local
group MyROGroup v2c local
(グループ名:MyROGroup、セキュリティ名:local)
 
③viewの設定
 
view all included .1 80
 
④グループへの権限の設定
 
access MyROGroup “” any noauth exact all none none
 
⑤httpd(Apache)のプロセス設定
 
# Process checks.
proc httpd
 
⑥ディスク(”/”、”/data”)使用率設定の追加
 
# disk checks
disk /
disk /data
 
⑦CPU負荷の設定追加
 
# load average checks
load
 
net-snmpを再起動します。
# /etc/rc.d/init.d/snmpd restart
 
snmpwalkで動作確認します。

# snmpwalk -v 2c -c TEST localhost system

SNMPv2-MIB::sysDescr.0 = STRING: Linux ・・・・・・・・・
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
  :

エラーが出ず、いろいろな値を取得できていれば問題ないと思います。

cfgmakerツールでmrtgの設定ファイルを作成
“cfgmaker”というコマンドで、”/etc/mrtg/mrtg.cfg”というファイル名の設定ファイルを作成します。
 
下記例の”TEST”は、net-snmpに設定したコミュニティ名です。

# cfgmaker --output=/etc/mrtg/mrtg.cfg TEST@localhost

エラーが発生せず、/etc/mrtg/mrtg.cfgファイルが作成出来ていれば問題ないと思います。

自動作成されたmrtg.cfgを修正
①”WorkDir”を修正
 
WorkDirは、MRTGがHTMLファイルやグラフファイルを出力するディレクトリになります。
管理人は、下記のように設定しています。
 
# WorkDir: /home/http/mrtg   の部分を
WorkDir: /var/www/mrtg     に修正します。
 
②Interface設定のコメントアウトされている部分を有効にする
 
③MaxBytes[localhost_2]の設定に問題があったので下記のように修正
 
MaxBytes[localhost_2]: 0
     ↓
MaxBytes[localhost_2]: 1250000
 
④httpd、メモリ、CPU、ディスクの設定を追加
 
下記参考サイトで紹介されている設定ファイルの
最終回 MRTGによるサーバ監視システムの構築

#-----------------------------------------------------------------
# 取得したデータをそのまま(差分を取らずに)利用するものから設定する
# グラフのOptionsとしてgaugeを指定
#-----------------------------------------------------------------
Options[_]: growright,gauge

の部分から、メモリ使用状況の設定までをコピー。
 
⑤上記コピー部分の修正
 
・ホスト名、コミュニティ名を自分のサーバーに合わせて修正。
 
・メモリーのMIB値を修正
Target[mem]: .1.3.6.1.4.1.2021.4.4.0&.1.3.6.1.4.1.2021.4.6.0
        ↓
Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0
 
・メモリーのMaxBytes[mem]を自環境の値に合わせて増加

MRTGの動作確認(mrtgコマンド実行)
下記のようにコマンドを実行。
最初の2回はエラーが出て問題ないようです。
3回目の実行でエラーが表示されない事を確認。
 
# env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg –logging /var/log/mrtg.log
 
mrtgデータの出力ディレクトリ(ここでは、/var/www/mrtg)を確認します。
 

# cd /var/www/mrtg
# ls
favicon.ico            localhost_1-week.png   localhost_2.old       mrtg-m.png
localhost_1-day.png    localhost_1-year.png   localhost_2-week.png  mrtg-r.gif
localhost_1.html       localhost_2-day.png    localhost_2-year.png  mrtg-r.png
localhost_1.log        localhost_2.html       mrtg-l.gif            mrtg-ti.gif
localhost_1-month.png  localhost_2.log        mrtg-l.png            mrtg-ti.png
localhost_1.old        localhost_2-month.png  mrtg-m.gif

cron設定の確認
MRTGは、cronの設定によって一定間隔ごとに実行して、データを取得する必要があります。
管理人の環境では、下記ファイルに設定されています。
/etc/cron.d/mrtg
 
*/5 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg –lock-file /var/lock/mrtg/mrtg_l –confcache-file /var/lib/mrtg/mrtg.ok
 
5分間隔で実行するように設定されています。

Webページ用のインデックスファイル作成
“indexmaker”コマンドで、WebブラウザからMRTGのグラフを見る際のトップのインデックスページを作成します。
 
# indexmaker /etc/mrtg/mrtg.cfg > /var/www/mrtg

Apacheの設定確認
管理人の環境では、MRTG導入時に下記のMRTG用のApache設定ファイルが追加されていました。
/etc/httpd/conf.d/mrtg.conf
 
(設定内容)

Alias /mrtg /var/www/mrtg

<Location /mrtg>
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    Allow from ::1
    # Allow from .example.com
</Location>

まず、この設定のままだと送信元アドレスがレンタルサーバーのローカルアドレスに限定されていますので、自端末のブラウザからアクセスする際は、変更する必要があります。
 
その他、Apacheの本体の設定との兼ね合いもあり、上記設定をそのまま使用できない場合がありますので、それぞれの環境に合わせて修正が必要かもしれません。
 
管理人は、バーチャルホストの設定をしていますので、本体のファイル内のバーチャルホスト内の設定に記述しなおしました。
 
以上、長くなりましたがMRTGによる基本的な性能項目のグラフ表示が出来るようになりました。

関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください