2012-09-15

Mail]MRTG를 사용하여 qmail 통계 그래프 생성하기


MRTG를 사용하여 qmail 통계 그래프 생성하기

Paul Hoadley mailto:paulh@logicsquad.net 저.
OpenBIRD, Inc. mailto: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에서 구할 수 있습니다.
          # 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페이지들을 가리키는 링크를 추가하여야 합니다.

댓글 없음:

댓글 쓰기