Zum Hauptinhalt springen

Utility-Module

Eine Sammlung von Hilfsmodulen zur Unterstützung des Platform-Betriebs. Diese werden nicht permanent ausgeführt, sondern bei Bedarf gestartet.

Nicht alle Module sind in der aktuellen Container-Auslieferung enthalten

Die in das Container-Image aufgenommenen Module sind festgelegt; viele der in der folgenden Tabelle aufgeführten Module sind nicht im aktuellen Image enthalten. Wenn Sie nach diesen Pfaden innerhalb des Containers suchen, werden Sie diese nicht finden.

ModulVerwendungszweckAktuelle Auslieferung
backupIntegriertes Backup (PG / Aster TSDB / Datei)✅ In Datalake-Container enthalten
mirror-makerDatenreplikation (HA / DR)✅ Separater Container — mirror Profil standardmäßig deaktiviert
apiREST API Client-Bibliothek✅ Bibliothek für externe Java-Projekte (unabhängig vom Container)
setupStapelregistrierung initialer Modelle (CSV)✅ Erhält ein eigenes Image (2026.09) — Java/Build nicht erforderlich
recoveryDatenwiederherstellung❌ Nicht im Image enthalten
exporterExport von Zeitreihen als CSV❌ Nicht im Image enthalten
migratorAster TSDB Datenmigration❌ Seit 2026-08-30 ausgeschlossen
labJupyter / Metabase Analyseumgebung❌ Seit 2026-08-30 ausgeschlossen

migrator und lab wurden explizit aus dem Image entfernt, da «der Orchestrator sie nicht aufruft, es keine Units gibt und keine Prozesse tatsächlich laufen» (lab nahm 792 MB des Images ein).

Falls Sie die folgenden Verfahren benötigen, kontaktieren Sie bitte webmaster@kopens.com.

Module, die im Datalake-Container enthalten sind, werden innerhalb des Containers ausgeführt.

cd /opt/kopens/plantpulse-platform-docker/bin
./shell.sh

plantpulse-setup​

Ermöglicht die Stapelregistrierung von Site-, Asset-, OPC- und Tag-Modellen auf Basis von CSV-Dateien.

Ab 2026.09 wird dies als eigenes Container-Image bereitgestellt — es ist weder eine Java-Installation noch ein Build-Prozess erforderlich.

# 내 CSV 를 마운트해서 등록
docker run --rm -v "$PWD/csv:/csv" \
docker.kopens.io/pp/plantpulse-setup:latest \
--host ${PP_HOST_IP} --port 80 --user admin --password '<password>' --dir /csv

# 이미지에 든 예제로 먼저 시험 — 마운트 없이 됩니다
docker run --rm docker.kopens.io/pp/plantpulse-setup:latest \
--host ${PP_HOST_IP} --port 80 --user admin --password '<password>' \
--dir /opt/kopens/plantpulse-platform/plantpulse-setup/model_example

docker run --rm docker.kopens.io/pp/plantpulse-setup:latest --help
PunktWert
Imagedocker.kopens.io/pp/plantpulse-setup:<릴리즈 태그> · :latest
CSV-ÜbermittlungHost-Verzeichnis mounten und den Pfad innerhalb des Containers in --dir angeben
KodierungStandard $MS949$. Bei UTF-8 -e CSV_CHARSET=UTF-8
Erforderliche Argumente--host · --port · --user · --password · --dir (keine Standardwerte)
ProtokollNur HTTP — 80 in --port angeben
Die --port 7003 in älteren Beispielen sind nicht mehr korrekt

Der API-Connector 7003 wurde am 2026-09-14 entfernt. Die Verbindung erfolgt nun über 80, analog zum Web. Wenn Sie weiterhin 7003 verwenden, wird keine Verbindung hergestellt.

