본문 바로가기
네트워크 (LAN,WAN)

SNMP 관리 핵심 구성 요소 snmpd와 snmptrapd (with Zabbix 연동)

by 날으는물고기 2025. 1. 15.

SNMP 관리 핵심 구성 요소 snmpd와 snmptrapd (with Zabbix 연동)

SNMP(Simple Network Management Protocol)는 네트워크 장치 및 서버의 상태를 모니터링하고 관리하기 위한 표준 프로토콜입니다. SNMP의 주요 구성 요소 중 snmpd와 snmptrapd는 각각 중요한 역할을 하며, 효율적인 네트워크 관리와 실시간 경고 시스템 구현에 필수적입니다. snmpd와 snmptrapd의 역할, 구성 방법, 활용 사례입니다.


1. snmpd (SNMP 데몬)

snmpd는 SNMP 에이전트로, 관리 대상 장치나 서버에서 실행되며 SNMP 관리자의 요청에 따라 시스템 정보를 제공하는 역할을 합니다. CPU 사용량, 메모리 상태, 네트워크 트래픽 등 다양한 데이터를 수집하여 SNMP 관리 시스템(NMS, Network Management System)에 제공합니다. 주요 역할은 SNMP의 Get, GetNext, Set 요청을 처리하는 것입니다.

주요 기능

  • 정보 제공: NMS에서 요청한 장치의 성능 및 상태 정보를 반환합니다.
  • OID(Object Identifier) 처리: OID를 통해 시스템 자원을 식별하고 관련 데이터를 제공합니다.
  • 알람 기능: 사전 정의된 조건이 충족될 때 경고 또는 알람을 전송할 수 있습니다.

설치

우분투를 예로 들면 다음 명령으로 설치할 수 있습니다.

sudo apt update
sudo apt install snmpd

구성 파일 설정

/etc/snmp/snmpd.conf 파일을 수정하여 SNMP 에이전트의 동작을 정의합니다. 주요 설정 항목은 다음과 같습니다:

  • agentAddress: SNMP 요청을 수신할 IP 주소와 포트를 정의합니다.
    agentAddress udp:161
  • rocommunity: 읽기 전용 커뮤니티 문자열을 설정합니다.
    rocommunity public

서비스 관리 및 확인

sudo systemctl start snmpd
sudo systemctl enable snmpd
sudo systemctl status snmpd

기본 테스트

SNMP 관리자가 snmpd와의 통신이 가능한지 확인하려면 다음 명령을 사용합니다.

snmpwalk -v2c -c public localhost
  • -v2c: SNMP 버전 2c 사용
  • -c: 커뮤니티 문자열

2. snmptrapd (SNMP Trap 데몬)

snmptrapd는 SNMP 트랩 메시지를 수신하는 데몬으로, SNMP 에이전트가 비동기적으로 전송하는 이벤트 알림을 처리합니다. 이는 네트워크 상태 변화에 대한 즉각적인 알림을 제공하는 데 사용됩니다.

주요 기능

  • 트랩 수신: SNMP 에이전트로부터 트랩 메시지를 수신합니다.
  • 로그 저장: 수신된 트랩을 로깅하여 문제를 분석하거나 기록합니다.
  • 트랩 메시지 처리: 조건에 따라 트랩 메시지를 관리 시스템에 전달하거나 경고를 출력합니다.

설치

snmptrapd는 보통 snmpd와 함께 설치됩니다. 우분투에서는 다음 명령을 사용합니다.

sudo apt install snmpd

구성 파일 설정

/etc/snmp/snmptrapd.conf 파일을 편집하여 트랩 메시지 처리 방식을 정의합니다.

authCommunity log public
  • authCommunity log public: 커뮤니티 문자열이 "public"인 트랩 메시지를 로그 파일에 기록

서비스 관리 및 확인

sudo systemctl start snmptrapd
sudo systemctl enable snmptrapd
sudo systemctl status snmptrapd

