<aside> 💡 도커를 처음 배우기 시작한지 벌써 3개월이 흘렀습니다. 아마 많은 분들께서 복습을 하고 계시거나 도커로 시스템을 구축해보는 연습을 하고 계실텐데요😄 도움이 되는 모니터링툴을 이번 부록에서 다루고자 합니다. 복잡한 설정이나 세팅 없이 간단하게 컨테이너 형태로 실행할 수 있어 매우 유용합니다.
</aside>
출처
cAdvisor는 Container Advisor의 약자로, Go 언어로 개발된 도커 컨테이너 모니터링 툴입니다. Google의 오픈소스 프로젝트로 릴리즈 되었으며 현재 지속적으로 버전이 업데이트 되고 있습니다.
일반적으로 대규모 시스템은 단일 호스트가 아닌 수많은 호스트로 구성되어 있습니다. 그리고 그 호스트 내부에 수많은 컨테이너들이 실행되죠. 이런 인프라를 효율적으로 구축 제어하기 위해 등장한 것이 바로 Orchestration Tool인 Kubernetes 입니다. Kubernetes 클러스터의 메트릭 정보를 받아와서 모니터링 하는 툴은 굉장히 많죠. 하지만 Kubernetes 를 사용하지 않고 단일 호스트에서 운용하는 간단한 어플리케이션을 모니터링 할 때에는 cAdvisor를 활용하는 것이 편리합니다. 다만, cAdvisor 컨테이너가 실행되는 호스트의 도커 컨테이너만 모니터링 할 수 있기 때문에 여러 호스트를 운용하는 경우에는 적절하지 않습니다.
cAdvisor의 설치는 매우 간단합니다. 컨테이너 방식으로 실행만 하면 동일한 도커 엔진에서 작동하는 컨테이너들을 모두 모니터링 할 수 있습니다.
Shell에서 실행할 cAdvisor의 버전을 설정합니다.
VERSION=v0.42.0
아래 명령어에 따라 컨테이너를 실행하면 바로 이용이 가능합니다. 다만 공식 가이드에 작성된 호스트측 포트를 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
크롬 등 브라우저에서 [가상머신IP]:8081
로 접속하시면 다음과 같은 화면이 뜨면 정상적으로 실행된 것입니다.