🔴 443 ist ebenfalls nicht verwendbar. Dieses Tool kommuniziert ausschließlich über Plaintext-HTTP (im Quellcode fixiert). Bei Angabe von 443 wird Plaintext an einen TLS-Port gesendet, was zum Verbindungsabbruch führt — dies ist die gleiche Art von Fehler wie bei 7003 (Installation abgeschlossen, aber keine Verbindung).

Reihenfolge der CSV-Dateien:

  1. 1_SITE_LIST.csv — Site-Liste
  2. 2_ASSET_TREE.csv — Asset-Hierarchie
  3. 3_OPC_LIST.csv — OPC-Server-Verbindungen
  4. 4_TAG_LIST.csv — Tag-Definitionen

plantpulse-backup​

Integriertes Backup für PostgreSQL (pgBackRest), Aster TSDB (Medusa) und Dateien (Restic).

cd /opt/kopens/plantpulse-platform/plantpulse-backup/bin

./backup.sh --install # 초기 설정
./backup.sh --postgres # PG Differential (기본)
./backup.sh --postgres full # PG Full
./backup.sh --postgres incr # PG Incremental
./backup.sh --cassandra # Cassandra Differential
./backup.sh --cassandra full # Cassandra Full
./backup.sh --purge # 보관 정책 정리

# 파일 백업
/opt/kopens/plantpulse-platform/plantpulse-backup/etc/run_restic.sh

Die Zeitplanung wird nicht von diesem Tool verwaltet. --cron-install · --cron-remove · --schedule-install · --schedule-remove wurden am 2026-09-08 eingestellt und führen nun zu einem Fehler mit dem Exit-Code 2. Die Zeitpläne befinden sich in der Tabelle backup_schedule der Datalake-DB und werden von Quartz ausgelöst — diese werden über pd backup schedule eingesehen und über pd backup schedule set geändert.

Die einzige Funktion, die dieses Tool noch besitzt, ist ein globaler Stopp-Schalter — PP_BACKUP_SCHEDULE_ENABLED=false (der Zeitplan bleibt erhalten, nur die Auslösung wird gestoppt). Der Status wird über ./backup.sh --schedule-show abgefragt.

Details siehe Backup und Wiederherstellung.

plantpulse-recovery​

Nicht im aktuellen Container-Image enthalten

Neuverarbeitung von Zeitreihendaten eines bestimmten Assets für einen definierten Zeitraum.

cd /opt/kopens/plantpulse-platform/plantpulse-recovery/bin
./recovery.sh EQUIPMENT_000001 20260101 20260530

plantpulse-exporter​

Nicht im aktuellen Container-Image enthalten

Export von Zeitreihendaten als CSV + Bulk-Export mittels dsbulk.

cd /opt/kopens/plantpulse-platform/plantpulse-exporter/bin

# 에셋 단위 CSV 추출
./export.sh EQUIPMENT_000001 20260101 20260530 /tmp

# 테이블 전체 벌크 언로드 (dsbulk)
./bulk-unload.sh pp tm_tag_point
# → /data1/pp-backup/cassandra/bulk/tm_tag_point.gz

# 벌크 로드 (복원)
./bulk-load.sh pp tm_tag_point

plantpulse-migrator​

Seit 2026-08-30 aus dem Image entfernt

Spark-basierte Migration zwischen Aster TSDB-Servern (Serveraustausch / Cluster-Umzug).

cd /opt/kopens/plantpulse-platform/plantpulse-migrator/bin
./run.sh 192.168.0.41 192.168.0.237 pp.tm_tag_point

plantpulse-mirror-maker​

Datenreplikation (HA / DR). Wird als eigener Container gestartet und ist an das mirror Profil gebunden, sodass er standardmäßig nicht startet.

cd /opt/kopens/plantpulse-platform-docker

# 켜기
docker compose -f compose/docker-compose.yml --profile mirror up -d plantpulse-mirror-maker

# 상태 · 로그
docker compose -f compose/docker-compose.yml --profile mirror ps
bin/logs.sh plantpulse-mirror-maker

