SNMP 쉽게 이해하기 #2
이번에는 실무에서 SNMP를 활용하는 방법, 다시 말해 SNNP를 활용하는 솔루션인 Network Management System(이하 NMS)의 활용에 대해 알아보겠습니다. 네트워크 장비를 Monitoring(이하 모니터링) 하기 위해서는 여러 요소들을 고려해야 합니다. NMS와 모니터링할 네트워크 장비와 통신이 가능한 환경, 풀어서 말하면 NMS 솔루션이 설치된 서버에서 발송되는 SNMP 패킷이 모니터링하고자 하는 장비에 닿고 네트워크 장비가 응답한 패킷이 NMS 솔루션(이하 NMS)이 설치된 서버에 돌아올 수 있도록 적절한 네트워크 환경을 만들어 주어야 합니다. 그리고 NMS와 네트워크 장비 중간에 위치할 수 있는 보안 장비가 NMS와 네트워크 장비 간의 통신을 막지 않도록 미리 조치해야 하죠.
어느 Object ID(이하 OID)를 수집할 것인가를 정하는 것 역시 중요합니다. 즉 모니터링할 요소를 정하는 것이죠. 모든 OID를 모니터링할 수 없을뿐더러 의미 없는 OID를 모니터링하는 것은 리소스 낭비에 불과하기 때문에 장비에서 중요한 기능에 해당하는 OID를 무엇인지 확실히 인지하고 모니터링해야 합니다. 또 장비군을 가리지 않고 매우 중요하게 다루어지는 트래픽 모니터링 방법에 대해 알아두어야 합니다. 마지막으로 트래픽은 장애 예측과 장애 대응에 가장 중요하게 사용되는 지표인 만큼 트래픽이 어떻게 수집되는지, 통계화면에서 어떻게 보는 것인지 알아두면 좋습니다.
1. NMS 솔루션이 설치된 서버와 네트워크 장비가 통신이 가능한 네트워크 환경 조성
2. 모니터링할 상태 및 기능 선정 및 OID 수집
3. NMS 솔루션의 트래픽 모니터링 방법 숙지
네트워크 장비 모니터링 가능 조건
먼저 네트워크 장비의 모니터링 가능 조건입니다. 네트워크 장비를 모니터링하기 위해서는 NMS가 설치되고 운용되는 서버가 속한 네트워크 환경에 대해 먼저 이해해야 합니다. NMS가 설치된 서버(이하 NMS 서버) 또한 하나의 네트워크에 포함되어 통신하는 하나의 단말입니다. 그러므로 NMS 서버가 자신이 속한 네트워크뿐만 아니라 다른 네트워크에 속하는 네트워크 장비를 모니터링하기 위해서는 각 네트워크에 도달하기 위한 조치가 필요합니다. 아래 그림을 보면서 설명하겠습니다. 아래 그림에서 가장 좌측에 있는 NMS가 경로 상의 모든 네트워크 장비를 모니터링하고자 합니다. 네트워크는 방화벽과 라우터를 중심으로 4개의 네트워크로 나뉘어 있습니다.
NMS가 경로 상의 네트워크 장비와 우측에 있는 모니터링 대상 장비을 모니터링하기 위해서 필요한 것을 확인해보겠습니다. 먼저 각 장비에 도달할 수 있도록 네트워크 경로 상의 장비들에 라우팅 설정이 되어있야 합니다. 그러므로 NMS 서버와 같은 네트워크에 속한 Backbone Switch(이하 백본 스위치)와 '중간 네트워크'의 방화벽, 라우터에는 모니터링 대상 장비가 속한 네트워크로 향하는 라우팅이 설정되어있어야 하지요. 중간 경로에 있는 장비들에 접근할 수 있도록 순차적으로 라우팅 설정을 해야 합니다. 물론 모니터링 대상 장비가 속한 네트워크의 라우터에도 NMS가 속한 네트워크로 향하는 라우팅이 설정되어 있어야 합니다. 라우팅을 설정하여 NMS와 모니터링 대상 장비가 서로 통신이 가능해진 상태가 됩니다.(물론 Layer 3까지의 통신을 의미합니다)
두 번째는 Firewall(이하 방화벽)입니다. 방화벽은 네트워크와 네트워크의 중간에서 트래픽을 제어하는 보안 장비이죠. NMS가 속한 네트워크 이외의 네트워크에 접근하기 위해서는 방화벽에서 반드시 이를 허용해주어야 합니다. 방화벽의 정책 허용은 출발지/목적지/포트 위주로 허용하기 때문에 NMS 서버의 IP와 모니터링 대상 장비가 IP 그리고 UDP Port 161,162를 허용해 주는 것이 좋습니다.
마지막으로 모니터링 대상 장비의 SNMP 기능 활성화와 설정입니다. 당연한 것 아닌가 생각할 수 있지만 사람들이 간과하기 쉬운 부분이죠. 대부분의 네트워크 장비에는 SNMP 관련 설정을 위한 페이지 혹은 명령어가 별도로 존재합니다. SNMP를 활성화해주어야 하며, SNMP v1/2/3 중 어떤 것을 사용할 것인지(중복 가능) SNMP TRAP 또한 활성화할 것인지를 정해주어야 합니다. 그리고 "SNMP ACL"을 통해 이 장비에 SNMP 목적의 접근을 허용할 IP를 설정해주어야 합니다. NMS 서버의 IP를 넣어야 하는 것은 말할 필요도 없겠지요.
그 밖에 NMS의 SNMP 트래픽을 제어할 수 있는 장비는 다양하기 때문에 위의 설정을 해주었음에도 제대로 통신하지 못한다면 중간 경로의 혹은 전체 네트워크에 영향을 줄 수 있는 네트워크/보안 장비를 확인해보아야 합니다.
네트워크 장비 등록 과정
네트워크 장비를 모니터링할 준비가 되었다면 이제 NMS에 네트워크 장비를 등록하는 과정을 거쳐야 합니다. 네트워크 장비를 "등록"한다고 표현하였습니다만 네트워크 장비에 SNMP GetReqeust를 전송하여 OID를 응답받고 이 정보들을 모아 하나의 Object(객체)로 표현하는 과정을 의미합니다. 물론 이 과정을 수행하기 전에 NMS에 사용자가 모니터링하고자 하는 OID가 모두 탑재되어있어야 합니다. 앞서 SNMP 쉽게 이해하기 #1에서 언급했던 기본정보인 Public OID를 포함하여 계층별/Vendor(이하 벤더) 별 네트워크 장비 중 사용자가 모니터링하기를 원하는 OID를 포함해야 한다는 뜻입니다. NMS에 필요한 OID를 담았다면 네트워크 장비를 모니터링하기 위해 다음과 같은 과정을 수행합니다.
1. NMS 솔루션에서 네트워크 장비 IP를 입력, 호출하여 필요한 SNMP OID 정보를 요청합니다.
2. 네트워크 경로상 이슈가 없고 네트워크 장비의 SNMP 설정이 되어있다면 원하는 OID 정보를 불러옵니다.
3. Public OID와 같은 네트워크 장비의 기본적인 OID 값을 저장함과 동시에 모니터링해야 할 OID 값을 선택하고 장비를 등록합니다.
4. 등록을 마치면 NMS 솔루션 상에서 네트워크 장비는 하나의 Object(객체)로서 관리됩니다.
5. 사용자는 등록된 객체를 통해 네트워크 장비의 상태를 확인/모니터링합니다.
SNMP 주요 모니터링 기능/상태
모니터링되는 요소에 대해 아는 것 또한 중요합니다. 앞서 서문에서 언급한 것처럼 아무리 OID가 많다 하더라도 무엇을 모니터링해야 할 줄 모른다면 의미가 없겠죠. OSI 7 계층과 벤더를 가리지 않고 사용되는 기본적인 요소와 함께 OSI 7 계층별 장비들, 다시 말해 스위치와 라우터, 로드밸런싱 장비와 VPN 등에 따라 자주 모니터링되는 요소에 대해 알아보고자 합니다.
공통
네트워크 장비의 "공통" 정보는 하드웨어를 사용하는 IT 기기라면 기본적으로 가지고 있는 정보들을 의미한다고 볼 수 있습니다. 네트워크 장비의 제조사에 해당하는 벤더, 네트워크 장비에 대한 설명인 Description, 장비 가동 시간을 의미하는 Uptime, 장비의 이름을 의미하는 Hostname 등이 있습니다. 거의 바뀌지는 않지만 장비의 정보가 변경되었을 때 이를 반영해야 하지요.
CPU 사용률과 Memory(이하 메모리) 사용량(총 사용량 대비 현재 사용량), FAN 상태, 온도가 공통 정보로서 매우 중요합니다. 이 4가지 요소는 네트워크 장비 장애 발생 시 직관적으로 알 수 있는 중요한 정보들입니다. 현업에서도 장애 발생 시 가장 먼저 확인하는 것은 CPU와 메모리, ICMP 그리고 트래픽 처리량입니다. L2 스위치에서 Broadcase Storm 발생 시 CPU 사용률이 급등하는 것과 VPN, 방화벽과 같은 세션 장비에서 메모리 사용량이 증가하면 중요 기능이 마비되는 것에서 잘 알 수 있죠. 다만 CPU와 메모리는 NMS으로 확인하는 것보단 장비에 직접 접속하여 확인하는 것이 빠르기 때문에 NMS UI만 보고 있지는 않습니다. FAN은 네트워크 장비에서 발생하는 열을 외부로 방출시키기 위한 장치로 보통 2개를 장착하고 있습니다. 자주 고장나진 않습니다만 FAN의 상태는 네트워크 장비의 온도와도 밀접한 관련이 있는 요소이기 때문에 신경 써야 할 요소에 해당하곤 합니다. 저는 과거 모 통신사의 국사에서 네트워크 장비의 FAN이 고장 나는 바람에 장비의 온도가 물 끓는 온도에 근접하는 것을 본 적이 있습니다.
마지막으로 ICMP Ping Check와 SNMP Check 그리고 트래픽 처리량입니다. 위에서 언급한 4가지 요소와 공통 정보보다 더 빠르게 네트워크 장비의 상태를 확인할 수 있는 것은 ICMP Ping Check입니다. 네트워크 장비에 ICMP Reuqest를 주기적으로 날림으로써 상태를 확인하는 것이죠. 네트워크 장비의 Management IP에 Ping Check를 지속적으로 실시하여 Response가 없으면 장애로 판단합니다. ICMP Ping Check에서 한 발 더 나아간 것이 SNMP Check입니다. 네트워크 장비에 특정 OID를 RetRequest하여 응답을 받아오면 장비 상태가 정상인 것으로 판단합니다. 다만 ICMP Ping Check라는 보다 더 직관적인 요소가 있기 때문에 크게 사용되지는 않습니다. 트래픽 처리량은 4가지 요소, ICMP와 함께 가장 중요하게 모니터링되는 요소입니다. 차후에 다시 언급합니다.
스위치 / 라우터
스위치와 라우터는 Layer 2/Layer 3를 담당하는 장비들로서 다수의 단말을 연결하고 네트워크와 네트워크를 연결하는 기능을 합니다. 그렇기에 다수의 인터페이스를 보유하므로 인터페이스의 상태가 매우 중요합니다. 인터페이스의 상태가 중요하다는 것은 곧 트래픽 처리량 또한 매우 중요하다는 것을 의미합니다. 스위치의 경우, 중요 단말에 연결된 인터페이스 상태와 해당 인터페이스의 트래픽 처리량, Uplink(이하 업링크, 상단 장비로 향하는 링크)의 인터페이스 상태와 트래픽 처리량을 매우 중요하게 봅니다. 업링크의 트래픽이 가득 찬다면 통신이 마비되는 것은 굳이 언급할 필요조차도 없습니다.
라우터는 스위치보다는 인터페이스를 적게 사용하지만 적게 사용하는 만큼 다운되었을 때의 영향도는 매우 큽니다. 라우터는 대규모 네트워크와 또 다른 대규모 네트워크를 잇는 일이 많기 때문이죠. 인터페이스의 사용량과 더불어 트래픽 처리량 또한 매우 중요합니다. 라우터가 주로 사용되는 전용회선은 값이 매우 비싸기 때문에 최대 허용 트래픽을 구체적으로 정해서 사용하며 그 이상이 발생하면 통신에 크나큰 문제가 생기기 때문에 트래픽 처리량을 아주 자세히 봅니다.
L4 스위치 / 방화벽 / VPN (세션 장비)
L4 스위치와 방화벽, IPSEC VPN/SSL VPN은 소위 세션 장비로서 단말과 단말을 연결하고 세션을 생성하여 관리합니다. 그렇기 때문에 스위치와 라우터 등과는 다르게 공통 정보, 인터페이스에 더해 메모리 사용량과 Disk(이하 디스크)의 상태를 중요하게 봅니다. 세션 장비들은 트래픽 급증 시 메모리 사용량이 급증하고 갑작스러운 리부팅(정전 등의 이유)에 매우 취약하기 때문에 장애 시 디스크가 깨지는 경우도 있어 모니터링이 필요합니다. 또한 세션장비인만큼 세션에 관한 정보를 확인할 수 있습니다. "확인"할 수 있다고 언급한 이유는 각각의 세션의 상태를 NMS에서 확인하는 것은 비효율적이기 때문입니다. 세션은 생성과 삭제가 잦고 양이 많습니다.(DB처럼 오래 유지하는 것도 있습니다.) 그렇기에 모든 세션을 NMS에 표시하는 것은 매우 어렵습니다.
모니터링 주기
모니터링 주기는 NMS가 네트워크 장비의 OID를 수집해오는 주기를 의미합니다. 주기가 짧을수록 NMS와 네트워크 장비에 부담이 되고 주기가 길수록 정확한 모니터링을 하기 쉽지 않습니다. 주로 1분(60초)과 5분(300초)을 사용합니다.
다음 문서에서는 SNMP를 이용해 트래픽을 측정하고 모니터링하는 방법과 장애시 발생하는 Alarm 그리고 Syslog에 대해 설명하도록 하겠습니다.