Zum Hauptinhalt springen

Einstellungen ändern

Die Datei, die Sie bearbeiten, und die Methode zur Anwendung der Änderung hängen davon ab, was Sie ändern möchten. Finden Sie zunächst Ihren Fall in der Tabelle unten.

Was Sie ändernBeispieleDatei bearbeitenAnwendung
Passwort · API-SchlüsselPostgreSQL-Passwort, CEP-API-Schlüsselbin/passwd.shWerkzeug startet neu
Adresse · Identität dieses KnotensAdresse für andere Knoten, Kafka-Advertise-Adresse, öffentliche NAT-IP/etc/kopens/platform.node.envbin/restart-datalake.sh
Nicht-geheime Werte, gemeinsam für alle KnotenSprache · Zeitzone, Backup-Schedule-Schalter, Console-Log-Endpunkt/etc/kopens/plantpulse-platform.envbin/restart-datalake.sh
Container-RessourcenData Lake Memory Limit/etc/kopens/platform.node.env (DOCKER_DATALAKE_MEMORY)bin/restart-datalake.sh
Engine-Konfiguration «Zeilen»postgresql.conf Parameter, Kafka Aufbewahrungsdauer, Cassandra Heap/etc/kopens/conf/<파일>.templatebin/restart-datalake.sh oder im Container pd config render + pd restart <서비스>
Backup-ScheduleNachtliche Backup-ZeitIm Container pd backup schedule setSofort
Öffentliche PortsPort auf dem Hostcompose/docker-compose.ymlbin/restart-datalake.shVorsicht
Nach einer Änderung ist die Überprüfung immer gleich
cd /opt/kopens/plantpulse-platform-docker/bin
./status.sh # 0 = 정상
docker exec plantpulse-datalake pd config diff # 런타임 파일 = 렌더 결과인가 (0 = 같다)
docker exec plantpulse-datalake pd doctor # FAIL 0

1. Passwort · API-Schlüssel

Bearbeiten Sie die Datei nicht. passwd.sh führt Serverkonto-Änderung → Sidecar-Aktualisierung → Konfigurationsrendering → Neustart in einem Befehl durch.

cd /opt/kopens/plantpulse-platform-docker
bin/passwd.sh --list # 바꿀 수 있는 키
bin/passwd.sh PP_PG_PASSWORD # 값은 프롬프트로 (권장)

Ausführliche Informationen finden Sie unter Passwort · API-Schlüssel ändern.

2. Adresse und Identität dieses Knotens — Node-Datei

/etc/kopens/platform.node.env ist die Datei für Werte, die nur für diesen Knoten wahr sind. Sie darf nicht auf andere Knoten kopiert werden — es gab tatsächlich einen Fall, in dem ein anderer Knoten, dessen Datei kopiert worden war, stillschweigend mit einer falschen Rolle neu installiert wurde.

VariableWann eintragenWenn leer
PP_MASTER_IPWenn andere Knoten(Edge, KI, Worker) sich mit diesem Data Lake verbinden sollen — LAN-Adresse dieses HostsAdresse im Compose-Netzwerk (10.99.0.100) — wird nur innerhalb derselben Box integriert
PP_KAFKA_ADVERTISED_HOSTNur wenn sich der Host hinter NAT befindet oder über eine zweite Schnittstelle mit Kafka verbindetDas Werkzeug leitet Sie beim Start an (Bedienerwert > PP_MASTER_IP > Standard-Host-IP). Normalerweise leer lassen
DOCKER_PP_EXTERNAL_IPÖffentliche IP in NAT-Umgebung. Wird in TLS-Zertifikat SAN eingetragenLeer lassen — wenn Sie die falsche IP eintragen, werden überhaupt keine Zertifikate generiert
PP_NODE_IDWenn es mehrere Boxen gibt, ein kurzer, eindeutiger Name für diesen KnotenAbgeleitet vom Container-Hostname — bei zwei Boxen verdrängen sie sich gegenseitig. Vor dem Hinzufügen der zweiten Box festlegen
sudo vi /etc/kopens/platform.node.env
# PP_MASTER_IP=192.168.10.20

cd /opt/kopens/plantpulse-platform-docker/bin
./restart-datalake.sh # 데이터레이크만 재생성 + 준비 대기 + 의존 앱 판정
Wenn Advertise-Adresse 127.0.0.1 ist, lehnt das Rendering ab (exit 8)

Wenn die Adresse, die der Server dem Client mitteilt (Kafka advertised.listeners, Cassandra broadcast_rpc_address, Temporal broadcastAddress), ein Loopback ist, läuft der Server auf sich selbst problemlos, aber alle anderen Container wenden sich an sich selbst zurück. Alle Port-Checks zeigen UP, aber der Client kann sich überhaupt nicht verbinden. Die Fehlermeldung nennt den Namen, der geändert werden muss — PP_HOST_IP · PP_MASTER_IP · PP_KAFKA_ADVERTISED_HOST in der Node-Datei.

3. Nicht-geheime Werte, gemeinsam für alle Knoten — Sidecar

