87 lines
2.5 KiB
Markdown
87 lines
2.5 KiB
Markdown
# 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 데이터가 보존됩니다. |