오픈소스 모니터링 솔루션
오픈소스 모니터링 솔루션 분야에도 뛰어난  제품들이 많이 있습니다.
그 중에서도 주목할 만한 제품 8가지를 엄선하여 소개합니다.
시스템 관리자들에게 모니터링 제품없이 서버를 운영한다는 것은 상상하기도 어려운 일입니다.
IT환경이 가상화와 클라우드로 변화하면서 관리자 1인당 서버 대수가 기하급수적으로 증가하면서, 오픈소스 모니터링 솔루션에 대한 관심은 매우 높습니다.
하지만 도입 목적에 따라 최적의 제품을 선택해서 잘 사용하면 큰 도움이 될 수 있겠지만, 잘못된 경우에는 오히려 번거롭고, 혼란만 초래하게 됩니다.
현재까지 주목받은 모니터링 제품부터 앞으로가 더욱 기대되는 제품들에 대해 개요와 특징을 정리하고자 합니다.
물리서버 뿐만아니라 가상화, IaaS, PaaS 환경에 따라 적합한 오픈소스 모니터링 제품은 어떤 것들이 있을까요?

Prometheus 모니터링 솔루션

커뮤니티
라이센스
  • Apache License v2.0
  • 최신 버전은 Ver 1.0.1  ( 2016 년 7 월 21 일 출시)
개요
  • Prometheus는 독일 베를린에 본사를 둔 음악 유통 플랫폼 제공자인 SoundCloud사 를 중심으로 개발하는 시계열 데이터 베이스
  • Go 언어로 개발
  • 모니터링 클라이언트 노드에 Docker가 설치되어 있으면, 서버와 클라이언트 그리고 alertmanager 모두 컨테이너로 설치지원
  • 모니터링 노드에 설치된 Prometheus는 Web API로 연결되어 각 노드를 브라우저에서 직접 참조
특징
  • 데이터는 key-value 형태의 NoSQL제품인 LevelDB에 저장
  • Go / Java / Ruby / Python으로 작성된 클라이언트 라이브러리를 GihHub 에서 다운로드
  • Docker 모니터링 용도로 많이 사용됨
고려사항
  • 벤더에 의한 기술 지원은 없으며, 커뮤니티에서만 지원
  • Docker 확대와 함께 앞으로가 기대되는 제품
참고
Prometheus 모니터링 솔루션

Scouter (스카우터) 모니터링 솔루션

커뮤니티
라이센스
  • Apache License v2.0
  • 최신 버전은 Ver 1.8.0  ( 2017 년 11 월 04 일 출시)