Die Sidecar-Datei /etc/kopens/plantpulse-platform.env dient nicht nur Geheimnissen. Nicht-geheime gemeinsame Werte können auch in einer einzelnen Zeile in VAR=값 stehen, die bin/env.sh liest und an Compose übergibt. Welche Variablen möglich sind, finden Sie vollständig mit Kommentaren in compose/platform.env.example — kopieren Sie die Zeilen von dort.

Häufig verwendet:

VariableStandardwertBedeutung
PP_LANGenWenn Sie auf Koreanisch arbeiten, ko
PP_TZAsia/SeoulZeitreihen werden in dieser Zeitzone-Epoche geladen, für koreanischen Betrieb beibehalten
PP_BACKUP_SCHEDULE_ENABLEDtrueWenn false, protokollieren die fünf Backup-Timer nur «skipped»
PP_DATALAKE_ADMIN_LOGS_ENABLEDtrueWenn false, wird nur der Log-Bildschirm (Endpunkt) der Konsole heruntergefahren
PP_KEYSPACE · PP_DB_NAME · PP_TOPIC_PREFIXppBezeichner, die Data Lake «erstellt» und die App «liest». Nicht nach der Installation ändern
sudo vi /etc/kopens/plantpulse-platform.env
# PP_LANG=ko

cd /opt/kopens/plantpulse-platform-docker/bin
./restart.sh # 언어 · 타임존은 앱에도 닿으므로 전체 재시작
Die beiden Kopfzeilen des Sidecars nicht anfassen

# generated: und # last rotation: werden vom Werkzeug verwaltet. Die restlichen Zeilen sind VAR=값 . Alte export VAR=값 Zeilen werden ebenfalls gelesen, aber beim nächsten Update im neuen Format neu geschrieben.

4. Container Memory

Das Memory Limit des Data Lake Containers ist DOCKER_DATALAKE_MEMORY . Standard 80G, bei kleineren Hosts automatisch auf 90% des RAM berechnet. Der Wert unterscheidet sich pro Box, daher wird er in der Node-Datei eingetragen.

sudo vi /etc/kopens/platform.node.env
# DOCKER_DATALAKE_MEMORY=64g

cd /opt/kopens/plantpulse-platform-docker/bin
./restart-datalake.sh
Zu kleine Werte führen zu einem «aktiven, aber toten» Zustand

Weil PID 1 im Container systemd ist, wird nur der Java-Prozess durch cgroup OOM-kill beendet, und docker ps zeigt weiterhin Up . Kill-Einträge bleiben nur in dmesg des Hosts. Dies geschah am 2026-09-04 tatsächlich mit einem 64G-Limit (gemessener Peak 63.9G), daher wurde der Standard auf 80G erhöht.

dmesg -T | grep -i "memory cgroup"
docker inspect plantpulse-datalake --format '{{.State.OOMKilled}}'

5. Engine-Konfiguration «Zeilen» — Template

Wenn Sie Zeilen und nicht nur Werte ändern — etwa Parameter zu postgresql.conf hinzufügen oder die Kafka-Aufbewahrungsdauer ändern — bearbeiten Sie das Template auf dem Host. Welches Template zu welcher Datei wird, finden Sie in der Template-Liste.

# 1. 호스트에서 템플릿 편집
sudo vi /etc/kopens/conf/postgresql.conf.template

# 2-a. 데이터레이크 전체 재시작 — 기동 때 자동 렌더
cd /opt/kopens/plantpulse-platform-docker/bin
./restart-datalake.sh

# 2-b. 또는 서비스 하나만 — 컨테이너 안에서
docker exec plantpulse-datalake pd config diff # 무엇이 바뀔지 먼저 본다
docker exec plantpulse-datalake pd config render # 생성물을 실제로 쓴다
docker exec plantpulse-datalake pd restart storage # 그 서비스만 재기동

# 3. 확인
docker exec plantpulse-datalake pd config diff # 0 = 런타임이 렌더 결과와 같다

Nur pd config render zu bearbeiten und nicht neu zu starten, ist «nicht angewendet». Die Datei wird nur geändert. pd restart <서비스> ist ein Gesamtprozess.

Wenn das Image neue Standardwerte bringt — 3-Way-Seeding

/etc/kopens/conf ist eine Host-Datei und ändert sich daher nicht automatisch, wenn das Image neue Standardwerte bringt. Daher vergleicht das Start-Werkzeug pro Deployment die Dateien auf drei Ebenen — die Standardwerte des aktuellen Image, die Standardwerte der letzten Deployment (/etc/kopens/conf.dist) und die Host-Datei.

FallWas das Werkzeug tut
Bedienerwert unverändert, Standardwert hat sich geändertMit neuem Standard ersetzen
Bedienerwert geändert, Standardwert auchBedienerdatei beibehalten + [WARN] operator edit kept, but THE IMAGE DEFAULT CHANGED + Standardwert-Diff-Ausgabe
Bedienerwert geändert, Standardwert unverändertBeibehalten (still)
Neues Template im ImageInstallieren
Template aus Image entferntHost-Datei behalten, Warnung ausgeben

