MRTGを導入すると、CPU、ディスク、メモリ、ネットワークトラフィック、プロセス数などのVPSサーバー内の性能データをある期間毎(日、週、月、年)にグラフ化し、Webブラウザで確認できるようになります。
MRTGとは、Multi Router Traffic Grapherの略で、SNMP(Simple Network Management Protocol)を使ってネットワークやサーバーリソースの使用量を定期的に取得し、グラフ化できるツールです。
CPU負荷、メモリー使用率、ディスク使用率、ネットワークトラフィック、Apacheのプロセス数をグラフ化する場合を例としています。
下記サイトの情報を参考にして設定しています。
MRTGによるサーバ監視システムの構築
※目次をクリックすると目次の下部にコンテンツが表示されます。
- 1.パッケージのインストール
- 2.net-snmpの設定、動作確認
- 3.cfgmakerツールでmrtgの設定ファイルを作成
- 4.自動作成されたmrtg.cfgを修正
- 5.MRTGの動作確認(mrtgコマンド実行)
- 6.cron設定の確認
- 7.Webページ用のインデックスファイル作成
- 8.Apacheの設定確認
# 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!
私が追加した設定は、以下になります。
①コミュニティ名とセキュリティ名のマッピング
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 :
エラーが出ず、いろいろな値を取得できていれば問題ないと思います。
下記例の”TEST”は、net-snmpに設定したコミュニティ名です。
# cfgmaker --output=/etc/mrtg/mrtg.cfg TEST@localhost
エラーが発生せず、/etc/mrtg/mrtg.cfgファイルが作成出来ていれば問題ないと思います。
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]を自環境の値に合わせて増加
最初の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
管理人の環境では、下記ファイルに設定されています。
/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分間隔で実行するように設定されています。
# indexmaker /etc/mrtg/mrtg.cfg > /var/www/mrtg
/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による基本的な性能項目のグラフ表示が出来るようになりました。