# Docker Monitoring Stack 이 프로젝트는 Docker 컨테이너의 CPU, 메모리, 네트워크, 디스크 사용량을 모니터링하기 위한 Prometheus + Grafana 스택입니다. ## 구성 요소 - **Prometheus**: 메트릭 수집 및 저장 - **Grafana**: 시각화 대시보드 - **cAdvisor**: Docker 컨테이너 메트릭 수집 - **Node Exporter**: 시스템 메트릭 수집 ## 사용 방법 ### 1. 스택 시작 ```bash ./start.sh ``` 또는 직접 docker-compose 사용: ```bash docker-compose up -d ``` ### 2. 접속 정보 - **Grafana**: http://localhost:8883 - 사용자명: `admin` - 비밀번호: `admin` - **Prometheus**: http://localhost:8882 - **cAdvisor**: http://localhost:8881 - **Node Exporter**: http://localhost:9100 ### 3. 대시보드 Grafana에 자동으로 프로비저닝되는 대시보드: - Docker Container Monitoring - 컨테이너 CPU 사용률 - 컨테이너 메모리 사용량 - 네트워크 I/O - 디스크 I/O ### 4. 스택 중지 ```bash docker-compose down ``` ### 5. 로그 확인 ```bash docker-compose logs -f ``` ## 파일 구조 ``` ├── docker-compose.yml # 메인 컨테이너 설정 ├── prometheus/ │ └── prometheus.yml # Prometheus 설정 ├── grafana/ │ └── provisioning/ │ ├── datasources/ │ │ └── datasource.yml # Prometheus 데이터소스 설정 │ └── dashboards/ │ ├── dashboard.yml # 대시보드 프로비저닝 설정 │ └── docker-dashboard.json # Docker 모니터링 대시보드 ├── start.sh # 시작 스크립트 └── README.md # 이 파일 ``` ## 주요 메트릭 - `container_cpu_usage_seconds_total`: 컨테이너 CPU 사용시간 - `container_memory_usage_bytes`: 컨테이너 메모리 사용량 - `container_network_receive_bytes_total`: 네트워크 수신 바이트 - `container_network_transmit_bytes_total`: 네트워크 송신 바이트 - `container_fs_reads_bytes_total`: 디스크 읽기 바이트 - `container_fs_writes_bytes_total`: 디스크 쓰기 바이트 ## 문제 해결 1. **포트 충돌**: 다른 서비스에서 포트를 사용 중인 경우 docker-compose.yml의 포트를 변경하세요. 2. **권한 문제**: cAdvisor가 Docker 메트릭에 접근하려면 권한이 필요합니다. 3. **데이터 지속성**: Docker 볼륨을 사용하여 Prometheus와 Grafana 데이터가 보존됩니다.