보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

오픈소스 모니터링 도구 비교 분석

2016.06.20

10,240

이글루시큐리티 품질보증팀 한명석 차장 (starhms@igloosec.com)

    오픈소스 모니터링 도구는 상용 모니터링 도구에 비해 설치나 운영이 어렵고, 관리자가 해야 할 일이 많다. 하지만 중소기업이나 벤처기업에서는 모니터링 도구에 많은 비용을 투자할 여력이 충분하지 않아 오픈 소스 기반 모니터링 도구를 활용하는 경우가 많다. 이러한 경우, 관리자의 역량에 따라서 다양한 활용을 통해 모니터링 도구의 용도도 변하게 된다.   이 글에서는 오픈소스 모니터링 도구 3가지를 비교 분석하고 있다. 각 도구들의 장단점을 고려해 기업 내에서 필요로 하는 중점적인 모니터링의 역할을 찾아보고, 필요한 부분에 맞는 모니터링 도구를 선택 및 활용한다면 상용 모니터링 도구보다 더 좋은 성과를 낼 수 있을 것이다.     1. Cacti 소개 및 구성

1) 소 개 Cacti는 NMS(Network Management Service) tools로서 트리형태의 뷰를 제공하여 네트워크 트래픽 뿐만 아니라 CPU, Memory, Cache Memory등 모든 정보를 보여주도록 설계 되어 있다.

  

 

<그림 1> Cacti 메인 화면

 

 

2) 구 성 Cacti는 각 시스템 별 CPU, Memory, I/O, Disk, Network traffic 등 세부적인 항목에 대한 모니터링이 가능하다. Plugin을 많이 지원하여 현재는 대용량 파일시스템(HDFS)인 hadoop과 같이 최신 서비스에 대한 모니터링도 가능하게 되어 있다. 또한 관리자의 능력에 따라서 모니터링 툴로서 완벽에 가깝게 운영을 할 수 있다.

다만, SNMP (Simple Network Management Protocol)를 이용해 Node서버에서 자료를 수집하여 매니저서버에 전달하도록 되어 있어 보안상 취약할 수 있기 때문에 snmp 관련 보안 셋팅을 잘 해야 한다.

    2. Ganglia 소개 및 구성

1) 소 개 Ganglia(ganglion의 복수)는 클러스터의 사용 상태를 모니터링해 주는 도구이다. UC Berkerley의 Millennium Project (http://www.millennium.berkeley.edu/)에서 개발되었으며, 전세계의 오픈 소스 공동체인 SourceForge.net (http://ganglia.sourceforge.net/)을 통해 소스코드가 공개되어 자유롭게 사용할 수 있는 소프트웨어이다. 2001년에 최초 버전이 릴리즈 된 이후로 지속적으로 업그레이드 되고 있으며, 2016년 6월 3.7.2 ganglia web 버전까지 발표되었다. https://ganglia.wikimedia.org/latest/ 에 접속하면 Ganglia가 설치되어 모니터링 하고 있는 클러스터의 상태를 볼 수 있다.

 

 

 <그림 2> Ganglia 메인 화면

 

2) 구 성 Ganglia는 다음의 서로 다른 기능을 하는 3가지 소프트웨어로 구성된다.

 

① Ganglia Monitor Daemon (gmond) 모니터링을 원하는 모든 노드에 설치되어야 한다. 다른 호스트의 gmond 데몬에 멀티캐스트 메시지를 보내어 자신의 상태를 알리며, 다른 호스트의 정보를 수집하여 자신과 다른 노드의 시스템 상태를 XML형식으로 알려준다. 같은 네트웍상의 호스트에게만 호스트정보를 전달하기 때문에 WAN(Wide Area Network)에서는 멀티캐스팅이 되지 않는다.

② Ganglia Meta Daemon (gmetad) gmetad는 WAN에서 여러 gmond 데몬으로부터 수집된 호스트 정보를 RRD(round-robin database)에 저장한다. gmetad는 Ganglia Web Interface가 설치될 웹서버에 동작한다. 

