[토론] SMS/NMS 로 어떤 프로그램을 사용하시나요? 효율적인 시&

문태준의 이미지

딸랑 한대의 서버를 쓰면 모를까 서버와 네트워크 장비가 늘어나면 이를 관리해야 할 부담도 더 커집니다. 그렇다고 맨날 콘솔에 앉아서 모니터링할 수도 없습니다. 그래서 나온것이 SMS/NMS 라고 이야기할 수 있습니다.

이러한 것을 구현하기 위해서는 SNMP 이용하는 방법, 펄이나 쉘스크립트등으로 짜는 방법, SYSTEM API 에 접근하는 프로그램을 짜는 방법등이 있습니다.

NMS 하면 당연히 SNMP가 나옵니다. SNMP는 네트워크만 모니터링하는 것이 아니라 시스템의 자원도 같이 모니터링할 수 있습니다. 네트워크 트래픽, cpu, memory, swap, system load, 프로세스등. SNMP가 모니터링한 결과는 MRTG나 RRDTOOL을 이용하여 그래프로 그릴 수 있습니다. (RRDTOOL에 대한 한글자료는 RRDTOOL과 함께 이에 대한 frontend로 hostnic을 많이 설명하고 있더근요) 임계치를 설정하여 그 임계치를 넘는 경우에는 trap을 발생시켜서 사전에 문제를 예방하도록 할 수 있습니다. SNMP 자체로 모니터링하는 것이 아니라 다른 툴과 함께 결합하고 사용하지요. 이와 관련된 상용제품으로는 CA의 unicenter, hp의 hp-openview, IBM의 tivoli등이 있습니다. 공개소스로 나온것은 opennms, bir brother, nagios(netsaint)등이 있습니다.

일단 저로서는 상용제품은 써본적이 없으며 snmp와 mrtg를 결합해 모니터링을 사용한 적이 있으며 opennms는 예전에 조금 사용하다가 말았습니다. 서버 호스팅을 받는 회사에서 제공하는 모니터링툴을 사용하고 있습니다. (여기에는 위에서 말한 시스템의 자원뿐만 아니라 디렉토리의 변화, 패키지 변화, 설정파일의 변화, 사용자 변화등이 더 있더군요)

제가 요즘 세팅하여 사용하고 있는것은 nagios 라는 프로그램입니다.
nagios는 네트워크 서비스, 호스트의 자원등에 대한 모니터링이 가능하며 모니터링 항목은 플러그인을 통하여 추가할 수 있습니다. 또한 distributed 모니터링이 가능하여 중앙에 메인 서버과 있고 중간에 다른 그룹에 대한 중소규모 모니터링 서버를 둘수 있으며 redundant 와 failover 기능도 제공합니다. 방화벽이 있는 경우에는 매니저에서 직접 접근하는 것이 아니라 nrpe나 nsca 등의 프로그램을 이용하여 우회할 수 있습니다. 관리할 서버에서 중앙의 메인서버로 메시지를 보낼 수 있는 것이지요. (passive 모드라고 합니다)

지금은 nagios를 이용하여 제가 관리하는 네트워크 서비스와 호스트 자원을 모니터링하도록 설정해놓았는데 방화벽이 있는 쪽의 시스템에서는 distributed 모니터링을 이용하여 해당 그룹의 서버를 모니터링하고 중앙으로 보내도록 해 놓았습니다. 문제가 생겼을 경우에는 메일과 핸드폰으로 메시지를 보내도록 해 놓았습니다. 모니터링한 결과를 이용하여 퍼모먼스 데이타를 RRDTOOL과 어떻게 결합을 할 것인가 고민하고 있지요. 이걸 nagios와 연동을 할까 아니면 그냥 별도로 빼서 RRDTOOL로 그릴까..

nagios든 어떤 툴이든 이용하여 각 서비스와 로컬 자원을 모니터링하고 로컬 자원은 RRDTOOL로 그림을 그리면 될 것 같습니다. 여기에 추가하여 특정 로그메시지 뽑아내기, 보안체크(tripwire, 포트 스캐닝, rootkit 점검 등) 등을 결합하려고 생각하고 있지요. 개별적인 프로그램으로 각각 따로 필요한 부분을 점검할 수 있지만 중요한 것은 이러한 것들이 통합되어 일관되게 관리할 필요성이 있겠지요. 작업을 진행하는데로 문서를 정리해서 올릴 생각입니다. 아뭏든 nagios 라는 프로그램은 추천하고 싶습니다.

이와 관련되에 제가 모아놓은 내용은 http://tunelinux.pe.kr/wikix/index.php?display=SystemMonitoring 에 있습니다.

다른 분들은 어떤 방법으로 시스템/네트워크를 모니터링하고 있고 어떤 프로그램이나 솔루션을 사용하는지 궁금하네요. 상용 솔루션이라고 하더라도 장단점에 대해서 소개를 해주거나 사용해본 경험담을 이야기해주시면 많은 사람들에게 도움이 될 듯 하네요.

bh의 이미지

mib값 적용하는법만 익숙해지면,,
SNMP+MRTG두 참 괜찮은거 같더라구요,,

--
이 아이디는 이제 쓰이지 않습니다.

문태준의 이미지

제목 그대로 MRTG는 2개의 값만 이용할 수 있어서 RRDTOOL을 이용하는데 여러개의 값을 처리할수 있고 그래프도 다양하게 그릴 수 있더군요. rrdtool은 여기에도 몇가지 토론자료가 있더군요. 많은건 아니지만. 예전 MRTG를 써보았다면 RRDTOOL 자체도 사용법이 그리 복잡하지는 않은 것 같습니다.

데이터를 수집하는 것은 snmp든 스크립트든 다양한 방법이 있을 수 있는데 snmp를 이용한다면 매니저에서 관리할 서버에 접속할 수 있어야 할 것입니다. nagios 중에 나름대로 유용한 기능이 모니터링 시스템을 분산하고 모니터링할 서버가 방화벽이나 사설망에 있다고 하더라도 관리서버로 메시지를 보낼 수 있다는 것이지요. 서버가 사방에 흩어져있거나 기술지원을 하는 업체에서 쓰기에는 좋은 듯 합니다.

또 중요한것은 이러한 설정을 하기 위해서는 모니터링 항목을 정확하게 정하고 그 의미에 대해서 잘 알고 있어야겠지요. 예를 들어 리눅스에서 free 로 메모리를 확인하는데 실제 사용한 메모리는 버퍼, 캐쉬를 빼고 계산해야겠지요.

---------------------------
문태준
http://groups.google.co.kr/group/sysadminstudy 시스템어드민 공부모임
http://tunelinux.pe.kr
http://database.sarang.net