[SNMP] SNMP(Simple Network Management Protocol) 설치 및 운용에 대해서 알아보자.
1. 서론
이번 포스팅에서는 최신 시스템에 SNMP(agent와 manager 애플리케이션)을 설치하고 정보를 가져오는 과정을 설명합니다. 설치는 최신 Linux 배포판에서 Net-SNMP를 사용하며, 하나의 시스템(localhost)에서 manager와 agent를 운용하는 방식으로 진행됩니다.
2. Net-SNMP 설치
2.1 Net-SNMP 다운로드 및 설치
Net-SNMP는 net-snmp.sourceforge.net에서 다운로드할 수 있습니다. Net-SNMP는 ucd-snmp의 후속 버전으로, 더욱 개선된 기능과 안정성을 제공합니다. 최신 버전인 Net-SNMP 5.x를 설치합니다.
설치 과정은 다음과 같습니다. Net-SNMP 패키지를 다운로드하고, 적절한 디렉터리에 압축을 풀고,./configure, make, make install 명령을 순서대로 실행하면 됩니다.
3. SNMP AGENT 실행
make install까지 완료하면 agent와 manager 프로그램이 모두 설치됩니다. Net-SNMP는 agent 프로그램으로 snmpd를 제공합니다.
간단히 snmpd를 실행하여 SNMP agent 환경을 구축할 수 있습니다.
4. SNMP MANAGER 테스트
4.1 동기적 데이터 요청 - snmp get, get next
GET과 GET NEXT는 manager에서 agent에 정보를 요청할 때 사용됩니다. Net-SNMP는 이러한 요청을 위해 snmpget과 snmpnext, snmpwalk를 제공합니다.
snmpget
snmpget은 agent로부터 특정 정보를 얻어내는 데 사용됩니다. 아래는 localhost에서 public 권한으로 sysDescr 정보를 얻는 예제입니다.
snmpwalk
snmpwalk는 MIB 하위 계층의 모든 정보를 요청합니다.
system.sysDescr.0 = Linux localhost 5.10.0-13-amd64 #1 SMP Debian 5.10.106-1 (2022-03-17) x86_64
system.sysObjectID.0 = OID: enterprises.netSnmpAgent.linux
system.sysUpTime.0 = Timeticks: (2685699) 7:27:36.99
system.sysContact.0 = admin@localhost
system.sysName.0 = localhost
system.sysLocation.0 = server room
system.sysORLastChange.0 = Timeticks: (0) 0:00:00.00
snmpgetnext
snmpgetnext는 현재 요청한 OID의 다음 OID 정보를 가져옵니다.
system.sysDescr.0 = Linux localhost 5.10.0-13-amd64 #1 SMP Debian 5.10.106-1 (2022-03-17) x86_64
system.sysObjectID.0 = OID: enterprises.netSnmpAgent.linux
4.2 비동기적 데이터 요청 - snmp trap
GET, GET NEXT를 통한 데이터 요청은 일정한 polling 시간을 가지고 진행됩니다. 그러나 비동기적으로 발생하는 정보를 수집하려면 SNMP TRAP을 사용해야 합니다. SNMP TRAP은 agent에서 manager로 비동기적으로 사건을 통보하는 것입니다.
Net-SNMP는 snmptrapd와 snmptrap을 제공하여 trap 정보를 전송하고 받습니다.
snmptrapd 실행
manager 측에서 snmptrapd를 실행합니다.
2024-07-14 00:13:34 Net-SNMP version 5.9.1 Started.
snmptrap 실행
agent 측에서 snmptrap을 사용하여 trap 정보를 manager로 전송합니다.
https://fiberroad.com/ko/resources/glossary/what-is-snmp/