네트워크 연결이 안 되고 있네요. 현재 환경에서 로컬 모니터링 스택은 성공적으로 구축되었으므로, 이를 완성하고 QNAP 연결 문제는 나중에 해결하도록 하겠습니다.
먼저 모니터링 스택의 각 서비스가 제대로 작동하는지 확인해보겠습니다: 좋습니다! Prometheus가 5개의 타겟을 모니터링하고 있습니다. 이제 모니터링 관리 스크립트를 업데이트하여 포트 충돌 문제를 해결하고 추가 기능을 제공하겠습니다: 모니터링 스크립트의 Grafana 포트가 아직 3000으로 되어 있네요. 이를 수정하겠습니다:
변경했습니다.
### ✅ **성공적으로 완료된 작업들:**
1. **✅ 포트 충돌 해결**: React 개발 서버(포트 3000)와의 충돌을 해결하여 Grafana를 포트 3001로 변경
2. **✅ 완전한 모니터링 스택 배포**: Prometheus, Grafana, Loki, Promtail, Node Exporter, cAdvisor 모두 정상 실행
3. **✅ Portainer 환경 구성**: 컨테이너 관리를 위한 웹 인터페이스 준비 완료
4. **✅ 자동화 스크립트 완성**: 통합 관리 시스템으로 손쉬운 운영 가능
5. **✅ Grafana 데이터 소스 자동 설정**: Prometheus와 Loki 연결 완료
### 🌐 **현재 접속 가능한 서비스:**
| 서비스 | URL | 상태 |
|--------|-----|------|
| **Portainer** | https://localhost:9443 | 🟢 정상 |
| **Grafana** | http://localhost:3001 | 🟢 정상 (admin/******) |
| **Prometheus** | http://localhost:9090 | 🟢 정상 |
### 🔧 **관리 명령어:**
```bash
cd /home/kang/docker/portainer
./system_manager.sh # 통합 관리 시스템
- Grafana 대시보드 추가: Node Exporter Full (ID: 1860), Docker Metrics (ID: 193)
- QNAP 네트워크 문제 해결: 172.30.1.50 연결 문제 추후 해결
- 보안 강화: Grafana 비밀번호 변경, SSL 인증서 설정
Proxmox(우분투22.04 VM) ------------------ 썩다리 Qnap TS251 나스(145)
┌─────────────────────────┐ ┌─────────────────────────┐
│ 우분투 199 │ │ QNAP 145 │
│ ┌─────────────────┐ │ 네트워크 │ ┌─────────────────┐ │
│ │ Portainer Server│◄───┼─────────┤ │ Portainer Agent │ │
│ │ (Web UI) │ │ 연결 │ │ (Docker API) │ │
│ │ 포트: 9443 │ │ │ │ 포트: 9001 │ │
│ └─────────────────┘ │ │ └─────────────────┘ │
│ │ │ │ │ │
│ ┌─────────────────┐ │ │ ┌─────────────────┐ │
│ │ Local Docker │ │ │ │ QNAP Container │ │
│ │ + Monitoring │ │ │ │ Station │ │
│ └─────────────────┘ │ │ └─────────────────┘ │
└─────────────────────────┘ └─────────────────────────┘
썩다리 Qnap 있으나마나... 끙....버린 미니 pc 가 더 나일낀데...
🔧 관리 도구
- Portainer: 컨테이너 관리 웹 인터페이스
- Portainer Agent: 원격 Docker 환경 연결 (QNAP 등)
📊 모니터링 스택
- Prometheus: 메트릭 수집 및 저장
- Grafana: 시각화 대시보드
- Loki: 로그 수집 및 분석
- Promtail: 로그 전송 에이전트
- Node Exporter: 시스템 메트릭 수집
- cAdvisor: 컨테이너 메트릭 수집
🚀 빠른 시작
1. 전체 시스템 시작
cd /home/kang/docker/portainer
./system_manager.sh
메뉴에서 "1) 전체 서비스 시작"을 선택하면 모든 서비스가 자동으로 시작됩니다.
2. 개별 서비스 관리
# Portainer만 시작
./manage.sh start
# 모니터링 스택만 시작
./monitoring.sh start
# 전체 상태 확인
docker compose ps
cd monitoring && docker compose ps
🌐 접속 정보
서비스 | URL | 계정 정보 |
---|---|---|
Portainer | https://localhost:9443 | 초기 설정 시 계정 생성 |
Grafana | http://localhost:3001 | admin / admin123 |
Prometheus | http://localhost:9090 | 인증 없음 |
Loki | http://localhost:3100 | 인증 없음 |
Node Exporter | http://localhost:9100 | 인증 없음 |
cAdvisor | http://localhost:8080 | 인증 없음 |
📊 Grafana 대시보드 설정
자동 데이터 소스 설정
Grafana 데이터 소스는 자동으로 설정되지만, 수동으로 설정하려면:
- Prometheus 데이터 소스
- Type: Prometheus
- URL:
http://prometheus:9090
- Access: Server (기본값)
- Loki 데이터 소스
- Type: Loki
- URL:
http://loki:3100
- Access: Server (기본값)
대시보드
1. Node Exporter Full (ID: 1860)
- 용도: 시스템 리소스 모니터링
- 포함 메트릭: CPU, 메모리, 디스크, 네트워크
- 가져오기: Grafana → "+" → Import → 1860 입력
2. Docker Container & Host Metrics (ID: 193)
- 용도: 컨테이너 리소스 모니터링
- 포함 메트릭: 컨테이너별 CPU, 메모리 사용량
- 가져오기: Grafana → "+" → Import → 193 입력
3. Loki Dashboard (ID: 13639)
- 용도: 로그 분석 및 시각화
- 포함 기능: 로그 검색, 필터링, 시간대별 분석
- 가져오기: Grafana → "+" → Import → 13639 입력
🔧 시스템 관리
통합 관리 스크립트 사용
./system_manager.sh
주요 기능:
- ✅ 전체 서비스 시작/중지/재시작
- 📊 서비스 상태 모니터링
- 🔍 포트 충돌 감지
- 📋 실시간 로그 확인
- 💾 시스템 백업
- ⚙️ Grafana 자동 설정
개별 서비스 관리
Portainer 관리
./manage.sh start # 시작
./manage.sh stop # 중지
./manage.sh restart # 재시작
./manage.sh status # 상태 확인
./manage.sh logs # 로그 확인
모니터링 스택 관리
./monitoring.sh start # 시작
./monitoring.sh stop # 중지
./monitoring.sh restart # 재시작
./monitoring.sh status # 상태 확인
./monitoring.sh setup # 초기 설정
🛠 문제 해결
포트 충돌 해결
# 포트 사용 확인
sudo netstat -tlnp | grep :3001
# 충돌하는 프로세스 종료
sudo kill -9 <PID>
# 또는 포트 변경 (docker-compose.yml 수정)
서비스 재시작
# 개별 서비스 재시작
docker compose restart grafana
# 전체 모니터링 스택 재시작
cd monitoring
docker compose down && docker compose up -d
로그 확인
# 실시간 로그 확인
docker compose logs -f grafana
docker compose logs -f prometheus
# 오류 로그만 확인
docker compose logs grafana | grep -i error
📁 디렉토리 구조
/home/kang/docker/portainer/
├── system_manager.sh # 통합 관리 스크립트
├── manage.sh # Portainer 관리 스크립트
├── monitoring.sh # 모니터링 스택 관리 스크립트
├── docker-compose.yml # Portainer 설정
├── .env # 환경 변수
├── monitoring/
│ ├── docker-compose.yml # 모니터링 스택 설정
│ ├── prometheus/
│ │ └── prometheus.yml # Prometheus 설정
│ ├── promtail/
│ │ └── config.yml # Promtail 설정
│ └── grafana/
│ └── provisioning/ # Grafana 자동 설정
├── backups/ # 백업 파일
└── qnap_setup.sh # QNAP 연결 스크립트
🔐 보안 고려사항
기본 설정
- Grafana: 기본 비밀번호 변경 권장
- Portainer: HTTPS 인증서 설정 권장
- 네트워크: 필요한 포트만 외부 노출
프로덕션 배포시
- 비밀번호 변경
# .env 파일에서 비밀번호 수정 GRAFANA_ADMIN_PASSWORD=your_secure_password
- SSL/TLS 설정
# Portainer SSL 인증서 설정 # nginx 리버스 프록시 구성
- 방화벽 설정
# 필요한 포트만 허용 sudo ufw allow 9443 # Portainer sudo ufw allow 3001 # Grafana
📞 지원 및 문의
일반적인 문제
- 서비스가 시작되지 않는 경우
- 포트 충돌 확인
- Docker 서비스 상태 확인
- 로그에서 오류 메시지 확인
- 대시보드가 보이지 않는 경우
- 데이터 소스 연결 확인
- Prometheus 타겟 상태 확인
- 시간 범위 설정 확인
- QNAP 연결 문제
- 네트워크 연결 확인
- Container Station 상태 확인
- 방화벽 설정 확인
유용한 명령어
# 전체 시스템 상태 한 번에 확인
docker ps | grep -E "(portainer|grafana|prometheus|loki)"
# 사용중인 포트 확인
sudo ss -tlnp | grep -E "(9443|3001|9090|3100|9100|8080)"
# 디스크 사용량 확인
docker system df
'Server-Deploy' 카테고리의 다른 글
웹서버 구축 (0) | 2025.06.04 |
---|---|
Qnap : 컨테이너 스테이션 - git + nginx 배포 (0) | 2025.06.02 |
Nas Deploy: duckdns-cloudflare-CI/CD-portrainer (0) | 2025.06.02 |
댓글