
pmacct 란?
서버를 운영하면 트래픽이 유독 많이 발생하는 순간이 있습니다. 이 때 정상적인 요청이라면 문제 없지만 비정상적인 요청인 경우 과도한 트래픽의 발생과 서버의 부하를 유발할 수 있기 때문에 어떤 IP 에서 트래픽이 발생하는지 확인이 필요합니다. 이 때 pmacct 라는 도구를 사용하여 트래픽을 수집하고 분석할 수 있습니다.
pmacct 란, 네트워크 트래픽을 수집할 수 있는 오픈소스 기반의 네트워크 모니터링 도구 모음 입니다.
서버의 인터페이스를 통과하는 패킷을 수집하고 확인해서 설정한 기준에 맞춰 분류와 집계를 해주는 프로그램입니다. 이렇게 수집한 데이터를 실시간으로 출력하여 확인하거나 csv, json 파일로 정리하거나 sqlite3 나 mysql 과 같은 db 에 저장할 수도 있습니다.
pmacct 의 기능
pmacct 에는 여러 프로세스가 존재합니다.
- pmacctd: 서버의 네트워크 인터페이스를 통과하는 데이터를 수집합니다.
- nfacctd: NetFlow 및 IPFIX 데이터를 수집합니다.
- sfacctd: sFlow 데이터를 수집합니다.
여기서는 기본적인 기능인 pmacctd 를 이용해보겠습니다.
패키지 설치
설치환경: Rocky Linux 9
먼저, 필수 패키지를 설치합니다.
# dnf -y install epel-release # dnf -y install dnf-plugins-core # dnf config-manager --set-enabled crb # dnf groupinstall -y "Development Tools" # dnf -y install libpcap-devel pkgconf-pkg-config wget
패키지 설치가 끝났다면 wget 명령어로 설치파일을 다운로드 받습니다.
# wget http://www.pmacct.net/pmacct-1.7.9.tar.gz ./
다운받은 파일의 압축을 해제한 다음 이동해서 설치를 진행합니다.
# cd pmacct-1.7.9 # ./configure # make # make install
기본 설정
설정파일이 위치할 디렉터리를 생성하고 설정 파일을 만듭니다.
# mkdir /etc/pmacct # vi /etc/pmacct/pmacctd.conf
pmacctd.conf 에 다음 내용을 입력합니다.
– 압축 파일에 존재하는 example 안에 있는 pmacctd-imt.conf.example 를 복사해서 수정해도 됩니다.

- daemonize: 프로그램을 실행하는 방식을 지정합니다. (false : 화면에 출력, true : 백그라운드로 실행)
- pcap_interface: 트래픽을 수집할 인터페이스를 지정합니다.
- plugins: 수집결과를 출력하는 방식을 지정합니다.(print는 화면에 출력합니다.)
- print_refresh_time: 집계 결과를 출력할 간격을 지정합니다.
- aggregate: 수집된 트래픽을 묶을 기준을 지정합니다.
pmacctd 실행
설정 파일 생성이 끝났다면 pmacctd 명령어를 이용해서 프로그램을 실행합니다.
# pmacctd -f /etc/pmacct/pmacctd.conf
명령어를 실행하면 화면에 내용이 출력되는 것을 확인할 수 있습니다.
– SSH 를 이용해서 터미널에 접근하기 때문에 아래와 같이 출력됩니다.

세부 설정
지금 설정에선 pmacctd 를 실행했을 때 결과가 화면에 출력만 될뿐입니다. 본격적인 운영을 위해서 다음과 같이 pmacctd.conf 파일을 수정합니다.
# vi /etc/pmacct/pmacctd.conf

- daemonize: 백그라운드 실행을 위해서 true 로 변경합니다.
- print_output_file: 데이터를 기록할 로그를 지정합니다.
- print_output: 로그 파일의 포맷을 지정합니다.
- print_refresh_time: 집계된 데이터를 파일에 기록할 시간을 지정합니다.
이렇게 설정이 끝난 다음 pmacct 명령어를 print_refresh_time 에 설정한 시간이 지난 후 /var/log 에 로그가 생성되는 것을 확인할 수 있습니다.
# cat /var/log/pmacct_traffic.log

마치며
pmacct 는 설치와 설정이 매우 간단하면서 네트워크 인터페이스를 통과하는 트래픽 데이터를 상세히 확인할 수 있는 도구입니다. pmacctd.conf 설정을 통해서 원하는 조건에 따라 트래픽을 묶어서 관리할 수도 있고, 매우 가벼운 편에 속하기 때문에 서버에 큰 부하를 주지 않는다는 것이 특징입니다.




