Postfix 모니터링 · 3 min read · Jan 10, 2026

Mailgraph 및 pflogsumm을 이용한 Postfix 모니터링

Mailgraph 및 pflogsumm을 이용한 Postfix 모니터링

버전 1.0
저자: Falko Timme

이 문서에서는 Mailgraph와 pflogsumm 도구를 사용하여 Postfix 메일 서버를 모니터링하는 방법을 설명합니다. Mailgraph는 발송, 수신, 반송 및 거부된 이메일과 스팸 및 바이러스(SpamAssassin 및 ClamAV가 Postfix에 통합된 경우)의 일일, 주간, 월간 및 연간 그래프를 생성합니다. 이러한 그래프는 브라우저를 통해 접근할 수 있으며, pflogsumm(“Postfix Log Entry Summarizer”)는 Postfix 활동 보고서를 이메일로 전송하는 데 사용할 수 있습니다.

다음에서는 Debian Sarge, Ubuntu Dapper Drake (6.06 LTS) 및 Fedora Core 5에서 Mailgraph와 pflogsumm을 설치하고 구성하는 방법을 설명하겠습니다.

먼저 말씀드리고 싶은 것은 이러한 시스템을 설정하는 유일한 방법이 아니라는 것입니다. 이 목표를 달성하는 방법은 여러 가지가 있지만, 제가 선택한 방법입니다. 이 방법이 귀하에게도 작동할 것이라는 보장은 하지 않습니다!

1 사전 참고

이 튜토리얼에서 제 Linux 시스템의 IP 주소는 192.168.0.100이며, 웹 사이트 http://www.example.com을 호스팅하고 있으며, 문서 루트는 /var/www/www.example.com/web이고 cgi-bin 디렉토리는 /var/www/www.example.com/cgi-bin입니다. pflogsumm 보고서는 이메일 주소 [email protected]로 전송됩니다.

2 Debian Sarge

2.1 Mailgraph

Debian Sarge에는 Mailgraph 및 pflogsumm 패키지가 있으므로 간단히 설치합니다. 또한 Mailgraph가 그래프를 그리는 데 필요한 데이터를 저장하는 rrdtool도 설치합니다:

apt-get install rrdtool mailgraph 

몇 가지 질문이 있을 것입니다:

Mailgraph를 부팅 시 시작해야 합니까? <– 예
Mailgraph에서 사용할 로그 파일은 무엇입니까? <– /var/log/mail.log
제거 시 RRD 파일 삭제? <– 예

그런 다음 다음 질문이 있습니다:

수신 메일을 발신 메일로 계산합니까?

Postfix에 amavisd(스팸 및 바이러스 스캔용)와 같은 콘텐츠 필터를 통합한 경우(이 튜토리얼: Postfix, Courier 및 MySQL (+ SMTP-AUTH, Quota, SpamAssassin, ClamAV) 참조), Mailgraph가 이메일을 두 번 계산하지 않도록 “아니오”라고 대답하십시오(이유는 Postfix가 이메일을 amavisd로 전달하고, amavisd가 성공적으로 스캔한 후 다시 Postfix로 이메일을 전달하기 때문입니다). 콘텐츠 필터를 사용하지 않는 경우 “예”라고 대답하십시오.

설치 중에 Mailgraph의 시스템 시작 링크가 자동으로 생성되며, Mailgraph도 자동으로 시작되므로 수동으로 시작할 필요가 없습니다.

이제 mailgraph.cgi 스크립트(그래프를 그리고 웹 브라우저에 대한 출력을 생성하는 스크립트)를 www.example.com 웹 사이트의 cgi-bin 디렉토리로 복사해야 합니다:

cp -p /usr/lib/cgi-bin/mailgraph.cgi /var/www/www.example.com/cgi-bin 

스크립트는 이미 실행 가능하므로 chmod를 할 필요가 없습니다. www.example.com 웹 사이트에 대해 suExec를 사용하는 경우, mailgraph.cgi의 소유자와 그룹을 적절한 것으로 변경해야 합니다.

이제 브라우저를 http://www.example.com/cgi-bin/mailgraph.cgi로 이동하면 몇 개의 그래프를 볼 수 있어야 합니다. 물론, 첫 번째 결과를 보려면 시스템을 통해 이메일이 몇 개 지나가야 하므로 인내심을 가지십시오.

시간이 지나면 그래프는 다음과 같이 보일 수 있습니다(다음 출력은 사용자 정의된 것이므로 귀하의 것과 정확히 같지 않을 수 있습니다):

일일 통계. 

주간 통계.

월간 통계. 

연간 통계. 

참고: Mailgraph는 Postfix에 amavisd와 같은 콘텐츠 필터를 통합하여 스팸 및 바이러스 메일을 태그하도록 구성된 경우에만 스팸 및 바이러스를 보고합니다. 이를 수행하지 않으면 여전히 그래프를 볼 수 있지만 스팸 및 바이러스 보고서는 포함되지 않습니다.

2.2 pflogsumm

pflogsumm을 설치하려면 다음을 실행합니다:

apt-get install pflogsumm  

pflogsumm이 매일 cron 작업에 의해 실행되고 보고서를 [email protected]로 전송하도록 하려면, 시스템이 24시간 동안 하나의 메일 로그 파일을 작성하도록 구성해야 하며, 이후 다음 메일 로그를 시작하여 이전 메일 로그를 pflogsumm에 제공할 수 있도록 해야 합니다. 따라서 logrotate(시스템의 로그 파일을 회전하는 프로그램)를 다음과 같이 구성합니다: /etc/logrotate.conf를 열고 # system-specific logs may be configured here 줄 다음에 다음 구문을 추가합니다:

vi /etc/logrotate.conf

| /var/log/mail.log { missingok daily rotate 7 create compress start 0 } |

/etc/cron.daily에 logrotate 스크립트가 있습니다. 이 스크립트는 매일 06:00h와 07:00h 사이에 호출됩니다. 우리가 방금 만든 구성으로 인해 현재 Postfix 로그 /var/log/mail.log를 /var/log/mail.log.0으로 복사하고 압축하며, 압축된 파일은 /var/log/mail.log.0.gz가 됩니다. 또한 Postfix가 다음 24시간 동안 기록할 수 있는 새로운 빈 /var/log/mail.log를 생성합니다.

이제 /usr/local/sbin/postfix_report.sh 스크립트를 생성하여 pflogsumm을 호출하고 보고서를 [email protected]로 전송하도록 합니다:

vi /usr/local/sbin/postfix_report.sh

| #!/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin gunzip /var/log/mail.log.0.gz pflogsumm /var/log/mail.log.0 | formail -c -I"Subject: Mail Statistics" -I"From: pflogsumm@localhost" -I"To: [email protected]" -I"Received: from www.example.com ([192.168.0.100])" | sendmail [email protected] gzip /var/log/mail.log.0 exit 0 |

이 스크립트를 실행 가능하게 만들어야 합니다:

chmod 755 /usr/local/sbin/postfix_report.sh

그런 다음 매일 07:00h에 스크립트를 호출하는 cron 작업을 생성합니다:

crontab -e

| 0 7 * * * /usr/local/sbin/postfix_report.sh &> /dev/null |

이렇게 하면 보고서가 [email protected]로 전송됩니다. 이메일 클라이언트에서 다음과 같이 보입니다:

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.