로그인 회원가입
모두인포
전체IT경제사회생활스포츠시사여행연애

cAdvisor

lmkfox · 2025-03-12 · 조회 0
cAdvisor
cAdvisor(Container Advisor)란? cAdvisor(Container Advisor)는 Google에서 개발한 오픈 소스 컨테이너 모니터링 도구로, Docker 컨테이너 및 Linux 컨테이너의 리소스 사용량을 실시간으로 수집하고 분석하는 역할을 한다. 컨테이너의 CPU, 메모리, 디스크 I/O, 네트워크 사용량 등의 정보를 제공하며, Prometheus, InfluxDB, Grafana 등 다양한 모니터링 도구와 연동할 수 있다. 1. cAdvisor의 주요 특징 1.1 실시간 컨테이너 모니터링 • 실행 중인 모든 컨테이너의 리소스 사용량을 자동으로 감지하고 모니터링 • 컨테이너별 CPU, 메모리, 네트워크, 디스크 I/O 등의 성능 지표를 실시간으로 수집 1.2 웹 UI 제공 • 기본적으로 웹 UI(localhost:8080)를 통해 컨테이너의 리소스 사용량을 시각적으로 확인 가능 1.3 메트릭 데이터 저장 및 연동 • Prometheus, InfluxDB, Elasticsearch 등과 연동하여 장기적인 데이터 저장 및 분석 가능 • Grafana와 조합하여 강력한 시각화 대시보드 구축 가능 1.4 컨테이너 자동 감지 및 지원 • 실행 중인 Docker 컨테이너를 자동으로 감지하여 모니터링 • Kubernetes 및 기타 Linux 컨테이너 런타임(LXC 등)과도 연동 가능 1.5 경량화된 성능 모니터링 • 가볍고 빠르며, 시스템에 큰 부하를 주지 않음 • 개별 컨테이너뿐만 아니라 호스트 시스템 전체의 리소스 사용량도 모니터링 가능 2. cAdvisor 아키텍처 cAdvisor는 크게 3가지 주요 구성 요소로 이루어진다. 1. Container Discovery (컨테이너 자동 탐색) • 실행 중인 컨테이너를 자동으로 감지하여 모니터링을 시작 2. Resource Collection (리소스 수집) • CPU, 메모리, 디스크, 네트워크 등의 사용량을 지속적으로 수집 • /sys/fs/cgroup 및 /proc 파일 시스템을 사용하여 컨테이너별 메트릭을 계산 3. Storage & Export (데이터 저장 및 출력) • 기본적으로 cAdvisor의 웹 UI를 통해 실시간 모니터링 가능 • Prometheus, InfluxDB, Elasticsearch 등의 데이터 저장소와 연동 가능 3. cAdvisor 설치 및 실행 방법 3.1 Docker 컨테이너로 실행 가장 일반적인 방법은 Docker 컨테이너로 cAdvisor를 실행하는 것이다. docker run -d --name=cadvisor \ -p 8080:8080 \ --privileged \ --volume=/var/run/docker.sock:/var/run/docker.sock:ro \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ gcr.io/cadvisor/cadvisor:latest • -p 8080:8080 : 웹 UI를 localhost:8080에서 확인할 수 있도록 설정 • /var/run/docker.sock : 컨테이너 정보를 읽기 위해 Docker 소켓을 마운트 • /sys, /var/lib/docker/ : 컨테이너의 메트릭을 수집하기 위해 필요한 디렉토리 마운트 3.2 Kubernetes 환경에서 실행 Kubernetes 환경에서는 DaemonSet으로 cAdvisor를 실행할 수 있다. apiVersion: apps/v1 kind: DaemonSet metadata: name: cadvisor namespace: monitoring spec: selector: matchLabels: name: cadvisor template: metadata: labels: name: cadvisor spec: containers: - name: cadvisor image: gcr.io/cadvisor/cadvisor:latest ports: - containerPort: 8080 volumeMounts: - name: rootfs mountPath: /rootfs readOnly: true - name: var-run mountPath: /var/run readOnly: false volumes: - name: rootfs hostPath: path: / - name: var-run hostPath: path: /var/run • 위 설정을 통해 Kubernetes 클러스터의 모든 노드에서 cAdvisor가 실행되도록 구성할 수 있다. 4. cAdvisor 주요 기능 및 활용 사례 4.1 컨테이너 성능 모니터링 • 실행 중인 모든 컨테이너의 CPU, 메모리, 디스크, 네트워크 사용량을 실시간 모니터링 • 특정 컨테이너가 과도한 리소스를 소비하는지 감지 가능 4.2 Kubernetes 클러스터 모니터링 • Kubernetes 클러스터의 개별 노드와 컨테이너 리소스 사용량 분석 • Prometheus 및 Grafana와 연동하여 장기적인 성능 분석 가능 4.3 로그 및 메트릭 수집 • InfluxDB, Prometheus와 연동하여 컨테이너 리소스 데이터 저장 • Grafana 대시보드를 통해 장기적인 데이터 분석 및 시각화 가능 5. cAdvisor vs 다른 컨테이너 모니터링 도구 비교 기능 cAdvisor Prometheus + Node Exporter Netdata Zabbix 컨테이너 자동 감지 ✅ ❌ (수동 설정 필요) ✅ ❌ 실시간 모니터링 ✅ ✅ ✅ ❌ 데이터 저장 ❌ (기본 저장 없음) ✅ ✅ ✅ 경고 시스템 ❌ ✅ (Alertmanager 필요) ✅ ✅ 대시보드 제공 ✅ (기본 웹 UI) ✅ (Grafana 필요) ✅ ❌ 6. cAdvisor를 Prometheus 및 Grafana와 함께 사용하기 6.1 Prometheus에 cAdvisor 메트릭 저장 cAdvisor는 Prometheus가 데이터를 스크랩할 수 있도록 메트릭을 /metrics 엔드포인트에서 제공한다. Prometheus 설정 파일(prometheus.yml)에 아래 내용을 추가한다. scrape_configs: - job_name: 'cadvisor' static_configs: - targets: ['localhost:8080'] • Prometheus가 http://localhost:8080/metrics에서 데이터를 수집하도록 설정 6.2 Grafana에서 대시보드 구성 1. Grafana에 접속 후 Data Sources → Prometheus 추가 2. Grafana에서 cAdvisor용 공식 대시보드 (ID: 893) 가져오기 3. 컨테이너별 CPU, 메모리, 네트워크, 디스크 사용량을 실시간 모니터링 가능 7. 결론 cAdvisor는 가벼우면서도 강력한 컨테이너 모니터링 도구로, Docker 및 Kubernetes 환경에서 실시간 리소스 모니터링을 수행하는 데 유용하다. • 기본적으로 웹 UI를 통해 컨테이너별 리소스 사용량을 시각적으로 확인 가능 • Prometheus, InfluxDB, Grafana 등과 연동하면 장기적인 모니터링 및 분석도 가능 • 컨테이너 기반의 애플리케이션을 운영하는 환경에서 빠르고 가볍게 리소스 모니터링을 수행할 수 있는 필수 도구 중 하나다.

댓글

아직 댓글이 없습니다.

로그인 후 댓글을 남길 수 있습니다.