Docker 모니터링하기

이재홍 http://www.pyrasis.com 2014.08.02 ~ 2014.09.20

Docker로 서비스를 구축했을 때 서버의 CPU나 메모리 사용량이 얼마나 되는지 모니터링할 필요가 있습니다. 서버의 자원을 모니터링하는 도구는 매우 다양합니다. 이 장에서는 다양한 도구 중에서 Graphite를 사용하여 서버 모니터링 시스템을 구축해보겠습니다.

Graphite는 서버의 자원을 모니터링하고 그래프를 출력해주는 오픈 소스 도구이며 다양한 도구를 조합하여 사용합니다. 이번에는 Graphite에 Carbon, Graphite Web, Grafana, Elasticsearch, Diamond를 조합하여 Docker 컨테이너로 실행하는 방법을 소개하겠습니다.


그림 9-1 Graphite 모니터링 시스템

  • Graphite: 시간 기반의 측정치(Metric) 데이터를 저장하는 저장소입니다. Python으로 작성되어 있습니다.
    • Graphite Web: 저장된 측정치 데이터와 시간을 그래프로 표시해주는 웹 애플리케이션입니다.
    • Carbon-Cache: 네트워크상에서 측정치 데이터를 수집하고 디스크에 저장하는 데몬입니다.
  • Grafana: Graphite 대시보드입니다. 웹 애플리케이션이며 Graphite Web보다 UI나 화면 구성이 좀더 깔끔합니다. Graphite Web에서 데이터를 가져오기 때문에 Graphite Web이 필요합니다.
    • Elasticsearch: Apache Lucene을 기반으로하는 검색엔진입니다. 여기서는 Grafana 대시보드상의 그래프 설정값을 저장하는 용도로만 사용합니다.
  • Diamond: 서버 자원의 측정치 데이터를 수집하여 Carbon-Cache로 전송하는 도구입니다. CPU, 메모리, 네트워크 사용량과 디스크 I/O 등의 데이터를 수집합니다.

예제 파일은 저의 GitHub 저장소에서 받을 수 있습니다.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

30 November 2014