ページ更新: 2005-04-29 (金) (6605日前)
(2001.06.30 作成) postfixの動作をグラフにする postfixの動作状況(メール送受信数)をグラフにします。 目次 [編集]情報源 #Postfixの頑張り具合をMRTGで表示できるよーに (うにまじ) MRTG for postfix (My Postfix stuff) Mailgraph Homepage (David Schweikert's Home Page) Mailgraphのインストール (もぐらくんドットコム::blog) (2005-04-29) [編集]MRTG hacks の場合 (MRTG) #これは、sendmail でメール送受信数をグラフにする方法をアレンジしたものです。
MRTGをインストールします。 # apt-cache search mrtg checkservice - Checks the status of services on (remote) hosts mrtg - Multi Router Traffic Grapher mrtg-contrib - Multi Router Traffic Grapher (contributed files) mrtgutils - Utilities to generate statistics for mrtg # apt-get install mrtg インストールしたら、/etc/mrtg.cfg の中のHTMLを置くディレクトリの設定 WorkDir を確認・修正します。 perl の File::Tail モジュールを入手します。今回は debian のパッケージを使いました。 # apt-cache search tail | grep perl | grep file パッケージを探す libfile-tail-perl - File::Tail perl module # apt-get install libfile-tail-perl インストールする MRTG for postfix より、update-mailstats.pl mailstats.pl mrtg-mailstats の3つを入手します。 mrtg-mailstats 書き換え $mailstats = "/usr/local/sbin/mailstats.pl" ; update-mailstats.pl 書き換え $mail_log = '/var/log/mail/mail.log' ; /etc/init.d/mailstats 作成 #! /bin/sh # # mailstats postfix mail statics (for MRTG) # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/sbin/update-mailstats.pl NAME=mailstats DESC="mailstats" test -f $DAEMON || exit 0 set -e case "$1" in start) echo -n "Starting $DESC: " $DAEMON 2>&1 > /dev/null & echo "$NAME." ;; stop) echo -n "Stopping $DESC: " killall mailstats.pl 2>&1 > /dev/null echo "$NAME." ;; #;; restart|force-reload) # # If the "reload" option is implemented, move the "force-reload" # option to the "reload" entry above. If not, "force-reload" is # just the same as "restart". # echo -n "Restarting $DESC: " killall mailstats.pl 2>&1 > /dev/null sleep 1 $DAEMON 2>&1 > /dev/null & echo "$NAME." ;; *) N=/etc/init.d/$NAME # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0[編集] Mailgraph の場合 #Mailgraph は、Postfix が syslog を調べて、グラフにするものです。 Mailgraph から mailgraph-0.13.tar.gz を入手します。 $ tar -zxvf mailgraph-0.13.tar.gz $ cd mailgraph-0.13 README を読むと、「rrdtool and it's perl module (RRDs)」と「File::Tail」が必要とのこと。 $ apt-cache search rrd rrdtool, RRDsのパッケージを探す…見つかった! cricket - Program for collection and display of time-series data librrd0 - Time-series data storage and display system (runtime) librrd0-dev - Time-series data storage and display system (development) librrdp-perl - Time-series data storage and display system (perl-piped) librrds-perl - Time-series data storage and display system (perl-shared) mrtg - Multi Router Traffic Grapher rrdtool - Time-series data storage and display system (programs) rrdtool-tcl - Time-series data storage and display system (tcl) spong-www - A systems and network monitoring system -- web interface # apt-get install rrdtool librrds-perl ファイルの配置は次のようにしました。
mailgraph.pl の修正個所 (mailgraph.rrd の出力ディレクトリを変更) my $rrd = "/usr/lib/cgi-bin/mailgraph/mailgraph.rrd"; mailgraph.cgi の修正個所 (URLと実際のディレクトリを分離) # diff mailgraph.cgi.org mailgraph.cgi 15c15,16 < my $imgs = 'imgs'; --- > my $imgs = '/var/www/mailgraph'; > my $imgsurl = '/mailgraph'; 29a31 > my $imgurl = "$imgsurl/${file}.png"; 60c62 < return RRDs::error || "<IMG BORDER=\"0\" WIDTH=\"$xs\" HEIGHT=\"$ys\" SR C=\"$img\" ALT=\"mailgraph\">"; --- > return RRDs::error || "<IMG BORDER=\"0\" WIDTH=\"$xs\" HEIGHT=\"$ys\" SR C=\"$imgurl\" ALT=\"mailgraph\">"; 70a73 > my $imgurl = "$imgsurl/${file}_err.png"; 101c104 < return RRDs::error || "<IMG BORDER=\"0\" WIDTH=\"$xs\" HEIGHT=\"$ys\" SR C=\"$img\" ALT=\"mailgraph\">"; --- > return RRDs::error || "<IMG BORDER=\"0\" WIDTH=\"$xs\" HEIGHT=\"$ys\" SR C=\"$imgurl\" ALT=\"mailgraph\">"; /etc/init.d/mailgraph の内容 (/etc/init.d/skeleton をコピーし、修正) #! /bin/sh # # mailgraph postfix mail statics # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/sbin/mailgraph.pl NAME=mailgraph DESC="mailgraph" test -f $DAEMON || exit 0 set -e case "$1" in start) echo -n "Starting $DESC: " $DAEMON 2>&1 > /dev/null & echo "$NAME." ;; stop) echo -n "Stopping $DESC: " killall mailgraph.pl 2>&1 > /dev/null echo "$NAME." ;; #;; restart|force-reload) # # If the "reload" option is implemented, move the "force-reload" # option to the "reload" entry above. If not, "force-reload" is # just the same as "restart". # echo -n "Restarting $DESC: " killall mailgraph.pl 2>&1 > /dev/null sleep 1 $DAEMON 2>&1 > /dev/null & echo "$NAME." ;; *) N=/etc/init.d/$NAME # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0 起動スクリプト /etc/init.d/mailgraph を /etc/rc?.d/ に登録。 # update-rc.d mailgraph defaults 20 Adding system startup for /etc/init.d/mailgraph ... /etc/rc0.d/K20mailgraph -> ../init.d/mailgraph /etc/rc1.d/K20mailgraph -> ../init.d/mailgraph /etc/rc6.d/K20mailgraph -> ../init.d/mailgraph /etc/rc2.d/S20mailgraph -> ../init.d/mailgraph /etc/rc3.d/S20mailgraph -> ../init.d/mailgraph /etc/rc4.d/S20mailgraph -> ../init.d/mailgraph /etc/rc5.d/S20mailgraph -> ../init.d/mailgraph /etc/init.d/mailgraph を起動します。 # /etc/init.d/mailgraph start ブラウザから mailgraph.cgi を実行。これでグラフが表示されれば完成です。 |