③ Ganglia Web Interface 웹 인터페이스 모듈은 PHP언어로 작성되어 있으며 PHP가 지원되는 웹서버상에서 동작한다. gmetad에 의해 수집되어 RRD에 저장된 시스템 정보를 시각화해 보여주는 역할을 한다.

    

3. Hyperic-HQ 소개 및 구성

 

1) 소 개 시스템 리소스와 운영체제뿐 아니라 DB, 미들웨어 등 다양한 Application에 대한 모니터링을 할 수 있는 오픈소스 기반 솔루션으로 Opensoucre Award Application Monitoring 부문에서 수상한 경력이 있다. Node서버에 설치된 소프트웨어를 자동으로 검출하며 설치된 리소스뿐 만 아니라 물리적인 가상환경 또는 클라우드 환경까지 자동적으로 모니터링 할 수 있다. Cacti, Ganglia와 다르게 해외 벤처 기업에서 개발한 것으로 상용 버전이 별도로 존재하여 안정적인 기술지원과 업데이트가 이루어지며 신뢰도가 좋다.

 

 

<그림 3> Hyperic-HQ 메인 화면

 

2) 구 성 Hyperic HQ는 Manager, Node서버 방식 프로그램으로써 Enterprise급(상용) 프로그램이 별도로 존재한다. 프로그램이 rpm 버전으로 되어 있어 적합한 OS에 맞추어서 설치만 진행하면 자동으로 Manager 서버에 등록되게 된다. 기초 Setting이 완료된 후 Application Setting을 진행해야 해당 Application에 대한 모니터링을 진행할 수 있게 된다.

    4. 모니터링 도구 주요 기능  

1) 설치의 용의성 Cacti 와 Ganglia 도구는 Source 로 되어 있어 설치에 있어서 대상 서버의 특성에 따라서 설치가 편리할 수도 있지만 대부분의 경우에서는 설치가 까다롭다. 반면, Hyperic-HQ 도구는 패키지로 되어 있어서 설치가 편리하다. 오픈소스 기반이기 때문에 설치에 편리한 Hyperic-HQ가 설치의 용이성 부분에서는 가장 우수하다.

 

  <그림 4> Hyperic-HQ 설치 화면

 

2) Node 서버 추가 편리성 Cacti 도구와 Hyperic-HQ 도구는 설치 시에 Gui 화면을 이용하여 서버를 추가하게 되고 Ganglia 도구는 Terminal 창을 통해 서버를 추가한다. Gui 화면을 이용한 작업이 Terminal 창을 통해 서버를 추가하는 것보다 편리하고 신속하게 추가를 할 수 있다. 따라서 Cacti, Hyperic-HQ 도구가 Node 서버를 추가 하는데 있어 더욱 편리하다.     

<그림 5> Cacti의 Node 서버 추가 화면

 

3) Plugin 다양성

Cacti 도구는 Plugin 포럼이 별도로 존재하여 여러 개발자가 공동 혹은 개인적으로 개발을 하여 포럼에 올려서 공유하여 운영하며 Hyperic-HQ 도구는 www.hyperic.com 사이트에서 다운로드 받고, 추가적으로 업로드 할 수 있도록 되어 있다. 반면 Ganglia 도구는 별도의 Plugin을 올릴 수 있는 구성이 되어 있지 않아 플러그인 부분에서는 Cacti와 Hyperic-HQ 도구가 더 편리하다고 볼 수 있다.

  <그림 6> Cacti Plugin 화면

4) 실시간 모니터링 여부 Cacti 도구는 Realtime Plugin을 설치하면 최소 5초 단위로 모니터링을 할 수 있게 되어 서버의 문제나 상황에 대해서 실시간 모니터링을 할 수 있다. Hyperic-HQ는 항목별로 서비스의 가동부분만 모니터링 할 수 있다. Ganglia 도구는 실시간 모니터링 선택을 통해 실시간 모니터링이 가능하다.

 

<그림 7> Hyperic-HQ 실시간 모니터링

 

