Binärinstallation
Das aktuelle Auslieferungspaket ist ein einziger Docker Compose Stack — bestehend aus einem einmaligen Zertifikatslauf, einem Data Lake, sechs Apps und einem Proxy (Aufbau der Installation).
Diese Seite ist für Anwender erhalten, die ein bestehendes, per Binärinstallation aufgebautes System weiter betreiben. Für Neuaufbauten verwenden Sie bitte die One-Line-Installation oder die Docker-Installation.
Zudem wurde der folgende Inhalt vor der Umstellung auf Container verfasst, sodass er an manchen Stellen vom aktuellen Produktstand abweichen kann. Bei Problemen in der Binärumgebung wenden Sie sich bitte an webmaster@kopens.com.
Überblick
Diese Seite beschreibt das Verfahren zur Binär- (native) Installation der PlantPulse Platform direkt auf dem Betriebssystem. Nach dem Entpacken des tar.gz-Pakets werden mit einem einzigen Setup-Skript sämtliche OS-Abhängigkeiten, die Infrastruktur und die Anwendungen konfiguriert.
Für eine Installation mit Trennung von Data Lake und Anwendung auf 2 Knoten (
PP_TIER) siehe 2-Knoten-Split-Installation. Dieses Dokument bezieht sich auf die Binärinstallation als Single-Box (FULL).
Vergleich der Installationsarten
| Punkt | Binärinstallation | One-Line- / Docker-Installation |
|---|---|---|
| Installationsdauer | 20–40 Minuten | 10–20 Minuten |
| Umgebungsabhängigkeit | Pakete werden auf dem Host-OS installiert | Alles im Container enthalten |
| Ressourcenisolierung | Gemeinsam mit dem Host | Isoliert im Container |
| Update | tar.gz neu ausrollen + configure | update.sh eine Zeile |
| Rollback | Manuelle Wiederherstellung aus Backup | Automatisches Rollback auf vorheriges Image |
| Air-Gap-Netzwerk | Unterstützt setup-offline.sh | Unterstützt airgap-load.sh |
| Host-OS | Direkt betroffen | Kaum betroffen |
Unterstützte Umgebungen
| OS | Version | Verifiziert |
|---|---|---|
| Oracle Linux | 8.x, 9.x | ✓ |
| RHEL / Rocky Linux | 8.x, 9.x | ✓ |
| Amazon Linux | 2, 2023 | ✓ |
| Ubuntu | 22.04+ | ✓ |
Empfohlene Hardware-Spezifikationen
| Kategorie | Minimum | Standard | Großanlage |
|---|---|---|---|
| CPU | 16 vCPU | 32 vCPU | 48+ vCPU |
| Arbeitsspeicher | 64GB | 128GB | 200GB+ |
| Datenfestplatte | 200GB | 1TB | 4TB+ |
| Festplatten-IOPS | NVMe SSD empfohlen | NVMe SSD | NVMe SSD |
| Netzwerk | 1Gbps | 10Gbps | 10Gbps |
Verifizierte Umgebung (Referenz): Die betrieblich verifizierte Umgebung läuft mit 48 vCPU / 188GB RAM / 4,8TB NVMe SSD, RHEL 9 / Temurin OpenJDK 21 LTS.
Übersicht des Installationsverfahrens
1. Vorbereitung
1.1 root-Berechtigung sicherstellen
Die Installation erfolgt mit root Berechtigung. Für den Betrieb mit einem Nicht-root-Benutzer ist nach Abschluss der Installation ein separates Verfahren zur Rechtentrennung erforderlich (bitte an das Betriebsteam wenden).
sudo -i
1.2 Datenfestplatte einbinden
Für große Mengen von Zeitreihen-Daten binden Sie bitte eine separate Festplatte unter /data1 ein.
# 사용 가능한 디스크 확인
lsblk
# 예: /dev/sdb 를 ext4 로 포맷 후 /data1 에 마운트
mkfs.ext4 /dev/sdb
mkdir -p /data1
mount /dev/sdb /data1
# 부팅 시 자동 마운트
echo "/dev/sdb /data1 ext4 defaults 0 0" >> /etc/fstab
Empfehlung zur Festplattentrennung: Wenn OS-Festplatte und Datenfestplatte getrennt werden, sind Backup, Erweiterung und Fehlerisolierung einfacher. Auch bei kleinen Umgebungen empfiehlt sich möglichst eine Konfiguration mit separater Festplatte / separatem LV.
1.3 Zeitsynchronisation
Verteilte Komponenten (Cassandra, Kafka usw.) sind empfindlich gegenüber der Zeitgenauigkeit zwischen den Knoten. NTP-Synchronisation ist verpflichtend.
# RHEL 계열
dnf install -y chrony
systemctl enable --now chronyd
chronyc tracking
1.4 SELinux / Firewall
setup.sh schaltet SELinux automatisch auf permissive und öffnet die erforderlichen Firewall-Ports. Für unternehmens- bzw. cloudseitige übergeordnete Firewalls fügen Sie bitte separat Freigaberegeln gemäß der Seite Portkonfiguration hinzu.
2. Paket herunterladen und entpacken
Platzieren Sie das vom KOPENS-Betriebsteam bereitgestellte plantpulse-platform-YYYY.MM.tgz-Paket unter /opt/kopens/.
mkdir -p /opt/kopens
cd /opt/kopens
# scp 또는 USB / 내부 미러로 패키지 이전
# 예시: scp 로 받은 파일을 풀기
tar -xzvf plantpulse-platform-2026.05.tgz
# 결과 디렉토리 확인
ls /opt/kopens/plantpulse-platform/
Nach dem Entpacken entsteht folgende Struktur.
/opt/kopens/plantpulse-platform/
├── plantpulse-startup/ # 모든 운영 스크립트 + startup.jar
│ ├── env.sh # 전역 환경 변수 (★ 검토 필요)
│ ├── start.sh / stop.sh # 시작 / 정지
│ ├── start-daemon.sh # 데몬 모드 시작
│ ├── restart.sh # stop → clean → start-daemon
│ ├── status.sh # 포트 기반 상태 점검
│ ├── configure.sh # 템플릿 → 실제 설정 생성
│ ├── prepare-ssl.sh # TLS 인증서 생성
│ ├── restart-*.sh # 모듈별 재시작
│ ├── node-*.sh # Cassandra 운영
│ ├── log-viewer.sh # 통합 로그 뷰어
│ └── ...
├── plantpulse-server/ # 웹 콘솔 (Tomcat 기반)
├── plantpulse-batch/ # 배치 처리
├── plantpulse-cep/ # 복합 이벤트 처리
├── plantpulse-data-gateway/ # 데이터 게이트웨이
├── plantpulse-sql/ # SQL 쿼리 서비스
├── plantpulse-monitor/ # 모니터링
├── plantpulse-warehouse/ # 데이터 웨어하우스
├── plantpulse-plugin/ # OPC-UA / AAS 산업 플러그인
├── plantpulse-storage/ # Cassandra / PostgreSQL / Valkey / MinIO
├── plantpulse-messaging/ # Kafka / MQTT(HiveMQ) / STOMP(ActiveMQ)
├── plantpulse-analytics/ # Spark / Hive / Kyuubi / Gravitino / Hadoop
├── plantpulse-workflow/ # Temporal / Kestra
├── plantpulse-timeseries/ # 시계열 엔진 + UI
├── tools/ # OS 의존성 / JDK / DB 클라이언트 / 설정 템플릿
│ ├── setup.sh # 온라인 셋업
│ ├── setup-offline.sh # 폐쇄망 셋업
│ ├── java/ # OpenJDK
│ ├── postgresql/ # psql 클라이언트
│ ├── valkey/ # redis-cli
│ ├── cron/ firewall/ ssl/ swap/ ntp/ ...
│ └── ...
├── offline/ # 폐쇄망 설치 리소스 (RPM 리포 + wheels)
└── backup/ # 자체 백업 디렉토리
3. Setup-Skript ausführen
tools/setup.sh erledigt in einem Durchgang die Installation der OS-Pakete, die JDK-Installation, die Erstellung der Datenverzeichnisse sowie Firewall / SELinux / NTP / limits / sysctl.
cd /opt/kopens/plantpulse-platform/tools
./setup.sh
Interaktive Eingaben beim Setup
setup.sh fragt nach folgenden Angaben.
| Punkt | Beschreibung | Beispiel |
|---|---|---|
| Knotenmodus | MASTER (Single/Cluster-Master) oder WORKER | MASTER |
| HOST IP | Interne IP des Servers | 192.168.0.41 |
| SERVICE IP | IP oder Domain für externen Zugriff | 192.168.0.41 |
| MASTER IP (nur WORKER) | IP des Master-Knotens | 192.168.0.41 |
| Name der Datenfestplatte | Gemäß Ausgabe von lsblk | sdb |
| Datenwurzelpfad | Verzeichnis zur Datenspeicherung | /data1 |
Vom Setup automatisch durchgeführte Aufgaben
Ausführungsdauer: Beim ersten Durchlauf dauert es ca. 15–30 Minuten (inklusive OS-Update + Paketinstallation + Installation der Infrastrukturkomponenten).
4. Umgebungsvariablen konfigurieren (Überschreiben via env.local.sh)
/opt/kopens/plantpulse-platform/plantpulse-startup/env.sh ist die einzige zentrale Konfigurationsquelle (Referenz der Standardwerte) für die gesamte Plattform. Die Vorlagen-Konfigurationsdateien aller Module werden anhand dieser Werte erzeugt.
Die vollständige Liste der
PP_*-Variablen (Standardwerte und Beschreibungen) ist kategorisiert in der Referenz der Umgebungsvariablen aufgeführt.
⚠️ Ändern Sie
env.shnicht direkt. Serverspezifische Werte (maschinenspezifische Werte wie IP, Ressourcen, Passwörter) werden in der im gleichen Verzeichnis liegendenenv.local.sheingetragen. Bei der Binärinstallation ist dies das vorgesehene Verfahren.
Punkt Docker-Installation Binärinstallation (diese Seite) Konfigurationsdatei Umgebungsvariable DOCKER_PP_*inbin/env.shdirekt bearbeitenÜberschreibung in plantpulse-startup/env.local.sheintragenErhalt des Originals — Da das Original von env.shunverändert bleibt, ist es bei Updates sicher
Warum env.local.sh?
env.sh liest ganz oben zuerst env.local.sh ein. Da alle Variablen in env.sh die Form ${PP_XXX:-기본값} haben, gewinnt ein in env.local.sh deklarierter Wert export PP_XXX=... stets gegenüber dem Standardwert.
env.local.shist nicht in git enthalten und wird auch bei Plattform-Updates (erneutes Ausrollen des tar.gz) nicht überschrieben. → Einmal geschrieben, bleibt die Konfiguration auch nach dem Update erhalten.- Umgekehrt: Wenn
env.shdirekt geändert wird, wird sie beim Update durch ein neuesenv.shersetzt, und die Änderungen gehen verloren.
env.local.sh erstellen
Falls die Datei nicht existiert, kann sie neu angelegt werden. Schreiben Sie nur die zu ändernden Variablen im Format export.
cd /opt/kopens/plantpulse-platform/plantpulse-startup
vi env.local.sh
#!/bin/bash
# env.local.sh — 이 서버 전용 오버라이드 (env.sh 가 먼저 source 하여 우선 적용)
# 여기에 적은 값만 기본값을 덮어씁니다. 적지 않은 변수는 env.sh 기본값을 그대로 사용합니다.
export PP_HOST_IP="192.168.0.41" # 서버 내부 IP (hostname -I)
export PP_SERVICE_IP="192.168.0.41" # 브라우저 접속 IP/도메인 (단일 서버면 HOST_IP 와 동일)
export PP_MASTER_IP="192.168.0.41" # 마스터 IP (단일 서버면 HOST_IP 와 동일)
export PP_DATA_DISK_NAME="sdb" # 데이터 디스크 이름 (lsblk)
export PP_DATA_DIR="/data1/pp-data" # 데이터 저장 경로
export PP_CLUSTER_CORES="30" # 분산 분석에 할당할 코어 (아래 4.1 사이징표 참고)
export PP_CLUSTER_MEMORY_BY_CORE="2G" # 코어당 메모리
Nach dem Speichern unbedingt
./configure.sherneut ausführen, damit die neuen Werte in die Konfiguration der einzelnen Module übernommen werden (Schritt 5). Bei jeder Änderung gehörenenv.local.shbearbeiten →./configure.shzusammen.
4.1 Unbedingt zu prüfende Schlüsselvariablen
| Kategorie | Variable | Beschreibung | Standardwert |
|---|---|---|---|
| Platform | PP_HOME | Installationspfad | /opt/kopens/plantpulse-platform |
PP_MODE | Knotenmodus | MASTER / WORKER | |
| Network | PP_HOST_IP | Interne IP des Servers | 192.168.0.41 |
PP_SERVICE_IP | Externe Zugriffs-IP | 192.168.0.41 | |
PP_MASTER_IP | Master-IP | 192.168.0.41 | |
PP_PUBLIC_IP | Öffentlich exponierte IP (NAT) | ${PP_HOST_IP} | |
| Data | PP_DATA_DIR | Pfad zur Datenspeicherung | /data1/pp-data |
PP_TEMP_DIR | Pfad für temporäre Dateien | /data1/pp-temp | |
PP_BACKUP_DIR | Backup-Pfad | /data1/pp-backup | |
| Resources | PP_CLUSTER_CORES | Für verteilte Analyse zuzuweisende Kerne | 30 |
PP_CLUSTER_MEMORY_BY_CORE | Speicher pro Kern | 2G | |
| Locale | PP_LANG | Locale (ko / en) | en |
PP_TZ | Zeitzone | Asia/Seoul |
Die obige Tabelle ist eine Referenz für Variablennamen und Standardwerte. Die tatsächlich zu ändernden Werte werden, wie zu Beginn von Schritt 4 beschrieben, in
env.local.shim Formatexporteingetragen (env.shdirekte Bearbeitung ✗). HOST IP / SERVICE IP / Festplattenname, die beim Setup in Schritt 3 eingegeben wurden, sind bereits übernommen; dieser Schritt dient dazu, diese Werte zu überprüfen und nur fehlende Angaben inenv.local.shzu ergänzen.
Wie ermittelt man die Werte? (verwirrende Punkte)
# IP 확인 (PP_HOST_IP / PP_SERVICE_IP)
hostname -I | awk '{print $1}' # 서버 내부 IP
ip -4 addr | grep inet # 외부 접속용 IP를 따로 골라야 할 때
# 데이터 디스크 / 코어 / 메모리
lsblk # 데이터 디스크명 (sdb, nvme0n1 …)
nproc # 전체 CPU 코어 수
free -g | awk '/^Mem:/{print $2"G"}' # 전체 메모리
PP_HOST_IP= interne IP, unter der der Server innerhalb desselben Netzwerks erreichbar ist. Bei einem Single-Server könnenPP_SERVICE_IPundPP_MASTER_IPdenselben Wert erhalten.PP_SERVICE_IP= IP/Domain, über die Benutzer per Browser zugreifen. Bei NAT/Cloud tragen Sie zusätzlich die öffentlich exponierte IP unterPP_PUBLIC_IPein.
Sizing der Ressourcen für verteilte Analyse (PP_CLUSTER_CORES / PP_CLUSTER_MEMORY_BY_CORE)
Diese beiden Werte sind die für verteilte Analysen (z. B. Spark) zugewiesenen Ressourcen. Weisen Sie nicht den gesamten Host zu, sondern reservieren Sie Anteile für Storage, Messaging und Webserver (empfohlen: 60–70 % der Gesamtkapazität).
| Serverspezifikation | PP_CLUSTER_CORES | PP_CLUSTER_MEMORY_BY_CORE | Gesamter für Analyse genutzter Speicher |
|---|---|---|---|
| 16 Kerne / 64GB | 10 | 2G | 20GB |
| 32 Kerne / 128GB | 20 | 3G | 60GB |
| 48 Kerne / 188GB | 30 | 4G | 120GB |
코어 수 × 코어당 메모리ist die Gesamtmenge des von der Analyse belegten Speichers. Stellen Sie sicher, dass diese Summe die Gesamtkapazität des Servers nicht übersteigt (mindestens 30 % Reserve). Wird sie überschritten, kommt es beim Start zu OOM.
4.2 Passwörter der Service-Konten
In der Produktionsumgebung müssen folgende Standardpasswörter unbedingt geändert werden.
# env.local.sh 안에 추가
export PP_REDIS_PASSWORD=$(openssl rand -base64 18)
export PP_CASSANDRA_PASSWORD=$(openssl rand -base64 18)
export PP_PG_PASSWORD=$(openssl rand -base64 18)
export PP_MQ_PASSWORD=$(openssl rand -base64 18)
export PP_HIVE_PASSWORD=$(openssl rand -base64 18)
export PP_MINIO_PASSWORD=$(openssl rand -base64 18)
export PP_TEMPORAL_PASSWORD=$(openssl rand -base64 18)
export PP_TLS_KEYSTORE_PASSWORD=$(openssl rand -base64 18)
Empfehlung: Speichern Sie geänderte Passwörter in einem betrieblichen Vault (HashiCorp Vault, AWS Secrets Manager usw.) und injizieren Sie sie über umgebungsspezifische Overrides in
env.local.sh.
4.3 TLS/SSL-Konfiguration
# env.local.sh 안에 추가
export PP_TLS_ENABLED=true
export PP_TLS_DOMAIN=plantpulse.io
export PP_TLS_SAN_DNS="localhost,$(hostname -f),plantpulse.io,plantpulse.kopens.com"
export PP_TLS_SAN_IPS="${PP_HOST_IP},${PP_SERVICE_IP},${PP_PUBLIC_IP},127.0.0.1,192.168.0.10"
export PP_TLS_VALID_DAYS=730
Externe Expositions-IPs hinzufügen: In NAT-/Cloud-Umgebungen müssen externe IP/Domain in
PP_TLS_SAN_DNS/PP_TLS_SAN_IPSangegeben werden, damit die Client-Zertifikatsprüfung erfolgreich verläuft.
4.4 Überprüfung und Zurücksetzen
cd /opt/kopens/plantpulse-platform/plantpulse-startup
./env-validate.sh # env.sh + env.local.sh 최종 변수 정합성 검증
./env-reset.sh # env.local.sh 변경 후 템플릿 재생성이 필요할 때
env-validate.shüberprüft die Endwerte, bei denen die Überschreibung vonenv.local.shangewendet wurde. Damit können Sie nach dem Erstellen vonenv.local.shmit diesem Skript prüfen, ob IP, Pfade und Passwörter wie beabsichtigt gesetzt wurden.
5. Anwendung der Vorlagenkonfiguration (configure.sh)
Die Endwerte aus env.sh (+ Überschreibung von env.local.sh) werden gesammelt auf die Konfigurationsdateien aller Module angewendet.
cd /opt/kopens/plantpulse-platform/plantpulse-startup
./configure.sh
configure.sh ruft intern startup.jar CONFIGURE auf und führt Folgendes aus:
- Alle Konfigurationsvorlagen (
*.template) im Verzeichnistemplate/scannen - Platzhalter (z. B.
${PP_HOST_IP},${PP_CASSANDRA_PASSWORD}) mit den Variablen ausenv.shersetzen - An der tatsächlichen Konfigurationsdatei-Position speichern — bei Webanwendungsdiensten (server / batch / cep / sql / data-gateway) jeweils in
config/des Moduls, bei Infrastrukturmodulen inconf/,etc/usw.
Da die Konfiguration der Webanwendungsdienste in das Modul config/ externalisiert ist, geht die Konfiguration auch bei einer erneuten Bereitstellung der Webanwendung (WAR) nicht verloren.
Erneutes Ausführen nach Änderung erforderlich: Bei jeder Änderung von
env.local.shmuss./configure.sherneut ausgeführt werden, damit die neuen Werte in die Module übernommen werden.
6. TLS-Zertifikate vorbereiten (prepare-ssl.sh)
Im Fall von PP_TLS_ENABLED=true werden die Zertifikate vor dem ersten Start erzeugt.
cd /opt/kopens/plantpulse-platform/plantpulse-startup
./prepare-ssl.sh
- Erzeugung selbstsignierter Zertifikate (ECDSA secp256r1)
- Erzeugung von Keystore / Truststore (
/var/security/plantpulse/) - Separate Erzeugung von Zertifikaten für OPC-UA / Kafka / MQTT / Cassandra / Web
- Für die Verwendung externer CA-Zertifikate siehe Seite Sicherheitskonfiguration
7. Plattform starten
7.1 Start im Vordergrund (erste Überprüfung)
Nach der Erstinstallation empfiehlt es sich, die Startprotokolle direkt zu beobachten.
/opt/kopens/plantpulse-platform/plantpulse-startup/start.sh
7.2 Start im Hintergrund (Betriebsmodus)
In der Produktionsumgebung erfolgt der Start im Daemon-Modus. Die Plattform läuft auch weiter, wenn das Terminal geschlossen wird.
/opt/kopens/plantpulse-platform/plantpulse-startup/start-daemon.sh
7.3 Startreihenfolge
startup.jar startet die Komponenten schrittweise gemäß der Abhängigkeitsreihenfolge.
Da automatisch bis zum Abschluss jeder Stufe gewartet wird, ist kein zusätzlicher Eingriff nötig. Der gesamte Startvorgang dauert 3–5 Minuten.
7.4 Normale Startmeldung
═══════════════════════════════════════════════════════════════════
____ _ _ ____ _
| _ \| | __ _ _ __ | |_| _ \ _ _| |___ ___
| |_) | |/ _` | '_ \| __| |_) | | | | / __|/ _ \
| __/| | (_| | | | | |_| __/| |_| | \__ \ __/
|_| |_|\__,_|_| |_|\__|_| \__,_|_|___/\___|
PLATFORM
═══════════════════════════════════════════════════════════════════
● Status STARTING [DAEMON]
● Host ...
● URLs https://... (web)
═══════════════════════════════════════════════════════════════════
...
플랜트펄스 플랫폼이 정상적으로 시작되었습니다.
8. Installation überprüfen
8.1 Servicestatus prüfen
/opt/kopens/plantpulse-platform/plantpulse-startup/status.sh
Jedes Modul wird mit dem Status RUNNING angezeigt, zusammen mit einer Zusammenfassung der Systemressourcennutzung (CPU / Memory PSS / Disk).
=============================================================================================================
PLANTPULSE PLATFORM - ALL SERVICE STATUS
=============================================================================================================
<SYSTEM RESOURCE OVERVIEW>
--------------------------------------------------------------------------------------------------------------
CPU LOAD (AVG) : 12.3% (48 cores)
MEMORY USAGE : 65.2% (123.1G / 188.7G)
DATA DISK USAGE : 45.8% (2.2T / 4.8T)
--------------------------------------------------------------------------------------------------------------
<SERVICE STATUS BY PORT>
SERVICE | PORT | STATUS | PID | CPU | MEMORY (PSS) | PROCESS
PP_MESSAGING[KAFKA] | 9092 | RUNNING | 12345 | 2.3% | 8.5G ( 4.51%) | java
PP_STORAGE[CASSANDRA] | 9042 | RUNNING | 12567 | 5.1% | 16.2G ( 8.59%) | java
PP_SERVER | 80 | RUNNING | 12890 | 1.2% | 4.8G ( 2.55%) | java
...
8.2 Zugriff auf die Webkonsole
Rufen Sie im Browser folgende Adresse auf.
| URL | Zweck |
|---|---|
http://[SERVICE_IP]/ | Betriebskonsole (Port 80) |
https://[SERVICE_IP]/ | Betriebskonsole (Port 443, TLS) |
https://[SERVICE_IP]:7443/ | Verwaltungskonsole (separater Port) |
- Standard-Administratorkonto: admin / admin123!
- Ändern Sie das Passwort bitte unmittelbar nach dem Login.
8.3 Health-Check-Endpunkt
Wird bei der Anbindung an externe Monitoring-Systeme verwendet.
# 컨테이너 / 프로세스 헬스
curl -kfsS https://127.0.0.1:4950/api/health | jq
# 모니터 모듈
curl -fsS http://127.0.0.1:4949/health
Zusammenfassung der Betriebsbefehle
cd /opt/kopens/plantpulse-platform/plantpulse-startup
./start.sh # 포그라운드 시작
./start-daemon.sh # 백그라운드 시작
./stop.sh # 정지
./restart.sh # stop → clean → start-daemon
./status.sh # 전체 모듈 상태
./log-viewer.sh # 통합 로그 뷰어
./log-delete.sh # 오래된 로그 정리
./clean.sh # 임시 파일 정리 (정지 후)
./kill.sh # 강제 종료 (응답 없을 때)
# 모듈별 재시작
./restart-server.sh # 웹 서버
./restart-storage.sh # 스토리지
./restart-analytics.sh # 분석
./restart-messaging.sh # 메시징
./restart-timeseries.sh # 시계열
./restart-workflow.sh # 워크플로우
./restart-cep.sh # CEP
./restart-data-gateway.sh # 데이터 게이트웨이
./restart-monitor.sh # 모니터
./restart-batch.sh # 배치
./restart-warehouse.sh # 웨어하우스
./restart-plugin.sh # 플러그인
./restart-opcua-server.sh # OPC-UA
./restart-aasx-server.sh # AAS
# Cassandra 운영
./node-status.sh # 클러스터 상태
./node-info.sh # 노드 상세
./node-cql.sh # CQL 셸
./node-compact.sh # 수동 컴팩션
./node-cleanup.sh # 노드 정리
./node-repair.sh # 데이터 복구
Detaillierte Betriebsverfahren finden Sie auf den Seiten Startanleitung und Betriebsverwaltung.
Air-Gap-Installation
In Umgebungen ohne Internetzugang erfolgt die Installation nach folgendem Verfahren.
Bundle auf dem Build-Knoten (mit Internetzugang) erzeugen
cd /opt/kopens/plantpulse-platform/offline
./prepare-offline.sh
# 산출물: /offline-install/kopens-offline.tar.gz
Das Bundle enthält Folgendes:
- Das vollständige Verzeichnis
/opt/kopens/plantpulse-platform/ - Erforderliche RPMs (
offline/repos/rpm/+repodata/) - Python-Wheels (
offline/repos/python-wheels/) - JDK / Infrastrukturpakete (unter
tools/)
Übertragung zum Knoten im Air-Gap-Netzwerk
Übertragen Sie kopens-offline.tar.gz per USB / internen Dateiserver / scp usw.
Installation auf dem Knoten im Air-Gap-Netzwerk
mkdir -p /opt/kopens
tar -xzvf /path/to/kopens-offline.tar.gz -C /opt/kopens/
cd /opt/kopens/plantpulse-platform/tools
./setup-offline.sh
# 환경 변수 작성 및 시작 (env.sh 직접수정 ✗ → env.local.sh 에 오버라이드)
cd /opt/kopens/plantpulse-platform/plantpulse-startup
vi env.local.sh
./configure.sh
./start-daemon.sh
./status.sh
setup-offline.sh installiert die OS-Abhängigkeiten ausschließlich über das lokale RPM-Repository und stellt die Infrastrukturkomponenten bereit.
Update
Kleinere Updates (Konfiguration / Patches)
cd /opt/kopens/plantpulse-platform/plantpulse-startup
./stop.sh
# 패치 파일 적용 (운영팀이 안내한 절차에 따라)
cp -r /tmp/patch/* /opt/kopens/plantpulse-platform/
./configure.sh
./start-daemon.sh
./status.sh
Größere Updates (vollständige Neubereitstellung)
# 1. 현재 데이터 / 설정 백업
./stop.sh
cp -a /opt/kopens/plantpulse-platform /opt/kopens/plantpulse-platform.bak-$(date +%Y%m%d)
tar -czf /data1/pp-backup/pre-update-$(date +%Y%m%d).tar.gz /data1/pp-data /data1/pp-backup
# 2. 새 tar.gz 풀기 (env.local.sh / 데이터는 보존)
# 설정값은 env.local.sh 에 있으므로 그 파일만 보존하면 됩니다.
# env.sh 는 새 버전으로 갱신되어도 무방합니다(기본값 정본).
cd /opt/kopens
tar -xzvf plantpulse-platform-NEW.tgz --exclude='plantpulse-platform/plantpulse-startup/env.local.sh'
# 3. 재구성 및 시작
cd /opt/kopens/plantpulse-platform/plantpulse-startup
./configure.sh
./start-daemon.sh
# 4. 문제 시 롤백
./stop.sh
rm -rf /opt/kopens/plantpulse-platform
mv /opt/kopens/plantpulse-platform.bak-YYYYMMDD /opt/kopens/plantpulse-platform
cd /opt/kopens/plantpulse-platform/plantpulse-startup
./start-daemon.sh
Datenschutz: Führen Sie vor einem größeren Update unbedingt ein vollständiges Backup von
/data1/pp-dataund/data1/pp-backupdurch und bewahren Sie es auf einer separaten Festplatte / externem Speicher auf.
Wichtigste Fehlerbehebung
| Symptom | Erste Maßnahme |
|---|---|
| Einige Module nach dem Start STOPPED | Mit ./status.sh prüfen, welches Modul betroffen ist, dann ./restart-<module>.sh |
| Speichermangel / OOMKilled | env.local.sh/PP_CLUSTER_CORES und PP_CLUSTER_MEMORY_BY_CORE anpassen, dann ./configure.sh |
| Portkonflikt | Belegten Prozess mit ss -tlnp prüfen und beenden, oder Port in env.local.sh ändern, dann ./configure.sh |
| Speicherplatzmangel | node-cleanup.sh / node-compact.sh oder alte Backups bereinigen |
| Kein Start möglich | ./log-viewer.sh oder tail -F /var/log/plantpulse-startup.log |
| Zwangsbeendigung erforderlich | ./kill.sh (letztes Mittel — Risiko von Datenverlust) |
Ausführliche Diagnoseverfahren finden Sie auf der Seite Fehlerbehebung.
Nächste Schritte
- Startanleitung — Befehle für tägliches Starten / Stoppen / Neustarten
- Betriebsverwaltung — Backup, Update, Monitoring
- Cluster-Installation — Worker-Knoten hinzufügen
- Portkonfiguration — Firewall- / Netzwerkeinstellungen
Technischer Support
Wenn Sie während der Installation Unterstützung benötigen, wenden Sie sich bitte an webmaster@kopens.com. Wenn Sie zusätzlich einen Screenshot von ./log-viewer.sh oder das Prüfergebnis von /opt/kopens/plantpulse-platform/plantpulse-startup/test/ mitschicken, ist eine schnellere Analyse möglich.