모듈별 상세 매뉴얼
PlantPulse 플랫폼은 여러 독립 모듈로 구성됩니다. 모듈과 컨테이너는 1:1 이 아닙니다 — 애플리케이션 여섯은 각자 컨테이너를 갖고, 데이터레이크 계열은 plantpulse-datalake 컨테이너 하나 안에서 함께 돕니다.
데이터레이크 계열은 별도의 최상위 섹션 데이터레이크 에 모여 있습니다 — 경로 · 설정 파일 · 비밀번호 변경 · 관리 콘솔 · pd CLI · 운영 · 컴포넌트(storage · messaging · analytics · timeseries · cep · workflow · data-gateway) · FAQ.
모듈 분류
모듈 카테고리
| 카테고리 | 모듈 | 설명 |
|---|---|---|
| 애플리케이션 | server | 웹 콘솔, IIoT 엔진, REST API |
| batch | 스케줄 배치 처리 | |
| data-gateway | REST 기반 데이터 게이트웨이 | |
| sql | 폐기 (2026-09-07) — SQL 콘솔은 data-gateway 로 합쳐졌습니다 | |
| datalake-admin-api | 관리 콘솔 백엔드 + 헬스 API (4950 / 4949) | |
| warehouse | Iceberg 기반 데이터 웨어하우스 | |
| 처리 | cep | 복합 이벤트 처리 (Esper) |
| plugin | OPC-UA / AAS 산업 표준 플러그인 | |
| timeseries | 시계열 엔진 + 시각화 UI | |
| 메시징 | messaging | Kafka + MQTT(HiveMQ). STOMP(ActiveMQ)는 은퇴했습니다 |
| 스토리지 | storage | Cassandra + PostgreSQL + Valkey + MinIO |
| 분석 | analytics | Spark + Hive + Kyuubi + Gravitino + Hadoop |
| 워크플로우 | workflow | Temporal + Kestra |
| 데이터레이크 운영 | pd CLI | 기동/정지/재시작·설정·노드 관리 단일 진입점 |
| 데이터레이크 운영 | 관리 콘솔 | 브라우저 운영 콘솔 (4950 / 4949) |
| utilities | setup, backup, recovery, exporter, migrator, mirror-maker, simulator, api, lab |
모듈 공통 구조
각 서비스 모듈은 공통 디렉토리 구조와 운영 인터페이스를 따릅니다.
plantpulse-<모듈>/
├── app/ # 애플리케이션 WAR / JAR
├── bin/
│ ├── start.sh # 포그라운드 시작
│ ├── stop.sh # 정지
│ └── log-viewer.sh # 실시간 로그 (tail -F)
├── server/ 또는 lib/ # 내장 Tomcat 서버 또는 JAR
├── logs/ # system.log (메인 로그)
└── conf/ 또는 config/ # 설정 파일
공통 운영 명령
호스트에서 — 스택 전체를 다룹니다 (/opt/kopens/plantpulse-platform-docker/bin/).
| 작업 | 명령 | 비고 |
|---|---|---|
| 전체 시작 | up.sh | 준비될 때까지 대기. 0 = 쓸 수 있다 |
| 전체 정지 | down.sh | 의존 순서의 역순, 상태 보존 |
| 전체 재시작 | restart.sh | drain → 정지 → 기동 → 준비 대기 |
| 앱 하나 재시작 | docker compose -f compose/docker-compose.yml restart <서비스> | 앱은 각자 컨테이너 |
| 상태 점검 | status.sh | 0 = 정상 / 2 = 비정상 |
| 통합 로그 | logs.sh | 인자 없으면 전 컨테이너. -f 로 따라가기 |
데이터레이크 컨테이너 안에서 — 인프라 컴포넌트를 개별로 다룹니다 (./shell.sh 로 진입).
| 작업 | 명령 |
|---|---|
| 서비스 상태 | ./pd status [서비스] |
| 서비스 재시작 | ./pd restart <서비스> |
| 설정 렌더 | ./pd config render |
| Cassandra 노드 | ./pd node status · ./pd node repair … |
| 진단 | ./pd doctor |
모듈 의존성
PlantPulse 는 의존성 순서에 따라 단계별로 기동됩니다. 모듈 단위 재시작 시 의존 관계를 알고 있어야 합니다.
재시작 시 주의: 인프라 모듈(storage / messaging / analytics)을 재시작하면 의존하는 모든 애플리케이션도 함께 재시작해야 합니다. 호스트에서
bin/restart.sh로 스택 전체를 재시작하는 것이 가장 안전합니다.
포트 매핑 요약
| 영역 | 포트 | 모듈 |
|---|---|---|
| 외부 노출 | 80 / 443 | server (HTTP / HTTPS) |
| 외부 노출 | 7443 | server (관리 콘솔 HTTPS) |
| 외부 노출 | 4950 | monitor (헬스 체크, HTTPS) |
| 메시징 | 9092 / 9093 / 9094 | messaging (Kafka) |
| 메시징 | 1883 / 1884 | messaging (MQTT) |
| 스토리지 | 9042 | storage (Cassandra) |
| 스토리지 | 5432 | storage (PostgreSQL) |
| 스토리지 | 6379 | storage (Valkey) |
| 스토리지 | 9000 / 9001 | storage (MinIO) |
| 분석 | 7077 / 4440 | analytics (Spark Master / UI) |
| 분석 | 10000 | analytics (Kyuubi) |
| 분석 | 19001 | analytics (Gravitino) |
| 분석 | 9083 | analytics (Hive Metastore) |
| 시계열 | 7800 / 7801 | timeseries (Engine) |
| 시계열 | 3000 | timeseries (UI) |
| 워크플로우 | 7233 / 8233 | workflow (Temporal) |
| 워크플로우 | 8380 | workflow (Kestra) |
| 처리 | 7400 / 7401 | cep |
| 처리 | 5500 | data-gateway |
| 처리 | 11004 / 11005 | plugin (OPC-UA) |
| 처리 | 8007 / 8090 | plugin (AAS V2 / V3) |
| 애플리케이션 | 9500 | batch |
| 애플리케이션 | 9600 | warehouse |
| 애플리케이션 | 4000 | sql |
전체 포트는 포트 구성 정보 페이지를 참고해 주세요.
기술 지원
모듈별 운영 문의는 webmaster@kopens.com 으로 연락해 주세요.