Administrator Guide
What are you looking for?
| Goal | Where to read |
|---|---|
| Startup, shutdown, and restart | Startup and Shutdown |
| Viewing status and monitoring | Monitoring |
| Backing up and recovery practice | Backup and Recovery |
| Changing passwords and API keys | Credential Rotation |
| User and permission management | User Management |
| Security inspection | Security |
| System slowdowns | Performance Tuning |
| Virtual tag calculation failure | Virtual Tag Operation |
| Data accumulation and deletion timing | Data Retention Policy |
| Firewall port configuration | Ports |
| OEE, RAM, and EMS calculations | OEE · RAM · EMS FAQ |
| Finding configuration values | Properties Reference |
| Viewing tables and schemas | Database Model |
| Redundancy configuration | HA |
| Upgrade procedures | Upgrade |
| Upgrade notes and integration fixes | Upgrade Notes |
| Module breakdown | Module Details · Module Map below |
Module Map
The PlantPulse Platform consists of several independent modules. Modules and containers are not mapped 1:1 — the six application modules each have their own container, while the data lake series runs together within a single plantpulse-datalake container.
The data lake series is grouped in a separate top-level section Data Lake — including paths, configuration files, password changes, management console, pd CLI, operation, components (storage, messaging, analytics, timeseries, cep, workflow, data-gateway), and FAQ.
Module Classification
Module Categories
| Category | Module | Description |
|---|---|---|
| Application | server | Web console, IIoT engine, REST API |
| batch | Scheduled batch processing | |
| data-gateway | REST-based data gateway | |
| datalake-admin-api | Management console backend + Health API (4950 / 4949) | |
| warehouse | Iceberg-based data warehouse | |
| Processing | cep | Complex Event Processing (Aster CEP) |
| plugin | OPC-UA / AAS industrial standard plugins | |
| timeseries | Time series engine + Visualization UI | |
| Messaging | messaging | Kafka + MQTT(HiveMQ). STOMP(ActiveMQ) is deprecated |
| Storage | storage | Aster TSDB + PostgreSQL + Valkey + RustFS |
| Analytics | analytics | Spark + Hive + Kyuubi + Gravitino + Hadoop |
| Workflow | workflow | Temporal + Kestra |
| Data Lake Operation | pd CLI | Single entry point for startup/shutdown/restart, configuration, and node management |
| Data Lake Operation | Management Console | Browser-based operation console (4950 / 4949) |
| utilities | setup, backup, recovery, exporter, migrator, mirror-maker, simulator, api, lab |
Common Module Structure
Each service module follows a common directory structure and operation interface.
plantpulse-<module>/
├── app/ # 애플리케이션 WAR / JAR
├── bin/
│ ├── start.sh # 포그라운드 시작
│ ├── stop.sh # 정지
│ └── log-viewer.sh # 실시간 로그 (tail -F)
├── server/ 또는 lib/ # 내장 Tomcat 서버 또는 JAR
├── logs/ # system.log (메인 로그)
└── conf/ 또는 config/ # 설정 파일
Common Operation Commands
From the host — Manages the entire stack (/opt/kopens/plantpulse-platform-docker/bin/).
| Task | Command | Notes |
|---|---|---|
| Start All | up.sh | Wait until ready. 0 = Ready |
| Stop All | down.sh | Reverse order of dependency, preserves state |
| Restart All | restart.sh | drain → stop → start → wait for ready |
| Restart App | docker compose -f compose/docker-compose.yml restart <서비스> | Each app is in its own container |
| Status Check | status.sh | 0 = Normal / 2 = Abnormal |
| Integrated Logs | logs.sh | All containers if no argument. Use -f to follow |
Inside the Data Lake container — Manages infrastructure components individually (Enter via ./shell.sh).
| Task | Command |
|---|---|
| Service Status | ./pd status [서비스] |
| Service Restart | ./pd restart <서비스> |
| Render Config | ./pd config render |
| Aster TSDB Node | ./pd node status · ./pd node repair … |
| Diagnostics | ./pd doctor |
Module Dependencies
PlantPulse starts in stages according to dependency order. This relationship must be understood when performing module-level restarts.
Restart Warning: Restarting infrastructure modules (storage / messaging / analytics) requires restarting all dependent applications. The safest method is to restart the entire stack from the host using
bin/restart.sh.
Port Mapping Summary
| Area | Port | Module |
|---|---|---|
| External | 80 / 443 | server (HTTP / HTTPS) |
| External | 4950 | monitor (Health Check, HTTPS) |
| Messaging | 9092 / 9093 / 9094 | messaging (Kafka) |
| Messaging | 1883 / 1884 | messaging (MQTT) |
| Storage | 9042 | storage (Aster TSDB) |
| Storage | 5432 | storage (PostgreSQL) |
| Storage | 6379 | storage (Valkey) |
| Storage | 9000 / 9001 | storage (RustFS) |
| Analytics | 7077 / 4440 | analytics (Spark Master / UI) |
| Analytics | 10000 | analytics (Kyuubi) |
| Analytics | 19001 | analytics (Gravitino) |
| Analytics | 9083 | analytics (Hive Metastore) |
| Time Series | 7800 / 7801 | timeseries (Engine) |
| Time Series | 3000 | timeseries (UI) |
| Workflow | 7233 / 8233 | workflow (Temporal) |
| Workflow | 8380 | workflow (Kestra) |
| Processing | 7400 / 7401 | cep |
| Processing | 5500 | data-gateway |
| Processing | 11004 / 11005 | plugin (OPC-UA) |
| Processing | 8007 / 8090 | plugin (AAS V2 / V3) |
| Application | 9500 | batch |
| Application | 9600 | warehouse |
| Application | 4000 | sql |
For full port details, please refer to the Port Configuration Information page.
Technical Support
For operational inquiries by module, please contact webmaster@kopens.com.