트랩 수신 테스트

SNMP 에이전트에서 트랩을 전송하려면 다음 명령을 실행합니다.

snmptrap -v 2c -c public localhost "" .1.3.6.1.4.1.8072.2.3.0.1
  • 이 명령은 테스트 트랩을 전송하며, 결과는 snmptrapd 로그에서 확인할 수 있습니다.

3. Zabbix와의 연동

Zabbix는 네트워크 및 서버를 모니터링할 수 있는 오픈소스 플랫폼으로, SNMP를 통해 장치 상태와 트랩 메시지를 수집할 수 있습니다. Zabbix와 snmpd/snmptrapd를 연동하면 네트워크 모니터링 및 이벤트 경고를 중앙화할 수 있습니다.

SNMP 인터페이스 추가

  1. Zabbix 웹 인터페이스에 로그인합니다.
  2. Configuration > Hosts로 이동합니다.
  3. 모니터링하려는 장치를 선택하거나 새 호스트를 추가합니다.
  4. Interfaces 섹션에서 SNMP Interface를 추가하고 대상 장치의 IP 주소를 입력합니다.

SNMP 템플릿 연결

  1. Configuration > Templates로 이동합니다.
  2. 사용하려는 SNMP 템플릿(예: "Template Net SNMP Generic")을 선택하거나 새 템플릿을 생성합니다.
  3. 템플릿을 호스트에 연결합니다.

SNMP 트랩 설정

  1. Zabbix 서버가 SNMP 트랩을 수신하도록 snmptrapd 구성 파일에 다음을 추가합니다.
    authCommunity log public
  2. Zabbix 서버에서 트랩 메시지를 처리할 수 있도록 Zabbix 트랩 핸들러 스크립트를 구성합니다.
    • 예: /usr/bin/perl /usr/lib/zabbix/externalscripts/snmptrap.sh
  3. Zabbix 서버의 zabbix_server.conf에 트랩 핸들러 경로를 설정합니다.
    StartSNMPTrapper=1
    SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
  4. Zabbix 서버 서비스를 재시작합니다.
    sudo systemctl restart zabbix-server

테스트 및 확인

  1. Zabbix 대시보드에서 호스트 상태와 트랩 데이터를 확인합니다.
  2. SNMP 트랩이 올바르게 수신되는지 확인하려면 Zabbix의 Monitoring > Latest Data 메뉴를 참조합니다.

4. snmpd와 snmptrapd의 활용 사례

네트워크 장치 모니터링

  • snmpd: 라우터, 스위치, 서버의 상태 정보를 제공하여 NMS에서 모니터링 가능
  • snmptrapd: 장치 이상 발생 시 트랩 메시지를 통해 실시간 알림 제공

자동화된 시스템 경고

  • CPU 사용량 초과, 메모리 부족 등 특정 조건에서 트랩 메시지를 자동으로 전송하고, 이를 중앙 관리 시스템에서 경고로 처리

보안 강화

  • 강력한 커뮤니티 문자열 설정
  • 허가된 IP 주소에서만 SNMP 트래픽 수신 가능하도록 방화벽 설정
  • SNMP 버전 3 사용을 통한 암호화된 통신 구현

snmpd와 snmptrapd는 네트워크 관리와 시스템 모니터링의 핵심 요소로, 각각의 역할이 명확하게 구분됩니다. snmpd는 요청에 따라 정보를 제공하고, snmptrapd는 실시간 이벤트 알림을 처리하여 네트워크 가시성과 문제 대응력을 향상시킵니다. Zabbix와의 연동을 통해 SNMP 데이터를 효율적으로 수집하고 활용할 수 있습니다.

 

효과적인 SNMP 환경을 구축하려면 보안 설정, 트랩 메시지 처리, 그리고 시스템 성능 모니터링을 체계적으로 계획하는 것이 중요합니다. 이를 통해 신속한 문제 탐지와 대응이 가능해집니다.

728x90

댓글