다크 모드
PRISM 온프레미스 설치 매뉴얼
PRISM 온프레미스 환경 설치를 위한 기술 매뉴얼입니다. 온프레미스 모드에서는 모든 구성 요소가 고객사 내부 서버에 설치되며, 외부 인터넷 연결 없이 독립적으로 운영할 수 있습니다.
대상 독자
본 문서는 시스템 관리자 및 인프라 담당자를 대상으로 합니다.
시스템 요구사항
하드웨어 요구사항
| 항목 | 최소 사양 | 권장 사양 |
|---|---|---|
| OS | Ubuntu 20.04+ / CentOS 7+ / RHEL 8+ | Rocky 8+ / AlmaLinux 8+ |
| CPU | 4코어 이상 | 8코어 이상 |
| RAM | 16GB 이상 | 32GB 이상 |
| 디스크 | 100GB 이상 (SSD 권장) | 200GB+ NVMe SSD |
| Docker | 20.10 이상 | 최신 안정 버전 |
| Docker Compose | v2.0 이상 | 최신 안정 버전 |
| 네트워크 | 고정 IP, 방화벽 포트 개방 | - |
주의
- CentOS 7은 2024-06-30부로 EOL되었습니다. Rocky Linux 8+ 또는 AlmaLinux 8+으로의 전환을 권장합니다.
- 데이터베이스(PostgreSQL, MongoDB)와 Redis 영속화 데이터가 저장되므로, 모니터링 대상 서버 수에 비례하여 디스크 용량을 산정해야 합니다.
추가 권장 설정
| 항목 | 설명 |
|---|---|
| 시간 동기화 | NTP 또는 chrony 설정 필수 (메트릭 타임스탬프 정합성) |
| SELinux | Permissive 또는 Disabled 권장 (Docker 호환) |
| Swap | 비활성화 권장 (Redis 성능) |
규모별 사양 안내
위 사양은 모니터링 대상 서버 50대 이하 기준입니다. 100대 이상 운영 시 CPU 16코어, RAM 64GB 이상을 권장합니다. 폐쇄망(Air-Gapped) 환경에서는 Docker 이미지를 사전에 tar 파일로 반입해야 합니다.
아키텍처 개요
온프레미스 모드에서는 모든 구성 요소가 단일 마스터 노드에서 Docker Compose로 실행됩니다.
[각 노드] [마스터 노드 (PRISM 서버)]
+-----------------+ +--------------------------------------------------+
| Node Exporter | | |
| :9100 |---+ | Prometheus (:9090) |
+-----------------+ | | | |
| DCGM Exporter | +----->| | http_sd_configs |
| :9400 (GPU) |---+ | v |
+-----------------+ | | prism-data (:11052) |
| IPMI Exporter |---+ | | | | |
| :9290 | | v v v |
+-----------------+ | Redis PostgreSQL MongoDB |
| Slurm Exporter |---+ | :6379 :5432 :27017 |
| :9341 | | | | |
+-----------------+ +----->| v |
| Lustre Exporter |---+ | PRISM Dashboard (:12062) |
| :9169 | | Watcher (:11082) |
+-----------------+ +--------------------------------------------------+데이터 흐름:
- 각 노드의 Exporter가 시스템 메트릭을 수집하여 HTTP 엔드포인트로 노출합니다.
- Prometheus가 주기적(15초)으로 각 Exporter를 스크랩하고, prism-data가 Prometheus에서 메트릭을 취합합니다.
- 취합된 메트릭이 Redis TimeSeries에 저장되고, Dashboard가 실시간 SSE로 브라우저에 전달합니다.
Exporter 역할 요약
| Exporter | 포트 | 수집 대상 |
|---|---|---|
| Node Exporter | 9100 | CPU, 메모리, 디스크, 네트워크 |
| DCGM Exporter | 9400 | NVIDIA GPU (온도, 사용률, 메모리) |
| IPMI Exporter | 9290 | 하드웨어 센서 (온도, 팬, 전력) |
| Slurm Exporter | 9341 | HPC 잡 스케줄러 (노드, CPU, GPU 할당) |
| Lustre Exporter | 9169 | 병렬 파일시스템 I/O |
온프레미스 핵심 포인트
- 온프레미스 모드에서는 Bridge를 사용하지 않습니다. PRISM이 로컬 Prometheus를 직접 조회합니다.
- DCGM Exporter는 NVIDIA GPU가 있는 노드에만 설치합니다.
- Slurm Exporter는 Slurm 클러스터의 마스터 노드에만 설치합니다.
- Lustre Exporter는 Lustre 클라이언트가 마운트된 노드에만 설치합니다.
네트워크 포트
포트 목록
| 서비스 | 포트 | 프로토콜 | 방향 | 비고 |
|---|---|---|---|---|
| Node Exporter | 9100 | TCP/HTTP | Inbound (각 노드) | 마스터에서 스크랩 |
| DCGM Exporter | 9400 | TCP/HTTP | Inbound (GPU 노드) | NVIDIA GPU 전용 |
| IPMI Exporter | 9290 | TCP/HTTP | Inbound (각 노드) | BMC 센서 데이터 |
| Slurm Exporter | 9341 | TCP/HTTP | Inbound (마스터) | Slurm 클러스터 전용 |
| Lustre Exporter | 9169 | TCP/HTTP | Inbound (스토리지) | Lustre FS 전용 |
| Prometheus | 9090 | TCP/HTTP | Internal | 외부 노출 불필요 |
| prism-data | 11052 | TCP/HTTP | Internal | 데이터 수집 서비스 |
| Redis | 6379 | TCP | Internal | 외부 접근 차단 필수 |
| PostgreSQL | 5432 | TCP | Internal | 외부 접근 차단 필수 |
| MongoDB | 27017 | TCP | Internal | 외부 접근 차단 필수 |
| Dashboard | 12062 | TCP/HTTP(S) | Inbound | 웹 브라우저 접속 포트 |
| Watcher | 11082 | TCP/HTTP | Internal | 알림/감시 서비스 |
방향 설명:
- Inbound: 외부(사용자 PC, 각 노드)에서 마스터 노드로 접근이 필요한 포트
- Internal: 마스터 노드 내부 Docker 네트워크 간 통신. 외부 개방 불필요
보안 권고
- DB 포트(5432, 27017, 6379)는 외부 접근을 반드시 차단하세요.
- Prometheus(9090)도 내부 전용으로 운영을 권장합니다.
- HTTPS 적용 시 443 포트를 추가하고, 12062 대신 리버스 프록시(nginx) 경유를 권장합니다.
방화벽 설정 예시 (Ubuntu UFW)
bash
sudo ufw allow 12062/tcp # Dashboard
sudo ufw allow 9100/tcp # Node Exporter (각 노드 → 마스터)
sudo ufw allow 9400/tcp # DCGM Exporter (GPU 노드 → 마스터)
sudo ufw allow 9290/tcp # IPMI Exporter (각 노드 → 마스터)설치 준비
Docker 설치
bash
# 1. Docker 설치 (공식 convenience script)
curl -fsSL https://get.docker.com | sudo bash
# 2. 현재 사용자를 docker 그룹에 추가 (sudo 없이 docker 명령 사용)
sudo usermod -aG docker $USER
# 3. Docker 서비스 활성화 및 시작
sudo systemctl enable docker
sudo systemctl start docker
# 4. 로그아웃 후 재로그인 (그룹 변경 적용)
# 또는 다음 명령으로 즉시 적용:
newgrp docker
# 5. 설치 확인
docker --version # Docker version 20.10+ 확인
docker compose version # Docker Compose v2.0+ 확인CentOS/RHEL 사전 작업
기존 podman/buildah가 설치된 경우 충돌 방지를 위해 사전 제거가 필요합니다.
bash
sudo yum remove -y podman buildah디렉터리 구조 생성
bash
# PRISM 설치 디렉터리 생성
mkdir -p ~/prism/{config,data,logs}최종 디렉터리 구조:
~/prism/
+-- docker-compose.yml # 서비스 정의
+-- .env # 환경 변수 (DB 비밀번호 등)
+-- monitoring-config.yml # 메트릭 수집 정의
+-- config/ # 설정 파일
| +-- prometheus.yml # Prometheus 설정
+-- data/ # 영속 데이터 (DB, Redis)
| +-- postgres/
| +-- mongodb/
| +-- redis/
+-- logs/ # 서비스 로그
+-- jars/ # PRISM JAR 파일폐쇄망 환경
인터넷이 없는 환경에서는 Docker 이미지를 .tar 파일로 반입해야 합니다.
bash
# 인터넷이 가능한 환경에서 이미지 저장
docker save -o prism-images.tar <이미지 목록>
# 폐쇄망 서버에서 이미지 로드
docker load -i prism-images.tar핵심 서비스 배포
.env 파일 구성
~/prism/.env 파일을 생성하고 아래 내용을 작성합니다.
env
# ==================================================
# PRISM 온프레미스 환경 설정
# ==================================================
# --- 운영 모드 ---
PRISM_MODE=onpremise
# --- 데이터베이스 비밀번호 ---
# 초기 설치 시 반드시 변경하세요!
POSTGRES_PASSWORD=YourStrongPassword123!
MONGODB_PASSWORD=YourStrongPassword456!
REDIS_PASSWORD=YourStrongPassword789!
# --- 포트 설정 ---
# 기본 포트를 사용하지 않을 경우에만 변경
POSTGRES_PORT=5432
MONGODB_PORT=27017
REDIS_PORT=6379
PRISM_DATA_PORT=11052
PRISM_DASHBOARD_PORT=12062
PROMETHEUS_PORT=9090
WATCHER_PORT=11082
# --- Prometheus 연동 ---
# PRISM이 메트릭을 조회할 Prometheus 주소
PROMETHEUS_URL=http://prometheus:9090
# --- 로그 설정 ---
LOG_LEVEL=INFO
LOG_MAX_SIZE=50m
LOG_MAX_FILE=5비밀번호 관련 주의사항
- 비밀번호에 특수문자
#,$,!를 사용할 수 있으나,.env파일에서 따옴표로 감싸야 합니다.- 예:
POSTGRES_PASSWORD="MyP@ss#2026!"
- 예:
- 기본값 그대로 사용하지 마세요. 보안 감사 시 지적됩니다.
PRISM_MODE 설명
| 모드 | 설명 |
|---|---|
onpremise | Bridge 없이 로컬 Prometheus를 직접 조회하는 모드 |
bridge | SaaS 모드 (외부 Bridge에서 데이터를 수신하는 모드). 온프레미스에서는 사용하지 않습니다. |
docker-compose.yml 확인 사항
volumes에 monitoring-config.yml 마운트가 반드시 포함되어야 합니다.
yaml
services:
prism-data:
volumes:
- ./monitoring-config.yml:/app/monitoring-config.yml:ro # 필수!주의
이 마운트가 없으면 기본 57개 메트릭만 수집되어 IPMI/Slurm/GPU 에러 메트릭이 누락됩니다.
서비스 시작 전 체크리스트
- [ ]
.env파일이docker-compose.yml과 같은 디렉터리에 있는지 확인 - [ ] 비밀번호가 기본값에서 변경되었는지 확인
- [ ]
monitoring-config.yml파일이 존재하는지 확인
데이터베이스 초기화
PRISM 서비스가 최초 시작되면 데이터베이스가 자동으로 초기화됩니다.
자동 초기화 흐름
PRISM 서비스 최초 시작
|
+-- PostgreSQL
| +-- Flyway 자동 마이그레이션 실행
| +-- 스키마 생성 (organizations, servers, users, alerts 등)
| +-- 기본 관리자 계정 생성
|
+-- MongoDB
| +-- 컬렉션 자동 생성 (서비스 시작 시)
| +-- topology, fault-detection 관련 데이터 저장
|
+-- Redis
+-- TimeSeries 모듈 활성화 확인
+-- 별도 초기화 불필요 (서비스가 자동으로 키 생성)수동 확인 명령
각 DB에 정상 접속되는지 확인합니다.
bash
# PostgreSQL 접속 확인
docker compose exec postgres psql -U prism -d prismdb -c "SELECT version();"
# MongoDB 접속 확인
docker compose exec mongodb mongosh --eval "db.runCommand({ping:1})"
# Redis 접속 확인 (TimeSeries 모듈 포함 여부)
docker compose exec redis redis-cli MODULE LIST
# redistimeseries 모듈이 목록에 표시되어야 합니다.Flyway 마이그레이션
- PRISM은 Flyway를 사용하여 DB 스키마를 자동 관리합니다.
- 서비스 시작 시 V1 ~ V최신까지 순서대로 마이그레이션이 실행됩니다.
- 이미 적용된 버전은 건너뛰므로, 재시작해도 안전합니다.
Redis TimeSeries
- PRISM은 Redis TimeSeries 모듈을 사용하여 실시간 메트릭을 저장합니다.
docker-compose.yml의 Redis 이미지가 redistimeseries를 포함하는지 반드시 확인하세요.- 일반 Redis 이미지(
redis:7-alpine등)에는 TimeSeries 모듈이 없습니다.
서비스 시작
서비스 시작 명령
bash
# 1. PRISM 디렉터리로 이동
cd ~/prism
# 2. 전체 서비스 시작 (백그라운드)
docker compose up -d
# 3. 서비스 상태 확인
docker compose ps
# 모든 서비스가 "running" 또는 "healthy" 상태여야 합니다.
# 4. 실시간 로그 확인 (Ctrl+C로 종료)
docker compose logs -f
# 5. 특정 서비스 로그만 확인
docker compose logs -f prism-service
docker compose logs -f prism-data
docker compose logs -f prometheus서비스 시작 순서
Docker Compose가 의존성 순서에 따라 자동으로 시작합니다.
- 1단계: DB 서비스 (Redis, PostgreSQL, MongoDB)
- 2단계: prism-data (데이터 수집/저장 서비스)
- 3단계: Prometheus (메트릭 스크랩)
- 4단계: prism-service / Dashboard (웹 UI)
- 5단계: watcher (알림/감시)
전체 기동 시간: 약 30~60초 (서버 사양에 따라 상이)
정상 기동 확인
| 확인 항목 | 명령 / 방법 | 기대 결과 |
|---|---|---|
| 컨테이너 상태 | docker compose ps | 모든 서비스 Up/Healthy |
| Dashboard 접속 | 브라우저에서 http://<서버IP>:12062 | 로그인 페이지 표시 |
| prism-data API | curl http://localhost:11052/actuator/health | {"status":"UP"} |
| Prometheus | curl http://localhost:9090/-/healthy | Prometheus Server is Healthy |
서비스 관리
bash
# 전체 재시작
docker compose restart
# 특정 서비스만 재시작
docker compose restart prism-service
# 설정 변경 후 재시작
docker compose down && docker compose up -d주의
docker compose down -v를 실행하면 볼륨이 삭제되어 모든 데이터가 유실됩니다. -v 옵션 사용에 주의하세요.
로그 확인 팁
- 에러 필터링:
docker compose logs prism-service 2>&1 | grep ERROR - 최근 100줄:
docker compose logs --tail 100 prism-data - Docker 로그 로테이션이 자동 적용됩니다 (최대 50MB x 5파일)
Exporter 설치
모니터링 대상 노드에 Exporter를 설치합니다. Node Exporter는 모든 노드에 필수이며, 나머지는 환경에 따라 선택 설치합니다.
설치 범위 요약
| Exporter | 설치 대상 | 필수/선택 | 설치 조건 |
|---|---|---|---|
| Node Exporter | 모든 노드 | 필수 | 없음 |
| DCGM Exporter | GPU 노드 | 선택 | nvidia-smi 실행 가능 |
| IPMI Exporter | 서버 노드 | 선택 | ipmitool 설치 + BMC 지원 |
| Slurm Exporter | Slurm 마스터 | 선택 | squeue/sinfo 실행 가능 |
| Lustre Exporter | 스토리지 노드 | 선택 | Lustre 마운트 |
1. Node Exporter (필수 -- 모든 노드)
bash
# 다운로드 및 설치
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
tar xzf node_exporter-1.8.2.linux-amd64.tar.gz
sudo cp node_exporter-1.8.2.linux-amd64/node_exporter /usr/local/bin/
# systemd 서비스 등록
sudo tee /etc/systemd/system/node_exporter.service << 'EOF'
[Unit]
Description=Node Exporter
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter
Restart=always
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now node_exporter
# 확인
curl http://localhost:9100/metrics | head2. DCGM Exporter (선택 -- NVIDIA GPU 노드)
bash
# nvidia-smi 확인 (GPU 없으면 설치 불필요)
nvidia-smi
# Docker로 실행 (--gpus all 필수)
docker run -d --gpus all --restart always \
-p 9400:9400 \
--name dcgm-exporter \
nvcr.io/nvidia/k8s/dcgm-exporter:3.3.8-3.6.0-ubuntu22.04팁
DCGM Exporter는 Docker로 실행되므로 GPU 노드에도 Docker 설치가 필요합니다. NVIDIA Container Toolkit이 사전 설치되어 있어야 합니다.
3. IPMI Exporter (선택 -- BMC 지원 서버)
bash
# ipmitool 사전 설치 필요
sudo apt install -y ipmitool # Ubuntu
sudo yum install -y ipmitool # CentOS/RHEL
# Go 바이너리 설치
wget https://github.com/prometheus-community/ipmi_exporter/releases/download/v1.8.0/ipmi_exporter-1.8.0.linux-amd64.tar.gz
tar xzf ipmi_exporter-1.8.0.linux-amd64.tar.gz
sudo cp ipmi_exporter-1.8.0.linux-amd64/ipmi_exporter /usr/local/bin/
# 서비스 등록 및 시작 (systemd)
sudo systemctl enable --now ipmi_exporter4. Slurm Exporter (선택 -- Slurm 마스터 노드)
Slurm 클러스터의 마스터 노드에서만 설치합니다. squeue, sinfo 명령이 실행 가능해야 합니다.
5. Lustre Exporter (선택 -- Lustre 클라이언트 마운트 노드)
Lustre 파일시스템이 마운트된 노드에서만 설치합니다. /proc/fs/lustre/ 경로가 존재해야 합니다.
설치 후 확인
각 Exporter 설치 후 반드시 포트가 열려 있는지 확인하세요.
bash
curl http://<노드IP>:<포트>/metricsNode Exporter는 PRISM이 서버의 온/오프라인 상태를 판단하는 기준 메트릭(up)을 제공하므로 반드시 모든 모니터링 대상 노드에 설치해야 합니다.
Prometheus 설정
prometheus.yml 구성
~/prism/config/prometheus.yml 파일을 아래와 같이 구성합니다.
yaml
global:
scrape_interval: 15s # 기본 스크랩 주기
evaluation_interval: 15s # 규칙 평가 주기
scrape_configs:
# PRISM 동적 타겟 디스커버리
- job_name: 'prism-targets'
http_sd_configs:
- url: 'http://prism-data:11052/api/prometheus/targets'
refresh_interval: 30s # 타겟 목록 갱신 주기
# Prometheus 자체 모니터링 (선택)
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']http_sd_configs 동작 원리
- PRISM Data Service가 DB에 등록된 서버 목록을 기반으로 Prometheus 타겟 JSON을 동적 생성합니다.
- Prometheus는 30초마다 이 엔드포인트를 호출하여 타겟 목록을 갱신합니다.
- 새 서버(Exporter)가 등록되면 자동으로 스크랩 대상에 추가됩니다. 수동 설정 변경이 불필요합니다.
타겟 확인 방법
브라우저에서 http://<서버IP>:9090/targets에 접속하여 모든 Exporter가 "UP" 상태로 표시되는지 확인합니다.
API 응답 형식 예시:
json
[
{
"targets": ["192.168.0.22:9100"],
"labels": {
"job": "node-exporter",
"__meta_hostname": "node1"
}
}
]Prometheus 설정 변경 시
prometheus.yml을 수정한 뒤에는 Prometheus를 재시작하거나 reload해야 반영됩니다.
bash
docker compose restart prometheus
# 또는
curl -X POST http://localhost:9090/-/reloadprism-data 서비스가 정상 기동되어 있어야 타겟 목록을 받아올 수 있습니다.
monitoring-config.yml
파일 역할
monitoring-config.yml은 PRISM이 Prometheus에서 수집할 메트릭 목록과 PromQL 쿼리를 정의하는 핵심 설정 파일입니다. 이 파일이 없으면 Java 하드코딩된 기본 57개 메트릭만 수집되어, IPMI/Slurm/GPU 에러 메트릭이 누락됩니다.
파일 구조 예시
yaml
metrics:
- name: cpu_usage_percent
query: "100 - (avg by(instance)(rate(node_cpu_seconds_total{mode='idle',instance='%s'}[5m])) * 100)"
- name: memory_usage_percent
query: "(1 - node_memory_MemAvailable_bytes{instance='%s'} / node_memory_MemTotal_bytes{instance='%s'}) * 100"
- name: ipmi_temperature_celsius
query: "ipmi_temperature_celsius{instance='%s'}"
- name: slurm_cpus_total
query: "slurm_cpus_total"
# ... 총 117개 메트릭 정의메트릭 분류 요약
| 카테고리 | 메트릭 수 | 주요 항목 |
|---|---|---|
| 시스템 (Node) | 약 20개 | CPU, 메모리, 디스크, 네트워크 |
| GPU (DCGM) | 9개 | 온도, 사용률, 메모리, XID 에러 |
| IPMI | 18개 | 온도, 팬속도, 전력, 전압, 전류 |
| Slurm | 42개 | 노드/CPU/GPU 할당, 잡 상태, 파티션 |
| Lustre | 31개 | 읽기/쓰기 I/O, OST 상태 |
마운트 설정 (필수)
yaml
# docker-compose.yml 내 prism-data 서비스
services:
prism-data:
volumes:
- ./monitoring-config.yml:/app/monitoring-config.yml:ro # 필수!메트릭 추가/수정 방법
- 방법 1:
monitoring-config.yml직접 편집 후 컨테이너 재시작 - 방법 2: API 호출 --
PUT /api/v1/metrics/list(런타임 갱신, 재시작 불필요)
주의
%s자리에는 대상 서버의 IP가 자동 바인딩됩니다. 직접 IP를 입력하지 마세요.- 신규 Exporter 메트릭을 추가할 때는 해당 Exporter가 실제로 해당 메트릭을 노출하는지 먼저 확인하세요.
bash
curl http://<노드IP>:<포트>/metrics | grep "메트릭이름"검증 체크리스트
설치 검증 항목
| # | 검증 항목 | 확인 방법 | 기대 결과 |
|---|---|---|---|
| 1 | Docker 실행 중 | docker compose ps | 모든 컨테이너 "running" 또는 "healthy" |
| 2 | DB 접근 가능 | docker compose exec postgres psql -U prism -c "SELECT 1" | 쿼리 정상 반환 |
| 3 | Redis TimeSeries | docker compose exec redis redis-cli MODULE LIST | redistimeseries 모듈 표시 |
| 4 | Exporter UP | curl http://<노드IP>:9100/metrics | 메트릭 텍스트 출력 |
| 5 | Prometheus 타겟 | 브라우저 http://<서버IP>:9090/targets | 모든 타겟 "UP" |
| 6 | Dashboard 로그인 | 브라우저 http://<서버IP>:12062 | 로그인 페이지 → 로그인 성공 |
| 7 | 서버 표시 | 대시보드 메인 화면 | 등록된 서버 카드 표시 |
| 8 | 메트릭 수신 | 서버 카드 클릭 → 상세 | CPU/메모리 그래프 데이터 표시 |
| 9 | 알림 설정 | 관리자 → 알림 메뉴 | 알림 규칙 목록 확인 |
빠른 종합 검증 스크립트
bash
#!/bin/bash
echo "=== PRISM 설치 검증 ==="
echo "[1] Docker 컨테이너 상태"
docker compose ps --format "table {{.Name}}\t{{.Status}}"
echo "[2] Dashboard 접근"
curl -s -o /dev/null -w "HTTP %{http_code}" http://localhost:12062/login
echo "[3] Prometheus 상태"
curl -s http://localhost:9090/-/healthy
echo "[4] prism-data 상태"
curl -s http://localhost:11052/actuator/health
echo "=== 검증 완료 ==="팁
- 모든 항목이 통과하면 PRISM 온프레미스 설치가 정상 완료된 것입니다.
- 하나라도 실패하면 트러블슈팅 섹션을 참조하세요.
- 서버 카드가 보이지 않을 경우, Exporter 설치 후 약 1~2분 대기가 필요합니다.
트러블슈팅
일반 문제
| # | 증상 | 원인 | 해결 방법 |
|---|---|---|---|
| 1 | DB 연결 실패 | .env 비밀번호 불일치, 컨테이너 미기동 | .env 비밀번호 확인, docker compose up -d postgres mongodb 재시작 |
| 2 | Exporter DOWN (타겟 빨간색) | Exporter 미설치, 방화벽 차단, 서비스 중지 | 대상 노드에서 systemctl status node_exporter, 방화벽 sudo ufw allow 9100/tcp |
| 3 | 메트릭 없음 (데이터 미표시) | monitoring-config.yml 미마운트, prism-data 미기동 | docker compose logs prism-data로 확인, volume mount 점검 |
| 4 | Dashboard 502 Bad Gateway | prism-service 기동 중 또는 크래시 | docker compose logs prism-service 확인, 시작까지 30초 대기 |
| 5 | 로그인 실패 | 초기 계정 설정 오류 | docker compose exec postgres psql -U prism -d prismdb -c "SELECT username FROM users LIMIT 5;" |
| 6 | Prometheus 타겟 없음 | prism-data 미기동, http_sd_configs URL 오류 | URL이 http://prism-data:11052/api/prometheus/targets인지 확인 |
| 7 | 높은 메모리 사용 (OOM Kill) | Redis 데이터 과다, Docker 메모리 제한 | docker stats로 확인, Redis maxmemory 설정 |
| 8 | 디스크 풀 | Docker 로그 누적, DB 데이터 증가 | docker system prune, 로그 로테이션 확인 |
| 9 | IPMI/Slurm 메트릭만 없음 | monitoring-config.yml에 해당 메트릭 미정의 | config 파일에 메트릭 포함 여부 확인, volume mount 점검 |
| 10 | GPU 메트릭 없음 | DCGM Exporter 미설치, nvidia-smi 오류 | 대상 노드에서 nvidia-smi 확인, docker logs dcgm-exporter |
공통 디버깅 명령
bash
# 전체 컨테이너 상태 + 리소스 사용량
docker compose ps && docker stats --no-stream
# 특정 서비스 재시작
docker compose restart <서비스명>
# 전체 로그 에러만 필터
docker compose logs 2>&1 | grep -i error | tail -20기술 지원 문의
위 항목으로 해결되지 않는 경우 support@giga-flops.com으로 지원을 요청하세요. 문의 시 다음 정보를 함께 보내주시면 빠른 지원이 가능합니다.
docker compose ps결과docker compose logs --tail 200 > prism-logs.txt파일- 서버 OS 및 Docker 버전 정보
