복잡한 네트워크 환경과 수많은 서버 인프라를 안정적으로 운영하려면 철저한 모니터링이 필수입니다. 이때 가장 보편적이고 쉽게 사용되는 프로토콜이 바로 SNMP(Simple Network Management Protocol)입니다.
오늘은 SNMP가 무엇인지, 어떤 장단점을 가지고 있으며, 실무에서 어떤 데이터를 수집하고 어떻게 활용할 수 있해 보겠습니다.

1. SNMP란 무엇인가?
SNMP는 IP 네트워크 상의 장치로부터 정보를 수집 및 관리하고, 장치의 동작을 변경하기 위해 사용되는 인터넷 표준 프로토콜입니다. 라우터, 스위치, 서버, 워크스테이션, 프린터 등 대부분의 네트워크 연결 기기가 이 프로토콜을 지원합니다.
핵심 구성 요소는 다음과 같습니다.
-
Manager (매니저): 네트워크 관리 시스템(NMS)에 탑재되어 에이전트에게 데이터를 요청하고 수집합니다.
-
Agent (에이전트): 모니터링 대상 기기에 설치되어 시스템 상태 정보를 수집하고 매니저의 요청에 응답합니다.
-
MIB (Management Information Base): 관리 대상 기기의 정보가 계층적으로 저장된 가상 데이터베이스입니다.
-
OID (Object Identifier): MIB 내에서 특정 데이터를 식별하기 위한 고유한 숫자 주소(예:
1.3.6.1.2.1.1.1.0)입니다.
2. SNMP의 장점과 단점 (다각적 관점)
인프라 환경을 설계할 때는 기술의 양면성을 파악하는 것이 중요합니다. SNMP는 효율성과 보안성이라는 두 가지 관점에서 명확한 장단점을 가집니다.
장점 (Pros)
-
높은 범용성 및 표준화: 벤더(Vendor)에 종속되지 않습니다. Cisco, Juniper와 같은 네트워크 장비는 물론, Linux, Windows 등 다양한 OS 환경에서 폭넓게 지원됩니다.
-
경량화된 리소스 소모: 주로 UDP(포트 161/162)를 사용하여 통신하므로, TCP 오버헤드가 없어 네트워크 대역폭과 대상 시스템의 CPU 리소스 소모가 매우 적습니다.
-
확장성: 기본 MIB 외에도 하드웨어 제조사에서 제공하는 벤더 전용 MIB(Enterprise MIB)를 추가하여 고유한 센서 데이터를 수집할 수 있습니다.
단점 (Cons)
-
보안 취약성 (버전 문제): 널리 쓰이는 SNMP v1과 v2c는 커뮤니티 스트링(Community String)이라는 일종의 비밀번호를 평문(Plain Text)으로 전송합니다. 따라서 스니핑 공격에 취약합니다. (이를 해결하기 위해 암호화와 인증을 지원하는 SNMP v3가 권장됩니다.)
-
UDP 기반의 패킷 유실 가능성: UDP 통신을 사용하므로 네트워크 혼잡 시 데이터 패킷이 유실될 수 있으며, 프로토콜 자체적으로 재전송을 보장하지 않습니다.
-
대규모 환경에서의 폴링 부하: 수만 대의 장비를 중앙 매니저가 1분 주기로 조회(Polling)할 경우, 매니저 시스템 자체에 병목 현상이 발생할 수 있습니다.
3. SNMP로 수집 가능한 데이터 범위
SNMP를 통해 수집할 수 있는 데이터는 상상 이상으로 방대합니다. 인프라 모니터링 관점에서 핵심적인 수집 항목은 다음과 같습니다.
-
시스템 기본 정보 (System Info): 호스트네임, 가동 시간(Uptime), OS 버전, 시스템 연락처 정보.
-
리소스 사용량 (Computing Resources):
-
CPU 코어별 사용률 및 로드 에버리지(Load Average).
-
물리적 메모리(RAM) 및 스왑(Swap) 사용 현황.
-
디스크 파티션별 전체 용량 및 가용 공간.
-
-
네트워크 트래픽 및 상태 (Network Interfaces):
-
인터페이스별 Inbound/Outbound 트래픽 (Octets).
-
패킷 에러(Errors) 및 드랍(Drops) 수치.
-
네트워크 포트의 Link UP/DOWN 상태.
-
-
하드웨어 센서 (Hardware Sensors): 서버 마더보드의 온도, 팬(Fan) 회전 속도(RPM), 전원 공급 장치(PSU) 상태 (벤더 확장 MIB 필요).
4. 실무에서의 SNMP 활용 및 구축 방법
단순히 데이터를 수집하는 것을 넘어, 이를 시각화하고 경고 알림과 연동하는 아키텍처를 구성해야 합니다. 다음은 Linux 환경을 기준으로 한 단계별 구축 논리입니다.
참고 문헌 및 공식 자료 (References):
*실제 경험을 바탕으로 ai를 활용하여 작성하였습니다.*





