[cAdvisor] #4.Docker기반 cAdvisor 설치 및 설정 가이드
Grafana/Prometheus Architecture
- 아래 그림에서 Exporters 에 해당하는 부분에 해당함
- cAdvisor는 컨테이너의 리소스 사용량, 네트워크 I/O, 디스크 I/O, 메모리 사용량 등의 정보를 수집하고 시각화하여 사용자가 쉽게 모니터링할 수 있도록 한다. Google에서 개발되었으며, 현재는 Cloud Native Computing Foundation (CNCF)의 산하 프로젝트로 유지보수되고 있다.
테스트 수행한 환경
- 인터넷가능한 환경, Rocky Linux 8.6, Docker가 구성된 환경
1. cAdvisor docker-compose 구동을 위한 스크립트 준비
전체파일 구성
tree
├── create.sh
├── delete.sh
├── docker-compose.yml
├── log.sh
├── start.sh
└── stop.sh
1) docker-compose.yml 샘플
주요설정 설명
- privileged: true 해당 설정을 해야 정상적으로 구동된다.
vi docker-compose.yml
version: '3.7'
# monitor-net이름으로 이미 구성한 경우에는 networks부분은 주석처리
networks:
monitor-net:
driver: bridge
services:
cadvisor:
#image: gcr.io/google-containers/cadvisor:v0.34.0
image: google/cadvisor:latest
container_name: cadvisor
privileged: true
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys/fs/cgroup:/sys/fs/cgroup:ro
- /dev/disk/:/dev/disk:ro
# restart: unless-stopped
ports:
- 8080:8080
networks:
- monitor-net
2) docker 컨테이너 생성,삭제,구동,중지,로그조회 등 스크립트 작성
cat > create.sh <<EOF
#!/usr/bin/bash
docker-compose -f docker-compose.yml up -d
docker-compose -f docker-compose.yml logs -f
EOF
cat > delete.sh <<EOF
#!/usr/bin/bash
docker-compose -f docker-compose.yml down -v
EOF
cat > start.sh <<EOF
#!/usr/bin/bash
docker-compose -f docker-compose.yml start
EOF
cat > stop.sh <<EOF
#!/usr/bin/bash
docker-compose -f docker-compose.yml stop
EOF
cat > log.sh <<EOF
#!/usr/bin/bash
docker-compose -f docker-compose.yml logs -f
EOF
chmod +x *.sh
2. cAdvisor 정상구동여부 확인, 대시보드 확인
### 구동하기
./create.sh
### 도커컨테이너 정상구동여부 확인
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
156c926b2f2f google/cadvisor:latest "/usr/bin/cadvisor..." 56 minutes ago Up 56 minutes 0.0.0.0:8080->8080/tcp cadvisor
3. cAdvisor 메트릭 데이터 조회
curl http://아이피:8080/metrics
# HELP cadvisor_version_info A metric with a constant '1' value labeled by kernel version, OS version, docker version, cadvisor version & cadvisor revision.
# TYPE cadvisor_version_info gauge
cadvisor_version_info{cadvisorRevision="8949c822",cadvisorVersion="v0.32.0",dockerVersion="1.13.1",kernelVersion="3.10.0-1160.80.1.el7.x86_64",osVersion="Alpine Linux v3.7"} 1
# HELP container_cpu_load_average_10s Value of container cpu load average over the last 10 seconds.
# TYPE container_cpu_load_average_10s gauge
container_cpu_load_average_10s{container_label_com_docker_compose_config_hash="",container_label_com_docker_compose_container_number="",container_label_com_docker_compose_depends_on="",container_label_com_docker_compose_image="",container_label_com_docker_compose_oneoff="",container_label_com_docker_compose_project="",container_label_com_docker_compose_project_config_files="",container_label_com_docker_compose_project_working_dir="",container_label_com_docker_compose_service="",container_label_com_docker_compose_version="",container_label_logging="",container_label_logging_jobname="",container_label_maintainer="",container_label_org_label_schema_group="",container_label_org_opencontainers_image_created="",container_label_org_opencontainers_image_revision="",container_label_org_opencontainers_image_source="",container_label_org_opencontainers_image_url="",id="/",image="",name=""} 0
이하 생략..
4. Grafana 대시보드에서 조회
- Grafana사이트에서 다운받은 대시보드로 조회한 화면
댓글남기기