<aside> 💡 도커를 처음 배우기 시작한지 벌써 3개월이 흘렀습니다. 아마 많은 분들께서 복습을 하고 계시거나 도커로 시스템을 구축해보는 연습을 하고 계실텐데요😄 도움이 되는 모니터링툴을 이번 부록에서 다루고자 합니다. 복잡한 설정이나 세팅 없이 간단하게 컨테이너 형태로 실행할 수 있어 매우 유용합니다.

</aside>

출처

1. cAdvisor

Untitled

1.1 등장

cAdvisor는 Container Advisor의 약자로, Go 언어로 개발된 도커 컨테이너 모니터링 툴입니다. Google의 오픈소스 프로젝트로 릴리즈 되었으며 현재 지속적으로 버전이 업데이트 되고 있습니다.

1.2 사용 가능 케이스 및 한계

일반적으로 대규모 시스템은 단일 호스트가 아닌 수많은 호스트로 구성되어 있습니다. 그리고 그 호스트 내부에 수많은 컨테이너들이 실행되죠. 이런 인프라를 효율적으로 구축 제어하기 위해 등장한 것이 바로 Orchestration Tool인 Kubernetes 입니다. Kubernetes 클러스터의 메트릭 정보를 받아와서 모니터링 하는 툴은 굉장히 많죠. 하지만 Kubernetes 를 사용하지 않고 단일 호스트에서 운용하는 간단한 어플리케이션을 모니터링 할 때에는 cAdvisor를 활용하는 것이 편리합니다. 다만, cAdvisor 컨테이너가 실행되는 호스트의 도커 컨테이너만 모니터링 할 수 있기 때문에 여러 호스트를 운용하는 경우에는 적절하지 않습니다.

2. 실행방법

2.1 설치

cAdvisor의 설치는 매우 간단합니다. 컨테이너 방식으로 실행만 하면 동일한 도커 엔진에서 작동하는 컨테이너들을 모두 모니터링 할 수 있습니다.

2.1.1 버전 설정

Shell에서 실행할 cAdvisor의 버전을 설정합니다.

VERSION=v0.42.0

2.1.2 컨테이너 실행

아래 명령어에 따라 컨테이너를 실행하면 바로 이용이 가능합니다. 다만 공식 가이드에 작성된 호스트측 포트를 8080 에서 8081 로 변경해놓았는데, 이는 Spring 등 많은 웹 프레임워크가 8080을 기본 웹서버 포트로 사용하기 때문입니다.

sudo docker run \\
  --volume=/:/rootfs:ro \\
  --volume=/var/run:/var/run:ro \\
  --volume=/sys:/sys:ro \\
  --volume=/var/lib/docker/:/var/lib/docker:ro \\
  --volume=/dev/disk/:/dev/disk:ro \\
  --publish=8081:8080 \\
  --detach=true \\
  --name=cadvisor \\
  --privileged \\
  --device=/dev/kmsg \\
  gcr.io/cadvisor/cadvisor:$VERSION

2.1.3 브라우저에서 접속

크롬 등 브라우저에서 [가상머신IP]:8081 로 접속하시면 다음과 같은 화면이 뜨면 정상적으로 실행된 것입니다.

cAdvisor_-__.png