5) 최신 기술지원 여부 Cacti 도구는 hadoop과 같은 기술을 Plugin을 이용해서 지원을 하고 있고, Hyperic-HQ 도구 또한 Plugin을 활용해서 지원을 하고 있다. 하지만 Ganglia는 최신 기술지원 보다는 클러스터 기능에 초점이 맞춰져 있다.

 

<그림 8> Cacti 도구 Hadoop 지원

6) 클러스터 지원 클러스터 지원에 대한 부분을 보자. Ganglia는 클러스터를 지원하고 있으나 Cacti 도구는 NMS 기반이라 클러스터를 지원 하지 못한다. Hyperic-HQ 도구는 그룹으로 셋팅은 가능하지만 클러스터의 고유 기능인 통합된 모니터링 기능은 불가능 하다.

 

<그림 9> Ganglia 도구 클러스터 지원

 

7) 사용자 관리 기능 Cacti 도구와 Hyperic-HQ 도구는 User Management 기능에 있어서 사용자 관리 메뉴를 통해서 관리자와 모니터링 운영자 등으로 나누어 각각 관리 할 수 있다. 그러나 Ganglia 도구는 별도의 사용자 관리 기능이 없다. 이는 Node 서버의 추가나 기타 설정 변경작업을 서버의 Terminal에 접속하여 변경을 해야 하기 때문에 별도의 사용자 관리 가능이 필요하지 않다.

 

<그림 10> Hyperic-HQ 사용자 관리

8) 상세 화면(Zoom) 기능 Cacti 도구는 확인하고 싶은 구역을 선택하면 그 부분의 결과치를 볼 수 있는 기능을 제공하고 있다. Hyperic-HQ 는 최대 4시간까지 확대해 볼 수 있다. Ganglia는 확대 기능은 없으나 최대 1시간 간격의 모니터링 화면을 바로 보여준다. 

 

  <그림 11> Cacti 도구 Zoom 기능

 

9) 다운로드 기능 다운로드 기능은 서비스 운영 중 서버의 사용량을 집계하여 CSV 파일이나 별도 파일로 만들어내 서버 추가 현황이나 서버 운영 상태를 볼 수 있도록 기초 자료를 만드는 데 사용한다. Cacti 도구, Hyperic-HQ 도구와 Ganglia 도구 모두 이 기능을 지원하고 있다.

 

<그림 12> Ganglia 다운로드 기능

10) 기타 사항 Cacti 도구는 실시간 모니터링을 할 수 있는 Plugin이 있다. 이 기능은 실시간으로 서비스의 현재 상태를 볼 수 있다.

 

<그림 13> Cacti 도구 실시간 모니터링 기능

    5. 모니터링 도구 부하 실험 Apache Jmeter 도구를 이용하여 지속적으로 사용자 부하를 실험 대상 서버를 선정하고 사용자를 200명씩 증가시켜서 트래픽에 대한 부하를 지속적으로 측정해 세 가지 도구에 대한 내용을 확인한다.   

1) 서비스 접속자 증가 측정 각 도구의 일간 네트워크 모니터링 결과를 보면, 지속적인 모니터링은 모두 동일하게 수집하고 있다. 다만 화면으로 표현되는 부분에서는 NMS 기반을 가진 Cacti, Ganglia 모니터링 도구가 한 화면 내에서 상태를 모두 볼 수 있어 좀더 편리하다.

 

<그림 14> Cacti 도구 일간 네트워크 모니터링

 

<그림 15> Ganglia 도구 일간 네트워크 모니터링

 

<그림 16> Hyperic-HQ 도구 일간 네트워크 모니터링  

2) 내부 메모리 사용률 증가 측정 사용자 증가에 따른 Memory 사용에 대한 결과를 확인하였다. 최대용량이 정해져 있기는 하지만, 메모리는 최소로 유지하는 것이 좋기 때문에 한 대의 서버에 들어가는 메모리의 사용률을 확인하는 것이 더 좋은 방법이라 할 수 있겠다.

 

<그림 17> Cacti 도구 일간 메모리 사용률

 

<그림 18> Ganglia 도구 일간 메모리 사용률  

<그림 19> Hyperic-HQ 도구 일간 메모리 사용률