[Qmail] 운영 상태 MRTG 통계 그래프 생성


Paul Hoadley <paulh@logicsquad.net> 저.

OpenBIRD, Inc. <editors@openbird.com> 역.


이 문서는 SMTP(역주: qmail을 뜻함), POP3의 수행작업들에 대한 별도의 로그를 만들고, Inter7(역주: 회사 이름)의 qmailmrtg7패키지와 MRTG를 사용해서 해당 로그의 통계 그래프를 생성하는 방법을 설명합니다. 본 문서에서 다루는 작업들은 FreeBSD 4.2 릴리즈와 4.3 릴즈즈에서 실험 되어졌습니다만, 다른 릴리즈의 시스템에서 작동 할 것입니다.


--------------------------------------------------------------------------------

Table of Contents
1. 필요한 준비물
2. 먼저 설치되어야 할 소프트웨어
3. 로그 디렉토리의 생성
4. 설정화일 변경

--------------------------------------------------------------------------------

1. 필요한 준비물
1.1. 필요한 프로그램들
아래의 프로그램들이 먼저 설치되어 있어야 합니다.

qmail-1.03 (포트에서 설치하세요: /usr/ports/mail/qmail)

mrtg-2.9.11 (포트에서 설치하세요: /usr/ports/net/mrtg)

본 문서에스는 qmail의 설치 방법은 다루지 않습니다. qmail의 설치에 대해서는 Installing qmail under FreeBSD를 참고하세요.


--------------------------------------------------------------------------------

2. 먼저 설치되어야 할 소프트웨어
2.1. daemontools-0.70
패키지(qmailmrtg)에서 setuidgid와 multilog 유틸리티가 사용되기 때문에, 해당 유틸리티가 설치되어 있어야 합니다. 다음과 같이 설치하십시요.

# cd /usr/ports/sysutils/daemontools
# make install


--------------------------------------------------------------------------------

2.2. qmailmrtg7-3.1
Inter7에서 구할 수 있습니다.
http://inter7.com/index.php?page=qmailmrtg7

# cd tmp
# fetch http://inter7.com/qmailmrtg7/qmailmrtg7-3.1.tar.gz
# gunzip qmailmrtg7-3.1.tar.gz
# tar -xvf qmailmrtg7-3.1.tar
# cd qmailmrtg7-3.1
# make all
# make install
# rm /etc/qmail.mrtg.cfg

위의 설치 과정을 보면 마지막에 /etc/qmail.mrtg.cfg 파일을 삭제하는 것을 알 수 있습니다. qmailmrtg7는 설치 과정에서 설정 파일을 /etc 디렉토리에 복사하는데, 설정 파일은 /usr/local/etc/mrtg 디렉토리에 위치하거나, 기본 MRTG 설정 파일 /usr/local/etc/mrtg/mrtg.cfg에 통합되는 것이 이상적이기 때문에 삭제합니다. 다음 섹션에서 보다 자세히 다룹니다.


--------------------------------------------------------------------------------

3. 로그 디렉토리의 생성
/var/log에 다음과 같이 데몬들을 위한 디렉토리를 만듭니다.

# cd /var/log
# mkdir qmail
# mkdir pop3
# mkdir smtp

보안적인 면을 고려한다면 이 디렉토리들의 퍼미션을 적절하게 수정 하십시요. (역주: 예 chmod 500)


--------------------------------------------------------------------------------

4. 설정화일 변경
4.1. /etc/rc.conf
qmail이 Installing qmail under FreeBSD에 따라 정확히 설치 되었다면 /etc/rc.conf의 값들이 변경되어 있을것입니다. 만약 그렇지 않다면 /etc/rc.conf에 다음 항목을 추가하십시요.

# qmail options
qmail_smtp_enable="YES"
qmail_pop_enable="YES"
qmail_enable="YES"


--------------------------------------------------------------------------------

4.2. /var/qmail/rc
/var/qmail/rc에서 구동되는 각각의 데몬 구동용 명령어들이 multilog의 장점을 취하기 위해서는 아래의 스크립트에서 HOST.DOMAIN을 메일서버의 FQDN(Fully Qualified Domain Name, 역주: 인터넷 도메인 주소라고 보시면 됩니다)으로 수정하여야 합니다.

