네트워크 공부 & 실습/네트워크 이론

[Network] pmacct(오타 아님) 란 무엇인가?

강_토발즈 2025. 4. 29. 23:31

 

 

 

1. pmacct란?

 

pmacct는 네트워크 트래픽을 수집하고 분석하는 오픈소스 트래픽 계측 도구이다.
라우터, 스위치, 서버 등에서 나오는 트래픽 정보를 모은 다음, 데이터베이스나 파일에 저장하거나 메시지 큐로 전송해 네트워크 흐름을 분석할 수 있게 해준다.

오픈소스임에도 높은 신뢰성을 인정받고, 네트워크 정보를 파악하는데 자주 사용되는 도구이므로 개념과, 설치, 사용법에 대해 알아보도록하자!

 

 

2. pmacct의 주요 구성요소

구성요소 역할
pmacctd 직접 인터페이스를 모니터링해서 패킷을 수집
nfacctd NetFlow 데이터를 수집
sfacctd sFlow 데이터를 수집
plugins 수집한 데이터를 파일, DB, Kafka, RabbitMQ 등으로 출력

 

* NetFlow : 출발지IP, 목적지IP, 포트, 프로토콜, 바이트 수, 패킷 수 등 네트워크를 지나가는 거의 모든 트래픽 세부 정보

* sFlow : 모든 패킷을 보는게 아닌, 샘플링 패킷을 추출하여 간략한 메타데이터를 기록

 

3. 기본 작동 방식

  • 네트워크 트래픽을 받아서
  • 필요한 항목(IP, 포트, 프로토콜 등)을 필터링하고
  • 파일, DB, 메시지큐 등 원하는 곳에 저장

이러한 작동방식에 더하여 EMS, NMS 같은 네트워크 관리 솔루션과 연동해서 트래픽 모니터링, 이상 탐지 등에 활용할 수 있다!

 

4. 설치 방법 (Ubuntu)

Ubuntu 리포지터리에 기본 패키지가 등록되어 있어서 간단하게 설치할 수 있다.

설치가 끝나면 주요 실행파일이 /usr/sbin/ 경로에 설치된다.

sudo apt update
sudo apt install pmacct

설치는 매우 간단하게 할 수 있다!
/user/bin 경로 아래에 추가되었다.

5. 간단하게 사용해보기

설정 파일을 만들고, 실행하여 간단하게 네트워크 인터페이스에 대한 정보를 수집할 수 있다. 이러한 정보를 파일로 저장할 수 있도록 플러그인을 설치하거나, MySQL 데이터, 혹은 Kafka로 데이터를 내보내는 설정은 고급 설정이기 때문에, 오늘은 간단하게 네트워크 인터페이스를 설정하고, 이 장비에 대한 모니터링만 해보도록 하자.

 

5-1. 모니터링 장비 등록하기

/etc/pmacct/pmacctd.conf 파일에 모니터링 할 네트워크 인터페이스를 입력한다.

vi 편집기로 열어서 수정한다.

vi pmacctd.conf

/etc/pmacct 경로 아래에 있는 설정 파일인, pmacctd.conf 파일

 

deamonize : false
#pcap_filter: net 127.0.0.0/8
#pcap_filter: net 192.168.0.0/24
pcap_interface: eno1       
plugin: print

 

  • deamonize : 결과를 데몬으로 보내는 셋팅. true 일 경우 화면에 출력하지 않고 백그라운드로 보내므로 false 를 입력해야 한다.
  • #pcap_filter : net 127.0.0.0 / 8  -> 기본 셋팅으로 주석 처리하면 모든 트래픽을 볼 수 있다.
  • #pcap_filter : net 192.168.0.0 / 24  -> 주석 해제 하면 내 대역폭에 맞는 트래픽만 볼 수 있다.
  • interface: 수집할 네트워크 인터페이스
  • plugin: 데이터를 어떻게 출력할지 결정 (print, file, kafka, mysql 등)
  • ! 나 # 를 지워줘야 주석이 해제 된다.

5-2. pmacctd 실행하기

sudo pmacctd -f /etc/pmacct/pmacctd.conf

 

위의 명령어를 입력하고, 새로운 터미널을 열어 ping 8.8.8.8 로, 테스트용 네트워크 흐름을 만들어준다.

 

그러면 잠시 후 터미널에 다음과 같은 네트워크 트래픽 집계 데이터가 출력된다.

  • SCR_IP : 출발지 IP 주소 (Source IP)
  • DST_IP : 도착지 IP 주소 (Destination IP)
  • PACKETS : 출발지 -> 목적지로 전달된 패킷 수
  • BYTES : 출발지 -> 목적지로 전달된 총 데이터의 양 (Bytes)
192.168.0.27  → 8.8.8.8  | 8 PACKETS | 672 BYTES
  • 출발지 : 192.168.0.27 에서 목적지 8.8.8.8 로 8개의 패킷을 전송, 총 672 바이트의 데이터를 주고 받았다.
출발지 목적지 packet bytes 해석
192.168.0.24 192.168.0.255 4 252 내부 네트워크에서 브로드캐스트 발생 (192.168.0.255 = 브로드캐스트 IP)
192.168.0.17 255.255.255.255 4 700 DHCP 요청일 가능성 (255.255.255.255는 전세계 브로드캐스트)
192.168.0.27 172.64.155.209 2 104 외부 서버와 통신
8.8.8.8 192.168.0.27 8 672 8.8.8.8이 답변을 보낸 트래픽

 

6. 마무리

 

 pmacct 를 실제로 설치해보고 간단하게 네트워크 인터페이스를 등록하여, 트래픽을 모니터링 해 봤다. 생각보다 설정이 간편하고 모니터링 할 수 있는 범주들이 많았다. 이러한 사용이 쉬운 점 외에도

  • 오픈소스 + 가볍고 빠름 → 실무 네트워크 분석용으로 매우 적합하다
  • 다양한 출력 포맷 지원 → 파일 저장, 실시간 모니터링, DB 연동까지 가능하다
  • 트래픽 필터링, 집계 자유로움 → 복잡한 네트워크 환경에도 대응 가능하다

위와 같은 장점들 때문에 실제 기업에서도 활용하여 모니터링 프로그램을 만들기도 한다고 한다. 나중에 트래픽 자료들을 DB 나 Kafka 에 출력할 수 있는 방식으로 내보내는 설정도 시도해봐야겠다!