Server-Deploy

도커 관리 : Portainer 아키텍처

자무카 2025. 6. 2.

네트워크 연결이 안 되고 있네요. 현재 환경에서 로컬 모니터링 스택은 성공적으로 구축되었으므로, 이를 완성하고 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  # 통합 관리 시스템
  1. Grafana 대시보드 추가: Node Exporter Full (ID: 1860), Docker Metrics (ID: 193)
  2. QNAP 네트워크 문제 해결: 172.30.1.50 연결 문제 추후 해결
  3. 보안 강화: 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 데이터 소스는 자동으로 설정되지만, 수동으로 설정하려면:

  1. Prometheus 데이터 소스
    • Type: Prometheus
    • URL: http://prometheus:9090
    • Access: Server (기본값)
  2. 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 인증서 설정 권장
  • 네트워크: 필요한 포트만 외부 노출

프로덕션 배포시

  1. 비밀번호 변경
  2. # .env 파일에서 비밀번호 수정 GRAFANA_ADMIN_PASSWORD=your_secure_password
  3. SSL/TLS 설정
  4. # Portainer SSL 인증서 설정 # nginx 리버스 프록시 구성
  5. 방화벽 설정
  6. # 필요한 포트만 허용 sudo ufw allow 9443 # Portainer sudo ufw allow 3001 # Grafana

📞 지원 및 문의

일반적인 문제

  1. 서비스가 시작되지 않는 경우
    • 포트 충돌 확인
    • Docker 서비스 상태 확인
    • 로그에서 오류 메시지 확인
  2. 대시보드가 보이지 않는 경우
    • 데이터 소스 연결 확인
    • Prometheus 타겟 상태 확인
    • 시간 범위 설정 확인
  3. 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

댓글