#!/bin/sh

#
# This script starts and stops the qmail mail functions.
#

# Suck in the configuration variables.
if [ -r /etc/defaults/rc.conf ]; then
        . /etc/defaults/rc.conf
        source_rc_confs
elif [ -r /etc/rc.conf ]; then
        . /etc/rc.conf
fi


case "$1" in
start)
        case ${qmail_smtp_enable} in
        [Yy][Ee][Ss])
                # Start the qmail smtp daemon
                env - PATH="/var/qmail/bin:/usr/local/bin"
                tcpserver -v -H -R  -x /etc/tcp.smtp.cdb
                -c200 -u82 -g81 0 25 fixcrio /var/qmail/bin/qmail-smtpd
                2>&1 | /usr/local/bin/setuidgid qmaill
                /usr/local/bin/multilog t n100 s1000000 /var/log/smtp &

                echo -n " qmail-smtp"
                ;;
        esac

        case ${qmail_pop_enable} in
        [Yy][Ee][Ss])
                # Start the qmail pop daemon
                env - PATH="/var/qmail/bin:/usr/local/bin"
                tcpserver -v -H -R -c200 0 110
                /var/qmail/bin/qmail-popup HOST.DOMAIN
                /usr/local/bin/checkpassword /var/qmail/bin/qmail-pop3d
                Maildir 2>&1 | /usr/local/bin/setuidgid qmaill
                /usr/local/bin/multilog t n100 s1000000 /var/log/pop3 &

                echo -n " qmail-pop"
                ;;
        esac

        case ${qmail_enable} in
        [Yy][Ee][Ss])
                # Start qmail
                exec env - PATH="/var/qmail/bin:$PATH"
                qmail-start ./Maildir | /usr/local/bin/setuidgid qmaill
                /usr/local/bin/multilog t n100 s1000000 /var/log/qmail &

                echo -n " qmail"
                ;;
        esac
        ;;
stop)
        # Stop the smtp daemon
        smtppid=`ps -axw | grep tcpserver | grep smtp | grep -v grep | awk '{ print $1 }'`
        if [ "$smtppid" != "" ]; then
                kill $smtppid
                echo -n " qmail-smtp"
        fi

        # Stop the pop daemon
        poppid=`ps -axw | grep tcpserver | grep popup | grep -v grep | awk '{ print $1 }'`
        if [ "$poppid" != "" ]; then
                kill $poppid
                echo -n " qmail-pop"
        fi

        # Stop qmail
        qmailpid=`ps -axw | grep qmail-send | grep -v grep | awk '{ print $1 }'`
        if [ "$qmailpid" != "" ]; then
                kill $qmailpid
                echo -n " qmail"
        fi
        ;;
*)
        echo "Usage: `basename $0` {start|stop}" >&2
        ;;
esac

exit 0

문자로 종결되는 행은 원래 다음 행과의 하나의 긴 라인 입니다만, 여기에서는  문자를 사용해 두개의 행으로 나누어 표현하고 있습니다.


--------------------------------------------------------------------------------

4.3. /usr/local/etc/mrtg/mrtg.cfg
mrtg.cfg의 설정은 시스템에 어떻게 MRTG를 설정하는가에 매우 의존적입니다. 먼저 다음과 같이 qmail.mrtg.cfg 예제 설정 파일을 mrtg.cfg에 추가하여 기본 설정으로 구동해 본 후에 시스템에 맞추어 수정을 가하십시요. :

# cd /usr/local/etc/mrtg
# mv mrtg.cfg mrtg.cfg.bak
# cat mrtg.cfg.bak /tmp/qmailmrtg7-3.1/qmail.mrtg.cfg > mrtg.cfg

위의 과정 후 생성된 파일 mrtg.cfg 에 문제가 없는지 꼭 점검 하십시요. 그리고, 사이트의 MRTG 인덱스 페이지에서 새롭게 생성된 HTML페이지들을 가리키는 링크를 추가하여야 합니다.