
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


5. 간단하게 사용해보기
설정 파일을 만들고, 실행하여 간단하게 네트워크 인터페이스에 대한 정보를 수집할 수 있다. 이러한 정보를 파일로 저장할 수 있도록 플러그인을 설치하거나, MySQL 데이터, 혹은 Kafka로 데이터를 내보내는 설정은 고급 설정이기 때문에, 오늘은 간단하게 네트워크 인터페이스를 설정하고, 이 장비에 대한 모니터링만 해보도록 하자.
5-1. 모니터링 장비 등록하기
/etc/pmacct/pmacctd.conf 파일에 모니터링 할 네트워크 인터페이스를 입력한다.
vi 편집기로 열어서 수정한다.
vi 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 에 출력할 수 있는 방식으로 내보내는 설정도 시도해봐야겠다!
'네트워크 공부 & 실습 > 네트워크 이론' 카테고리의 다른 글
| [Network] Kafka 란 무엇인가? (개념편) (0) | 2025.05.01 |
|---|---|
| [Network] pgcrypto 란 무엇인가? (개념편) (0) | 2025.04.30 |
| [Network] SNMP 의 Version 별 차이 알아보기 (0) | 2025.04.28 |
| [Network] 네트워크 관리의 핵심 프로토콜 SNMP 1부 (개념편) (0) | 2025.04.21 |
| [Network] VPN 의 개념과 원리 (0) | 2025.03.18 |