Zum Hauptinhalt springen

Pfadkarte — was liegt wo

Die Dateien im Data Lake verteilen sich auf zwei Welten: Host und Container. Die Hälfte aller Unfälle passiert, weil man nicht weiß, auf welcher Seite der Pfad liegt. Diese Seite ist eine einseitige Karte, die die Frage „Wo ist diese Datei?“ beantwortet.

Drei Zeilen zum Merken
  1. Dateien, die Sie ändern, liegen unter /etc/kopens/ auf dem Host.
  2. Die /opt/kopens/plantpulse-platform/…/conf/ im Container sind Erzeugnisse. Änderungen gehen beim nächsten Start verloren.
  3. Daten, Backups und temporäre Dateien liegen in Docker-Volumes und bleiben auch nach einem Neustart des Containers erhalten.

Host​

Dateien, die der Betreiber ändert — /etc/kopens/​

PfadWasÄndernKopieren zwischen Boxen
/etc/kopens/plantpulse-platform.envSecret-Sidecar — Dienstpasswörter · API-Keys · TLS-Passwörter. Berechtigung 0600Passwörter über passwd.sh. Nicht geheime Werte direkt in der Zeile VAR=값Unverändert kopieren
/etc/kopens/platform.node.envKnotendatei — Werte, die nur für diese Box gelten (PP_MASTER_IP · PP_KAFKA_ADVERTISED_HOST · DOCKER_PP_EXTERNAL_IP · PP_NODE_ID)Direkt bearbeitenNie kopieren
/etc/kopens/conf/Konfigurationsvorlagen 33 Stück (*.template). Bind-Mount auf plantpulse-datalake-cli/config/templates des ContainersDirekt bearbeiten → Vorlage ändernBei Bedarf
/etc/kopens/conf.dist/Von früheren Deployments — dienen als Standardwerte der Vorlagen (Basislinie für den 3-Wege-Abgleich). Read-only-Mount in den ContainerNicht anfassen — wird bei jedem Deployment vom Tool aktualisiert—
/etc/kopens/conf.backup/<시각>/Sicherung, die das Tool beim Neu-Auffüllen der Vorlagen hinterlässtNur zur Referenz—
/etc/kopens/ca/Gemeinsames CA zwischen Boxen (CA.crt · CA.key)Nur beim Wechsel auf die zweite BoxErste Box → nächste Box
/etc/kopens/workers.rosterListe der Cluster-Worker <id> <ip>Nur Werkzeuge der worker-add.sh-Familie—
/etc/kopens/rotation.journalFortschrittsprotokoll der Passwort-Rotation (0600). Grundlage, um fehlgeschlagene Rotationen fortzusetzenNicht anfassen—

Betriebsskripte — /opt/kopens/plantpulse-platform-docker/​

PfadWas
bin/Alle Betriebsverben — up.sh down.sh restart.sh restart-datalake.sh status.sh logs.sh shell.sh passwd.sh rotate-secret.sh update.sh backup.sh doctor.sh ops-check.sh …
bin/env.shHostseitige Standardwerte und Werte, die auf dem Host berechnet werden (Kerne · Speicher · Datenträger). bin/env.sh --print gibt „aktuelle gültige Werte und deren Quelle“ aus
compose/docker-compose.ymlContainerdefinition. Umgebungsvariablen, veröffentlichte Ports, Volumes und Speicherlimits, die der Data Lake erhält
compose/platform.env.exampleDie eine Datei, die der Betreiber öffnet — alle verfügbaren Variablen mit Kommentaren. Hier Zeilen auswählen und in die Sidecar- oder Knotendatei übertragen (Erzeugnis, deshalb nicht direkt bearbeiten)
compose/platform.node.env.exampleGerüst der Knotendatei
bin/env.sh nicht direkt bearbeiten

In älteren Anleitungen steht: „Fügen Sie export zu env.sh hinzu“. Das funktioniert zwar, liegt aber im Installationsbaum und ist bei Updates oder Neuinstallationen anfällig. Tragen Sie denselben Wert als VAR=값 in Sidecar oder Knotendatei ein — außerhalb des Installationsbaums bleibt er erhalten, und die Priorität ist höher → Reihenfolge der Wertbestimmung

Docker-Volumes​

Dies sind benannte Volumes auf dem Host. Auch wenn Sie den Container mit remove.sh löschen, bleiben die Volumes bestehen.

VolumePfad im ContainerWas
pp-data/data1/pp-data (PP_DATA_DIR)Alle Daten — Aster TSDB · PostgreSQL · Valkey · RustFS · Kafka · Spark-Ereignisprotokoll · logische Dumps · Aufzeichnung ungeplanter Stopps
pp-temp/data1/pp-temp (PP_TEMP_DIR)Temporäre Dateien. pd clean leert sie. Legen Sie hier keine Archivdateien ab
pp-backup/data1/pp-backup (PP_BACKUP_DIR)Physisches Backup-Repository (pgbackrest/ · medusa/) · Backup-Verlauf · Konsolen-Konfigurationsrevisionen
pp-security/var/securityTLS-Material. Wird vom plantpulse-certs-Container erstellt und vom Data Lake sowie den Apps gelesen

