MRTG でサーバの状況をグラフ表示

目次

概略

ネットワーク上にどれだけのパケットが流れているのか? CPUはどれぐらい忙しくはたらいているのだろうか? など、疑問に思ったことはないですか? また、それらのデータがグラフで見れたらもっといいとおもいませんか?
ネットワークを管理していて、これらを知っておくと便利ですので、 MRTGをつかって実現してみましょう。

MRTGはSNMP対応の機器(HUDとかルータとか)かた情報を収集して、 グラフ付のレポートを出力してくれるソフトです。
SNMP対応の機器ならばなんでも利用できます。 LinuxBoxをルータにしている場合はsnmpdを導入すれば、 MRTGで監視することができます。
また、MRTGはSNMP対応機器だけではなく、 決まったフォーマットでデータを出力するのもであれば、 SNMP機器と同じようにグラフ付のレポートを出力できるので、 とても便利です。

MRTGインストール

$ apt-get install mrtg
Debianなんで、これだけ。

次にMRTGの設定をしますが、ここでは全体にかかわる部分だけ設定します。
といっても、/etc/mrtg.cfgファイルの

WorkDir: /var/www/mrtg ← MRTGの出力を置くディレクトリ
にMRTGの出力を置くディレクトリを指定します。
ブラウザーで、このディレクトリを覗けば、MRTGが書いたグラフを見ることができます。

/etc/mrtg.cfgファイルにMRTGに書かせたいグラフの設定を追加していきます。
詳細はあとで。

また、/etc/cron.d/mrtg に、5分置きに、mrtgが実行されるようになっていますので、 確認しておきましょう。

SNMPデーモンのインストール

SNMPはsnmpdで監視するマシンにインストールします。
$ apt-get install snmpd
Debianなんで、インストール作業はこれだけ。

次にsnmpdの設定をします。
/etc/snmp/snmpd.confを修正します。

####
# First, map the community name (COMMUNITY) into a security name
# (local and mynetwork, depending on where the request is coming
# from):

#       sec.name  source          community
#com2sec paranoid  default         public   必要無いのでコメントアウト  
#com2sec readonly  default         public   必要無いのでコメントアウト  
#com2sec readwrite default         private  必要無いのでコメントアウト  
com2sec my_network 192.168.0.0/24       hogehoge  追加
# hogehogeコミュニティを作成し、192.168.0.0/24からアクセスを受け付ける

####
# Second, map the security names into group names:
#                sec.model  sec.name
#group MyROSystem v1         paranoid   必要無いのでコメントアウト
#group MyROSystem v2c        paranoid   必要無いのでコメントアウト  
#group MyROSystem usm        paranoid   必要無いのでコメントアウト  
#group MyROGroup  v1         readonly   必要無いのでコメントアウト  
#group MyROGroup  v2c        readonly   必要無いのでコメントアウト  
#group MyROGroup  usm        readonly   必要無いのでコメントアウト  
group MyRWGroup  v1         my_network  追加
group MyRWGroup  v2c        my_network  追加
group MyRWGroup  usm        my_network  追加
設定ファイル修正後は
$ /etc/init.d/snmpd restart
で、snmpdを再起動しましょう。

ネットワークのトラフィックをグラフにする

/etc/mrtg.cfgファイルに記述する、内容の雛型を作ります。
$ cfgmaker コミュニティ名@SNMP機器のホスト名 > test.cfg
上記のSNMPデーモンのインストールの様にコミュニティ名を設定した、 LinuxBoxの場合、
$ cfgmaker hogehoge@linuxbox > hogehoge.cfg
で、雛型が hogehoge.cfg に作成されます。 それを元に、必要なネットワークの記述だけにして(コメントを外して)、 /etc/mrtg.cfgファイルに追加します。
$ cat hogehoge.cfg >> /etc/mrtg.cfg
ちなみに、こんな感じになっています。 net.cfg(ええ加減な設定ですが(^_^;)

CPUの頑張りをグラフにする

SNMPで監視できるのはネットワークのトラフィックだけではありません。 CPUのDISKなども監視できます。
そこで、CPUの頑張り具合をグラフにしてみましょう。
CPU.cfgを/etc/mrtg.cfgに追加します。

postfixの動作をグラフにする

[参考] postfixの動作をグラフにする

postfixの動作をMRTGをつかってグラフにする為の、Perlスクリプトを MRTG for postfix より、update-mailstats.pl mailstats.pl mrtg-mailstats の3つを入手します。 (*追加)
/usr/local/mrtg_postfix/ ディレクトリを作成して、これらを置きます。

また、これらを使うためのPerl のモジュール File::Tail をインストールします。

$ apt-get install libfile-tail-perl

mrtg-mailstats を修正します。

$mailstats = "/usr/local/mrtg_postfix/mailstats.pl" ;

/etc/init.d/mailstats 作成します。 mailstatsのサンプル

mailstats を /etc/rcX.d に設定します。

$ update-rc.d mailstats defaults 20

mailstats を起動します。

/etc/init.d/mailstats start

/etc/mrtg.cfg に 設定を追加します。 postfix.cfgを/etc/mrtg.cfgに追加します。

*追加(2003.12.8)
MRTG for postfix には、mrtg-mailstats ではなく、mrtg-mailstats.pl にあります。
しかし、mrtg-mailstatsと同じ様に、$mailstatsの行を修正するとありますが$mailstatsの行も無いし 追加してもちゃんと動きませんでした。
# perl勉強せなあかんね。
以前のmrtg-mailstatsが 「Postfixの頑張り具合をMRTGで表示できるよーにしてみよー」 にありましたので、ここから入手できます。


戻る