SNMP·syslog·NetFlow의 차이: 감시로 알 수 있는 것·수집 방식·데이터 형식·프로토콜 비교
네트워크를 운영하려면 기기와 트래픽의 상태를 감시해 문제를 일찍 알아채고 원인을 조사해야 합니다. SNMP, syslog, NetFlow는 모두 기기에서 정보를 모으지만 알 수 있는 것이 다릅니다. SNMP에서는 관리하는 쪽(매니저)이 기기(에이전트)에 인터페이스 통신량이나 CPU 사용률 같은 값을 물어보므로 '얼마나'를 알 수 있습니다. syslog에서는 기기가 링크 다운, 로그인, 설정 변경 같은 이벤트를 텍스트 메시지로 로그 서버에 보내므로 '언제 무슨 일이 있었는지'를 알 수 있습니다. NetFlow(와 이를 바탕으로 표준화한 IPFIX)는 출발지·목적지 등이 같은 패킷 묶음(플로) 단위로 트래픽을 요약해 내보내므로 '누가 누구와 얼마나 통신했는지'를 알 수 있습니다. 실제로는 세 가지를 함께 씁니다.
| 비교 항목 | SNMP | syslog | NetFlow(IPFIX) |
|---|---|---|---|
| 알 수 있는 것 | 기기의 상태와 양: 인터페이스 통신량과 오류 수, CPU와 메모리 사용률, 링크 상태 | 이벤트: 링크 다운, 로그인 성공과 실패, 설정 변경, 오류 | 트래픽의 내역: 어느 출발지와 목적지 쌍이 어떤 프로토콜과 포트로 얼마나 보냈는지 |
| 수집 방식 | 매니저가 일정 간격으로 물어봅니다(폴링). 기기가 이상을 알림(트랩)으로 보고할 수도 있습니다 | 이벤트가 일어나면 기기가 서버에 메시지를 보냅니다 | 기기가 플로를 집계해, 플로가 끝날 때나 일정 간격으로 수집 서버(컬렉터)에 내보냅니다 |
| 데이터 형식 | MIB에 정의된 값(카운터와 상태). 객체 식별자(OID)로 지정합니다 | 중요도(0~7), 발생원 종류(facility), 타임스탬프, 텍스트 메시지 | 플로별 레코드: 주소, 포트 번호, 프로토콜, 패킷 수와 바이트 수, 시작·종료 시각 등. 필드는 템플릿으로 정의합니다 |
| 시간 단위 | 폴링 간격(예: 5분)마다의 평균 | 이벤트마다. 거의 즉시 도착합니다 | 플로마다. 오래 이어지는 플로는 잘라서 일정 간격으로 내보냅니다 |
| 알 수 없는 것 | 누구의 트래픽인지 | 트래픽 양 | 패킷의 내용(데이터). CPU 사용률 같은 기기의 값도 알 수 없습니다 |
| 기기와 회선의 부하 | 작음 | 작음. 다만 장애 시 메시지가 급증할 수 있습니다 | 더 큼. 고속 회선에서는 패킷의 일부만 조사하는 샘플링을 쓰기도 합니다 |
| 규격과 포트 번호 | SNMPv3는 RFC 3411~3418. UDP 161번 포트(질의)와 162번 포트(트랩) | RFC 5424. UDP 514번 포트, TLS를 쓰면 6514번 | NetFlow v9는 RFC 3954(정보 제공용 RFC)에 기술되어 있습니다. 표준화된 IPFIX는 RFC 7011, 포트 4739 |
| 보안 | v1과 v2c에서는 커뮤니티 문자열이 암호화되지 않은 채 전달됩니다. v3에서 인증과 암호화가 추가되었습니다 | UDP에서는 암호화도 도착 확인도 없습니다. TLS로 보호할 수 있습니다 | NetFlow v9에는 보호 기능이 없습니다. IPFIX는 TLS나 DTLS로 보호할 수 있습니다 |
| 주요 용도 | 트래픽 그래프, 회선 사용률 파악, 기기 장애 감지 | 장애 원인 조사, 누가 무엇을 했는지의 기록, 보안 감시(SIEM으로 수집) | 대역을 많이 쓰는 호스트와 애플리케이션 찾기, 이상 통신 감지, 회선 증설 계획 |
수치는 대략적인 자릿수 기준이며, 공정 세대와 제품에 따라 달라져요.