Im Container​

Es gibt zwei Wege, in den Container zu gelangen. Für einen einzelnen Befehl genügt docker exec, für mehrere öffnen Sie eine Shell.

docker exec plantpulse-datalake pd status # 하나만
/opt/kopens/plantpulse-platform-docker/bin/shell.sh # 셸 열기 (= docker exec -it … bash)

Laufzeitbaum — PP_HOME=/opt/kopens/plantpulse-platform​

PfadWas
plantpulse-datalake-cli/pd selbst. bin/pd · cmd/ · lib/ · services/order.txt · config/defaults.env · config/render.map
plantpulse-datalake-cli/config/templates/Stelle, an der der Host-/etc/kopens/conf gemountet ist. Was im Container sichtbar ist, ist eine Kopie des Hosts
plantpulse-datalake-cli/config/templates.dist/Stelle, an der der Host-/etc/kopens/conf.dist read-only gemountet ist
plantpulse-storage/cache/valkey · db/postgres · db/cassandra · object/rustfsSpeichernetz. Jeweils bin/ conf/ logs/
plantpulse-analytics/spark · hive · gravitino · kyuubiAnalytik-Netz
plantpulse-messaging/kafka · mqttZwei Broker
plantpulse-timeseries/engine · dashboardZeitreihen-Engine und PlantPulse Dashboard
plantpulse-cep/ · plantpulse-data-gateway/Web-Module auf Tomcat. Konfiguration in config/, Logs in server/logs/
plantpulse-workflow/temporal · kestraZwei Workflow-Engines
plantpulse-datalake-admin-api/Backend der Verwaltungskonsole. webapp/ ist die Oberfläche, logs/pd-events.jsonl das Ereignisprotokoll
plantpulse-backup/Physisches Backup-Toolkit (bin/backup.sh). Der Zeitplan steht nicht hier, sondern in der Tabelle backup_schedule der datalake-DB

pd env gibt diese Liste mit den tatsächlichen Werten dieses Knotens aus. Merken Sie sich keine Pfade, sondern verwenden Sie diesen Befehl.

docker exec plantpulse-datalake pd env

Erzeugnisse — was beim Ändern verloren geht​

pd start rendert bei jedem Mal die Vorlagen und schreibt sie an die folgenden Stellen. Die erste Zeile ist # GENERATED by pd from <템플릿> - edit /etc/kopens/plantpulse-platform.env instead.

ErzeugnisOriginalvorlage (Host /etc/kopens/conf/)
plantpulse-storage/db/postgres/conf/postgresql.conf · pg_hba.confpostgresql.conf.template · pg_hba.conf.template
plantpulse-storage/db/cassandra/conf/cassandra.yaml · jvm-server.optionscassandra.yaml.template · jvm-server.options.template
plantpulse-storage/cache/valkey/conf/valkey.confvalkey.conf.template
plantpulse-messaging/kafka/config/kafka.properties · jaas.confkafka.properties.template · kafka-jaas.conf.template
plantpulse-messaging/mqtt/conf/config.xml · auth.propertieshivemq.xml.template · plantpulse-mq-auth.properties.template
plantpulse-cep/config/plantpulse-cep.propertiesplantpulse-cep.properties.template
plantpulse-data-gateway/config/plantpulse-jdbc.properties · plantpulse-data-gateway.propertiesplantpulse-jdbc.properties.template · plantpulse-data-gateway.properties.template

Die vollständige Zuordnungstabelle finden Sie unter Wo sind die Konfigurationsdateien — Vorlagenliste.

Logs​

WasWoAnsehen
Boot-Log — pd start hängt die Ausgabe des Service-Launchers an/var/log/plantpulse-datalake.logpd logs (BOOT-Tag)
Boot-Kopie aus Containersicht/var/log/plantpulse-boot.logtail
Etwa 40 Service-Logslogs/ der jeweiligen Module — Liste unter pd logs --listpd logs [서비스]
Zusammengeführter Container-Log (alles oben)DockerAuf dem Host: bin/logs.sh plantpulse-datalake
Ereignisprotokoll — wer hat wann start/stop/backup ausgeführtplantpulse-datalake-admin-api/logs/pd-events.jsonlEreignisbildschirm der Konsole, tail
Aufzeichnung ungeplanter Stopps/data1/pp-data/pd/downtime/pd downtime

Weitere Speicherorte​

WasWo
TLS-Material/var/security/plantpulse/ (.certs_generated schreibt das Erzeugungsprotokoll)
PostgreSQL-Logischer Dump/data1/pp-data/postgres/dump/
Physisches Backup-Repository · Verlauf · Locks/data1/pp-backup/ (pgbackrest/ · medusa/ · history.jsonl · pd-backup.lock)
Backup-Tool-Konfiguration — enthält Passwörter, nicht einfügen/etc/pgbackrest/pgbackrest.conf · /etc/medusa/medusa.ini (wird beim Start von pd geschrieben)
Backup-Zeitplan-Override/data1/pp-data/backup/schedule.json
Image-Identität/etc/plantpulse-image.env · /etc/plantpulse-modules.json

Verwandte Dokumentation​