In der Ausgabe von restart.sh · update.sh müssen Sie [WARN] operator edit kept Zeilen manuell zusammenführen — Ihre Bearbeitung mit dem neuen Standard. Derselbe Zeile enthält den Pfad der neuen Standard-Datei.

Sehen Sie im Container, wo sich Ihr Template vom Standard unterscheidet:

docker exec plantpulse-datalake pd config diff --templates
# same — 같다
# differs — 호스트 사본이 다르다 (렌더는 이쪽을 쓴다)
# local — 운영자가 추가한 파일
# missing — 이미지엔 있는데 호스트엔 없다

Um das Host-Verzeichnis vollständig auf die Standard-Werte des Image zurückzusetzen (das Werkzeug sichert in /etc/kopens/conf.backup/<시각>/):

cd /opt/kopens/plantpulse-platform-docker/bin
TEMPLATE_FORCE_SEED=1 ./restart-datalake.sh
/etc/kopens/conf aus Batches vor 2026-09-03 werden selbst neu geseedet

Wenn alte plantpulse-startup Batches vorhanden sind (ohne .template Suffix im Dateinamen), hat pd nichts zum Rendern. Das Start-Werkzeug erkennt dies, sichert die Datei und re-seeded vom Image, benachrichtigt Sie mit [WARN] stale template layout . Alte Änderungen bleiben nur in der Sicherung und werden nicht automatisch migriert.

6. Backup-Schedule

Bearbeiten Sie keine Dateien. pd backup schedule set im Container validiert und schreibt systemd-Timer. Der Backup-Bildschirm der Admin-Konsole «Schedule editor» führt denselben Befehl aus.

docker exec plantpulse-datalake pd backup schedule # 지금 일정
docker exec plantpulse-datalake pd backup schedule set --job postgres-diff --calendar "*-*-* 02:45:00"
docker exec plantpulse-datalake pd backup schedule set --job purge --enabled false
docker exec plantpulse-datalake pd backup schedule reset --job postgres-diff # 기본값으로

Job-Namen gibt es fünf — postgres-diff · postgres-full · cassandra-diff · cassandra-full · purge . Der Kalender verwendet systemd-Syntax (*-*-* 02:45:00 täglich, Sun *-*-* 01:00:00 Sonntag). Ungültige Ausdrücke werden nicht geschrieben und abgelehnt. Die Auswahl bleibt in /data1/pp-data/backup/schedule.json und überlebt die Container-Neuerstellung → Backup · Restore

7. Öffentliche Ports

Die Ports, die auf dem Host verfügbar gemacht werden, werden von plantpulse-datalake Service ports: in compose/docker-compose.yml definiert. Beachten Sie zwei Dinge beim Ändern:

  • Der Port, auf den der Container intern lauscht, wird von defaults.env (PP_*_PORT) und Vorlagen definiert. Das bloße Ändern des veröffentlichten Ports führt zu Abweichungen wie «Container bindet an 6379, Compose veröffentlicht 6399». Beide müssen zusammen bearbeitet werden.
  • 1883 / 1884 (MQTT) wird vom Proxy-Container veröffentlicht, nicht vom Data Lake. Das Hinzufügen desselben Ports zum Data Lake führt zu einem Bind-Konflikt und Start-Fehler.

Die vollständige Port-Liste und Firewall-Regeln finden Sie unter Ports und Dienste verwalten.

Änderungen werden nicht angewendet — Checkliste

ÜberprüfungDetails
① Welche Datei hat Vorrang# source: Spalte in bin/env.sh --print . Node-Datei > Sidecar > Shell > Standard
② Ist es ein vom Container erkannter NameNamen, die Compose nicht schreibt, werden nicht eingegeben → Variablenreferenz
③ Container neu erstelltNode- und Sidecar-Werte werden nur bei Container-Neuerstellung eingegeben. docker restart funktioniert nicht — verwenden Sie restart-datalake.sh
④ Wurde gerendertIst pd config diff 0? Wenn 1, dann pd config render und neu starten
⑤ Ist es ein PasswortWird nicht durch Dateibearbeitung geändert → passwd.sh
⑥ Ist das Template altdiffers · missing in pd config diff --templates → oben 3-Way-Seeding

Nicht tun

  • Bearbeiten Sie PP_HOME/…/conf/* im Container nicht. Es verschwindet beim nächsten Start, und bis dahin weiß niemand, welche Version korrekt ist.
  • Versuchen Sie nicht, Wertänderungen mit docker restart plantpulse-datalake anzuwenden. Umgebungsvariablen werden beim Container-Neuerstellung gesetzt. restart-datalake.sh macht diese Arbeit.
  • Verwenden Sie nicht FORCE=1 pd start . Dies startet einen weiteren Prozess auf demselben Port auf einem laufenden Prozess.
  • Ändern Sie PP_KEYSPACE · PP_DB_NAME · PP_TOPIC_PREFIX nicht nach der Installation. Ein neues leeres Repository wird unter dem neuen Namen erstellt und die alten Daten bleiben unter dem alten Namen.

Verwandte Dokumentation