Docker 컨테이너를 모니터링하는 방법에는 여러 가지가 있습니다. 이 블로그에서는 간단하고 사용하기 쉬운 몇 가지 옵션에 대해 설명합니다:

  1. 도커 통계 명령
  2. Docker 원격 API
  3. cAdvisor
    1. 프로메테우스
    2. InfluxDB
  4. 도커 범용 컨트롤 플레인

각각에 대해 자세히 살펴보겠습니다.

우리는 카우치베이스 서버 를 사용하여 모니터링 데이터를 수집합니다. 서버를 시작하겠습니다:

아룽업타/카우치베이스 이미지에 대한 설명은 github.com/arun-gupta/docker-images/tree/master/couchbase. 수행합니다:

  • 인덱스 및 데이터 서비스용 메모리 설정
  • 인덱스, 데이터 및 쿼리 서비스를 위한 Couchbase 서버 구성
  • 사용자 이름 및 비밀번호 자격 증명 설정

이제 모니터링 데이터를 수집해 보겠습니다.

도커 통계

도커 통계 다음 컨테이너의 리소스 사용량 통계의 실시간 스트림을 표시합니다:

  • CPU % 사용량
  • 메모리 사용량, 제한, % 사용량
  • 네트워크 I/O
  • 디스크 I/O

통계는 매초마다 업데이트됩니다. 다음은 샘플 출력입니다:

기본적으로 이 명령은 실행 중인 모든 컨테이너에 대한 통계를 표시합니다. 공백으로 구분된 컨테이너 이름 또는 ID 목록을 지정하여 스트림을 실행 중인 컨테이너의 하위 집합으로 제한할 수 있습니다. 예를 들어
카우치베이스 컨테이너는 다음과 같이 볼 수 있습니다:

어디 카우치베이스 는 컨테이너 이름입니다. 출력은 다음과 같습니다:

--스트림 없음 옵션을 지정하여 첫 번째 스냅샷만 표시하고 결과를 스트리밍하지 않을 수 있습니다. 이 옵션은 도커 로젠트리 컨테이너 를 수집하는 데 사용할 수 있습니다.
이 데이터.

Docker 원격 API

도커 데몬은 원격 REST API. 이 API는 클라이언트가 엔진과 통신하는 데 사용됩니다. 이 API는 다음과 같은 다른 도구에서도 호출할 수 있습니다.
curl 또는 Chrome 포스트맨 REST 클라이언트.

OSX 매버릭스에서 Docker 머신을 사용하여 Docker 데몬을 만드는 경우 이 API가 작동하도록 하는 것이 약간 까다롭습니다. Mac을 사용하는 경우 다음 지침을 따르세요. Docker 원격 API 사용 에
를 사용하여 curl이 이 REST API를 호출할 수 있는지 확인합니다. 컨테이너에 대한 통계를 제공하는 API는 다음과 같습니다. /containers/{id}/stats 또는 /컨테이너/{이름}/통계.

그러면 컨테이너에 대한 더 많은 통계를 다음과 같이 얻을 수 있습니다:

다음과 같은 결과(서식 지정)가 표시됩니다:

메모리, 디스크, 네트워크에 대한 자세한 정보가 더 많이 있습니다. 새로운 메트릭 세트가 매초마다 푸시됩니다.

cAdvisor

cAdvisor 또는 컨테이너 어드바이저는 호스트 및 컨테이너 메트릭을 제공합니다. 실행 중인 컨테이너에 대한 정보를 수집, 집계, 처리 및 내보내는 실행 중인 데몬입니다. cAdvisor를 시작하겠습니다.
컨테이너:

cAdvisor 대시보드에는 지난 60초 동안의 데이터만 표시됩니다. 그러나 Prometheus 및 InfluxDB와 같은 여러 백엔드,
를 지원하여 장기간 저장, 검색 및 분석할 수 있습니다.

사용 카우치베이스 쿼리 도구 를 클릭하여 Couchbase 서버에 연결합니다:

호출 N1QL 쿼리:

cAdvisor는 1분 분량의 데이터만 저장하며, 다음은 대시보드의 캡처입니다:
cadvisor-cpu-usage

메모리 사용량도 마찬가지입니다:

cadvisor-total-memory-usage

cAdvisor에서 생성된 데이터를 사용하여 멋진 대시보드에 표시할 수 있는 다양한 도구가 있습니다. 자세한 내용은 다음에서 확인할 수 있습니다. github.com/google/cadvisor/tree/master/docs.

도커 범용 컨트롤 플레인

Docker 유니버설 컨트롤 플레인(DUCP)을 사용하면 방화벽 내에서 도커화된 분산 애플리케이션을 관리하고 배포할 수 있습니다. LDAP/AD와 같은 주요 시스템과 통합하여 사용자를 관리하고 IT 운영 팀에 다음과 같은 인터페이스를 제공합니다.
배포 및 관리. RBAC, Docker 신뢰할 수 있는 레지스트리와의 SSO 통합, 간단하고 사용하기 쉬운 웹 UI가 주요 기능 중 일부입니다. 읽기 제품 개요 완료하려면
기능 세트입니다.

도커 머신을 사용한 도커 유니버설 제어 계획 를 사용하는 것이 로컬 컴퓨터에서 이를 체험하는 가장 쉬운 방법입니다. 지침은 매우 상세하며 바로 사용할 수 있습니다. 다음은 다음과 같습니다.
Couchbase 이미지를 배포한 후 일부 이미지를 제거합니다.

DUCP 설치는 DUCP 컨트롤러와 하나 이상의 호스트로 구성됩니다. 이러한 호스트는 도커 스웜 클러스터를 생성합니다. 그리고 이 클러스터에서 컨테이너가 시작됩니다:

Docker Universal Control Plane Image
포트 매핑은 쉽게 정의할 수 있습니다:
Docker Universal Control Port Mapping
컨테이너가 실행되면 모니터링 통계를 볼 수 있습니다:
Docker Universal Control Monitoring Stats
마지막으로 예쁜 대시보드입니다:

Docker Universal Control Plane Dashboard

A 클라이언트 번들 로 도커 스웜 클러스터에 대한 정보를 표시합니다:

모니터링 데이터를 제공하는 많은 도구가 있습니다:

도커 통계 그리고 Docker 원격 API 는 확실히 가장 쉬운 첫 번째 스냅샷을 제공합니다.
모니터링 데이터.

그리고 거기서부터 흥미로워집니다!

작성자

게시자 Arun Gupta, 개발자 지원 부문 부사장, Couchbase

아룬 굽타는 Couchbase의 개발자 지원 담당 부사장입니다. 그는 Sun, Oracle, Red Hat에서 10년 이상 개발자 커뮤니티를 구축하고 이끌었습니다. 그는 콘텐츠, 마케팅 캠페인 및 프로그램의 전략, 계획 및 실행을 개발 및 실행하는 교차 기능 팀을 이끄는 데 있어 깊은 전문성을 보유하고 있습니다. 그 전에는 Sun에서 엔지니어링 팀을 이끌었으며 Java EE 팀의 창립 멤버입니다. Gupta는 기술에 관한 블로그 게시물을 2,000개 이상 작성했습니다. 40여 개국에서 수많은 주제에 대해 광범위한 강연 경험을 가지고 있으며, 3년 연속 JavaOne Rock Star로 선정되었습니다. 또한 미국에서 Devoxx4Kids 지부를 설립하여 어린이를 대상으로 한 기술 교육을 지속적으로 장려하고 있습니다. 기술에 관한 여러 권의 책을 저술했으며, 열렬한 마라토너이자 지구를 횡단하는 사람, Java 챔피언, JUG 리더, NetBeans 드림팀 멤버, Docker 캡틴이기도 한 그는 @arungupta에서 쉽게 만나볼 수 있습니다.

댓글 남기기