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

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

MRTGとは?


 
MRTGとは、Multi Router Traffic Grapherの略で、SNMP(Simple Network Management Protocol)を使ってネットワークやサーバーリソースの使用量を定期的に取得し、グラフ化できるツールです。
 
CPU負荷、メモリー使用率、ディスク使用率、ネットワークトラフィック、Apacheのプロセス数をグラフ化する場合を例としています。
 

MRTG導入の流れ


 
下記サイトの情報を参考にして設定しています。
 MRTGによるサーバ監視システムの構築
 
1)必要なパッケージのインストール
 MRTG、net-snmp、net-snmp-utilsをyumでインストール
2)net-snmpの設定、動作確認
3)cfgmakerツールでmrtgの設定ファイルを作成
4)自動作成されたmrtg.cfgを修正
5)MRTGの動作確認(mrtgコマンド実行)
6)cron設定の確認
7)Webページ用のインデックスファイル作成
8)Apacheの設定確認
 
なお、管理人の環境は、”お名前.com”のVPSサーバーでCentOS6.2です。
 

1)パッケージのインストール


  
①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!

 

2)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

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

3)cfgmakerツールでmrtgの設定ファイルを作成


 
“cfgmaker”というコマンドで、”/etc/mrtg/mrtg.cfg”というファイル名の設定ファイルを作成します。
 
下記例の”TEST”は、net-snmpに設定したコミュニティ名です。
 
(実行例)
# cfgmaker –output=/etc/mrtg/mrtg.cfg TEST@localhost
 
エラーが発生せず、/etc/mrtg/mrtg.cfgファイルが作成出来ていれば問題ないと思います。
 

4)自動作成された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]を自環境の値に合わせて増加
 

5)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
 
 

6)cron設定の確認


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

7)Webページ用のインデックスファイル作成


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

8)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による基本的な性能項目のグラフ表示が出来るようになりました。

関連記事の目次

コメントを残す

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