Die Konfiguration erfolgt analog zu anderen Containern über die Umgebungsvariablen in der Compose-Datei.

plantpulse-simulator​

Zeitreihendaten-Simulator für Test- und Demozwecke. Verfügbar in zwei Modi: RANDOM (liest Tag-Liste und wählt N Werte pro Sekunde zufällig aus) oder CSV (spielt Dateien mit Zeitstempeln in der vorgegebenen Reihenfolge ab). Ab 2026.09 als Container-Image verfügbar.

# 무작위 부하
docker run --rm \
-e API_HOST=${PP_HOST_IP} -e API_TOKEN=<v5 API 토큰> \
-e PP_MQ_USER=<메시징 계정> -e PP_MQ_PASSWORD=<메시징 비밀번호> \
-e SIM_TYPE=RANDOM -e SIM_MPS=1000 \
docker.kopens.io/pp/plantpulse-simulator:latest

# CSV 재생 — 파일을 마운트하고 «컨테이너 안» 경로를 줍니다
docker run --rm -v "$PWD/data:/data" \
-e API_HOST=${PP_HOST_IP} -e API_TOKEN=<token> \
-e PP_MQ_USER=<계정> -e PP_MQ_PASSWORD=<password> \
-e SIM_TYPE=CSV -e SIM_CSV=/data/a.csv,/data/b.csv \
-e SIM_START=TOMORROW -e SIM_SPEED=2.0 \
docker.kopens.io/pp/plantpulse-simulator:latest
Start wird verweigert, wenn erforderliche Netze fehlen

Ohne API_HOST · API_TOKEN · PP_MQ_USER · PP_MQ_PASSWORD startet der Container nicht — dies verhindert einen Zustand, in dem der Container ohne Token läuft und keine Daten sendet.

plantpulse-api​

Java-Client-Bibliothek für die PlantPulse REST API.

plantpulse-api/
├── lib/ # 의존 jar
└── target/
├── plantpulse-api.jar
├── plantpulse-buffer.jar
├── plantpulse-cassandra-3.0.jar
├── plantpulse-cassandra.jar
└── plantpulse-cep-api.jar

Nach dem Hinzufügen der Abhängigkeiten zu pom.xml / build.gradle in einem externen Java-Projekt verwendbar. Weitere Informationen finden Sie im API-Benutzerhandbuch.

plantpulse-lab​

Seit 2026-08-30 aus dem Image entfernt

Jupyter und Metabase wurden aus dem Image entfernt, da sie nicht vom Orchestrator gestartet wurden, keine Units vorhanden waren und keine Prozesse tatsächlich liefen, während sie 792 MB Speicherplatz beanspruchten.

Die Jupyter-Karte ist in der Web-Konsole möglicherweise noch sichtbar, aber diese Karte funktionierte bereits vor dieser Änderung nicht. Wenn Sie eine Analyseumgebung benötigen, wird empfohlen, diese extern bereitzustellen und eine Verbindung über Kyuubi(10000) oder PostgreSQL(5432) herzustellen.

Analyseumgebung für Data Scientists und Entwickler.

plantpulse-lab/
├── jupyter/ # Jupyter Notebook
│ ├── bin/
│ ├── logs/
│ └── notebook/ # 노트북 저장소
└── metabase/ # Metabase (BI 도구)
├── bin/
└── metabase.jar

Jupyter​

cd /opt/kopens/plantpulse-platform/plantpulse-lab/jupyter/bin
./start.sh
# 기본 포트 8888

PySpark, cassandra-driver und psycopg2 sind vorinstalliert, sodass eine sofortige Analyse möglich ist.

Metabase​

cd /opt/kopens/plantpulse-platform/plantpulse-lab/metabase/bin
./start.sh
# 기본 포트 3001

Visuelles BI-Dashboard für Nicht-Entwickler. Direkte Verbindung zu PostgreSQL / Kyuubi.

Verwandte Dokumente​