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 ändern | Beispiele | Datei bearbeiten | Anwendung |
|---|---|---|---|
| Passwort · API-Schlüssel | PostgreSQL-Passwort, CEP-API-Schlüssel | bin/passwd.sh | Werkzeug startet neu |
| Adresse · Identität dieses Knotens | Adresse für andere Knoten, Kafka-Advertise-Adresse, öffentliche NAT-IP | /etc/kopens/platform.node.env | bin/restart-datalake.sh |
| Nicht-geheime Werte, gemeinsam für alle Knoten | Sprache · Zeitzone, Backup-Schedule-Schalter, Console-Log-Endpunkt | /etc/kopens/plantpulse-platform.env | bin/restart-datalake.sh |
| Container-Ressourcen | Data 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/<파일>.template | bin/restart-datalake.sh oder im Container pd config render + pd restart <서비스> |
| Backup-Schedule | Nachtliche Backup-Zeit | Im Container pd backup schedule set | Sofort |
| Öffentliche Ports | Port auf dem Host | compose/docker-compose.yml | bin/restart-datalake.sh — Vorsicht |
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.
| Variable | Wann eintragen | Wenn leer |
|---|---|---|
PP_MASTER_IP | Wenn andere Knoten(Edge, KI, Worker) sich mit diesem Data Lake verbinden sollen — LAN-Adresse dieses Hosts | Adresse im Compose-Netzwerk (10.99.0.100) — wird nur innerhalb derselben Box integriert |
PP_KAFKA_ADVERTISED_HOST | Nur wenn sich der Host hinter NAT befindet oder über eine zweite Schnittstelle mit Kafka verbindet | Das 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 eingetragen | Leer lassen — wenn Sie die falsche IP eintragen, werden überhaupt keine Zertifikate generiert |
PP_NODE_ID | Wenn es mehrere Boxen gibt, ein kurzer, eindeutiger Name für diesen Knoten | Abgeleitet 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 # 데이터레이크만 재생성 + 준비 대기 + 의존 앱 판정
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:
| Variable | Standardwert | Bedeutung |
|---|---|---|
PP_LANG | en | Wenn Sie auf Koreanisch arbeiten, ko |
PP_TZ | Asia/Seoul | Zeitreihen werden in dieser Zeitzone-Epoche geladen, für koreanischen Betrieb beibehalten |
PP_BACKUP_SCHEDULE_ENABLED | true | Wenn false, protokollieren die fünf Backup-Timer nur «skipped» |
PP_DATALAKE_ADMIN_LOGS_ENABLED | true | Wenn false, wird nur der Log-Bildschirm (Endpunkt) der Konsole heruntergefahren |
PP_KEYSPACE · PP_DB_NAME · PP_TOPIC_PREFIX | pp | Bezeichner, 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 # 언어 · 타임존은 앱에도 닿으므로 전체 재시작
# 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
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.
| Fall | Was das Werkzeug tut |
|---|---|
| Bedienerwert unverändert, Standardwert hat sich geändert | Mit neuem Standard ersetzen |
| Bedienerwert geändert, Standardwert auch | Bedienerdatei beibehalten + [WARN] operator edit kept, but THE IMAGE DEFAULT CHANGED + Standardwert-Diff-Ausgabe |
| Bedienerwert geändert, Standardwert unverändert | Beibehalten (still) |
| Neues Template im Image | Installieren |
| Template aus Image entfernt | Host-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 geseedetWenn 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üfung | Details |
|---|---|
| ① Welche Datei hat Vorrang | # source: Spalte in bin/env.sh --print . Node-Datei > Sidecar > Shell > Standard |
| ② Ist es ein vom Container erkannter Name | Namen, die Compose nicht schreibt, werden nicht eingegeben → Variablenreferenz |
| ③ Container neu erstellt | Node- und Sidecar-Werte werden nur bei Container-Neuerstellung eingegeben. docker restart funktioniert nicht — verwenden Sie restart-datalake.sh |
| ④ Wurde gerendert | Ist pd config diff 0? Wenn 1, dann pd config render und neu starten |
| ⑤ Ist es ein Passwort | Wird nicht durch Dateibearbeitung geändert → passwd.sh |
| ⑥ Ist das Template alt | differs · 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-datalakeanzuwenden. Umgebungsvariablen werden beim Container-Neuerstellung gesetzt.restart-datalake.shmacht 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_PREFIXnicht nach der Installation. Ein neues leeres Repository wird unter dem neuen Namen erstellt und die alten Daten bleiben unter dem alten Namen.