개요
  • Scouter는 LG CNS 에서 만들어 공개한 오픈소스(https://github.com/scouter-project/scouter)  APM(Application Performance Monitoring)  입니다.
  • 와탭의 김성조 CTO는 LG CNS에서 개발을 시작했습니다. LG CNS에는 5명으로 구성된 튜닝팀이 있었고 이들이 LG CNS에서 진행한
    대형 프로젝트의 문제가 생기면 해결사 역할을 하는 팀이였습니다. 김성조 CTO는 대형 프로젝트의 문제를 개선하는 작업을
    원활하게 할 수 있는 프로그램을 직접 만들어서 사용하고 있었고 개인의 노하우들은 후에 제니퍼소프트에서 솔루션으로 반영되게 됩니다.
    그 후로도 김성조 CTO는 2015년에는 오픈소스 APM인 스카우터를 공개하기도 하였죠.
    그후로 1년간 잠적한 김성조 CTO는 와탭에서 SaaS 기반의 새로운 APM을 만들어서 공개하게 됩니다.
    그게 지금의 SaaS 기반의 WhaTap Java APM 입니다. ( 와탭 블로그 중에서 발췌)
특징
  • 웹 기반이 아닌 이클립스 기반의 애플리케이션  클라이언트로 빠른 반응속도로 실시간 모니터링에 적합!
  • 간단한 설치와 한글 짇원
고려사항
  • 벤더에 의한 기술 지원은 없으며, 커뮤니티에서만 지원
참고
스카우터 모니터링

Sensu

커뮤니티
라이센스
  • MIT License
  • 2011 년 9 월 22 일 Ver 0.9.7 공개
  • 최신 버전은 Ver 0.25.3 (2016 년 6 월 17 일 공개)
개요
  • Sensu 는 Heavy Water Operations, LLC 가 개발 한 시스템 모니터링 소프트웨어
  • Ruby로 개발된 중앙 관리 서버와 클라이언트 에이전트 형태로 구성
특징
  • Sensu는 Nagios의 단점을 개선하기 위해 개발 된 제품이기 때문에 Nagios 플러그인을 지원
  • “Uchiwa” 라는 대시보드와 함께 사용
  • “Sensu Enterprise”라는 유료 버전도 제공(Enterprise Dashboard 제공)
고려사항
  • CPU / 메모리 / 디스크 / 네트워크 등의 기본적인 모니터링 항목과 http / RDB 등과 같은 주요 서비스들을 모니터링하는 플러그인을 제공
  • RDB와 같은 데이터 저장소를 사용하지 않기 때문에 데이터 관리에 있어서 별도 제품을 검토해야 함
참고
sensu 모니터링

Fluentd + InfluxDB + Grafana

Fluentd

커뮤니티
라이센스
  • Apache License v2.0  License
개요
  • C 언어와 Ruby로 개발
  • fluentd은 Treasure Data가 개발하는 로그 수집 관리 도구
특징
  • 여러 대의 서버를 운영하고있을 때 각각의 서버에 쌓이는 로그를 간단한 방법으로 통합
  • 설정이 간단하고 Batch가 아닌 실시간 Streaming으로 처리
고려사항
  • fluentd의 수많은 플러그인을 사용하여 로그를 기반으로한 다양한 유즈케이스에 활용
참고

InfluxDB

커뮤니티
라이센스
  • MIT License
개요
  • Go 언어로 개발
  • InfluxDB는 오픈 소스 시계열 데이터베이스(time-series)
  • RESTful API를 통해 데이터를 저장
특징
  • Influxdata를 통해 제품과 기술지원 서브스크립션을 판매
  • SQL쿼리 언어로 시계열 분석을 지원
고려사항
  • 2013 Open Source Rookies 에 선정
  • InfluxDB와 Grafana, CollectD, Sensu, cAdvisor를 사용하여 DevOps 환경 구축
  • infrastructure, servers, applications과 Docker 시각화
참고

Grafana

커뮤니티
라이센스
  • Apache license V2
개요
  • Grafana는 프로그램밍 하지 않고도 다양한 데이터 소스에 직접 연결하여 실시간으로 시각화해 주는 오픈 소스 대시 보드 (Open Source Metrics Dashboard)
특징
  • graphite, Elasticsearch, InfluxDB, Zabbix 등 여러 데이터 소스를 지원하며, 데이터 소스에서 데이터를 조회하여 그래프로 표현
  • Kibana는 Elasticsearch와 사용되며, Grafana는 Graphite or InfluxDB을 주로 백엔드로 사용
  • 다양한 표현방법은 Kibana가 압도적으로 우세함
고려사항
  • Grafana도 Go 언어로 개발되어 DB에 등록 된 데이터를 가공하여 그래프를 생성 할 수있습니다.
  • DB는 InfluxDB 외에 MySQL이나 PostgreSQL 등의 RDB 제품도 이용할 수 있습니다.
참고
grafana 모니터링

Munin

커뮤니티
라이센스
  • GPL v2
개요
  • Munin 은 시스템 리소스 사용량을 모니터링 하는 데 촛점을 맞춘 제품입니다.
특징
  • Munin는 C와 Perl로 개발 된 중앙 관리 서버 (Master)와 클라이언트 에이전트 (Node)의 형태로 구성되어 있습니다.
  • Master는 Debian/Red Hat 계열의 Linux와 FreeBSD / Solaris 환경을 지원합니다. Node는 AIX / HP-UX / Mac OS X / Windows에서 작동합니다.
  • CPU/메모리/디스크/네트워크 등의 자원 정보는 Node에 설치된 클라이언트 에이전트에서 기본적으로 설치되는 snmp 플러그인을 실행하여 검색하고 그래프로 표시됩니다.
  • httpd와 RDB 등 많이 사용되는 서비스에 대한 모니터링은 기본 플러그인으로 제공되며, 제공되지 않는 모니터링을 수행하기 위해서는 플러그인을 개발할수 있습니다.
고려사항
  • 노드 수가 증가하는 경우, 응답의 악화가보고되기 때문에 설정 및 관련 소프트웨어의 변경 등의 조정이 필요하다
  • 사활 감시 기능으로 사용하는 경우 Nagios와 연계시키는 등의 대응이 필요하다
참고
munin 모니터링
munin 모니터링

Zabbix

커뮤니티
라이센스
  • Zabbix는 GNU 일반 공중 사용 라이선스(GPL) 버전2의 조건에 따라 배포되는 무료 소프트웨어입니다.
개요
  • Zabbix는 Alexei Vladishev에 의해 만들어진 네트워크 및 애플리케이션에 대한 엔터프라이즈 형 오픈 소스 모니터링 솔루션으로 다양한 네트워크 서비스, 서버, 네트워크 하드웨어의 상태를 감시하고 추적 할 수 있도록 설계되었습니다.
특징
  • Zabbix는 다양한 모니터링 옵션을 제공합니다. 간단한 검사는 모니터링 할 호스트에 소프트웨어를 설치하지 않고도 SMTP나 HTTP와 같은 표준 서비스의 가용성과 응답성을 검증하여 실행할 수 있습니다.
  •  Zabbix는 데이터를 저장하기 위해 MySQL, PostgreSQL, SQLite, Oracle, IBM DB2를 사용하며, 백 엔드는 C로 작성되었고, 웹 프론트 엔드는 PHP로 작성되었습니다.
고려사항
  • 웹 인터페이스 기능이 너무 많고 복잡
  • 디버깅하기 어려움
참고
zabbix 모니터링

References & Related Links