Zum Hauptinhalt springen

Start · Stopp · Neustart

Es gibt zwei Stellen, an denen das Data Lake ein- und ausgeschaltet wird. Die Container selbst werden auf dem Host behandelt, ein einzelner Dienst innerhalb der Container wird über pd verwaltet. Legen Sie zuerst fest, welche Seite Sie verwenden möchten.

Was Sie tun möchtenWoBefehl
Gesamte Plattform ein- und ausschaltenHostup.sh · down.sh · restart.sh
Nach Änderung von Konfiguration · Passwörtern nur das Data Lake neu erstellenHostrestart-datalake.sh
Eine App (Server · Batch · Warehouse) neu startenHostrestart-server.sh · restart-batch.sh · restart-warehouse.sh · restart-one.sh <서비스>
Nur einen Dienst im Data Lake (CEP · Workflow …) neu startenIm Containerpd restart <서비스>
Status prüfenHost / Im Containerstatus.sh / pd status

Host-Verben​

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

./up.sh # 기동 — 준비될 때까지 기다린다. 종료 코드 0 = 쓸 수 있다
./down.sh # 정지 — 컨테이너 · 볼륨은 남는다
./restart.sh # 전체 재시작 — graceful drain → 재기동 → 준비 대기. 인자를 받지 않는다
./restart-datalake.sh # 데이터레이크만 — drain → 재생성 → 준비 대기 → 의존 앱 판정
./status.sh # 컨테이너 · 헬스 · 볼륨 요약. 0 = 정상 / 2 = 비정상
VerbBedeutung von Exit-Code 0Zu beachten
up.sh«Bereit» – nicht Befehls-Erfolg. Wird erneut geprüft, bis die Bereitschaftsprüfung bestanden ist (Standard 900 s, Intervall 15 s)Wenn PP_WAIT=0, wird nicht gewartet, und die 0 bedeutet dann nicht Bereitschaft
restart.shBereit nach NeustartEinschließlich aller sechs Apps · Proxy · Zertifikat-Container. Wenn Werte geändert wurden, die auch Apps betreffen, z. B. Sprache · Zeitzone
restart-datalake.shData Lake wieder healthy, ebenso die abhängigen AppsNur ein Container, aber ein Stack-Ereignis – alle Apps halten Verbindungen dorthin. Danach werden die Apps geprüft und nur die, die nicht selbst zurückkommen, werden einmal neu gestartet. Dauert so lange wie ein Boot
status.shNormalVolumes · conf werden nur angezeigt und nicht in den Exit-Code aufgenommen
Wenn Sie Werte geändert haben, ist docker restart nicht die richtige Wahl, sondern restart-datalake.sh

Die Werte in Sidecar · Node-Dateien werden von Compose als Umgebungsvariablen übernommen, wenn der Container neu erstellt wird. docker restart plantpulse-datalake startet nur mit denselben Umgebungsvariablen neu, die neuen Werte kommen nicht an.

Startreihenfolge​

Zwischen Containern​

plantpulse-certs(TLS-Material) → plantpulse-datalake → sechs Apps · Proxy. Die Apps starten erst, wenn das Data Lake healthy ist. Die Startfrist des Data Lake beträgt 900 s, und beim ersten Start kann das durch die Erstellung des Aster-TSDB-Schemas so lange dauern.

Innerhalb des Data Lake​

Wenn der Container startet, hilft pd start automatisch.

  1. Wenn Kern-Ports (6379 · 5432 · 9042) bereits offen sind, wird mit «already running» abgelehnt.
  2. Prüfung, ob alle 15 erforderlichen Secrets (Worker +1) vorhanden sind. Falls nicht, werden alle Namen aufgelistet und mit Exit 3 beendet.
  3. Prüfung des TLS-Materials (/var/security/plantpulse).
  4. Konfigurations-Rendering – alle Vorlagen zu echten Dateien unter PP_HOME. Jedes Mal, ohne Ausnahme.
  5. Start in der Reihenfolge storage → analytics → messaging → timeseries → cep → workflow → data-gateway → admin-api, jeweils mit Warten auf Healthcheck UP.

Die letzte Zeile ist das Ergebnis.

datalake started: 8 service(s) ready. Logs: pd logs # exit 0
datalake started with 1 service(s) not ready (7 ready). Check: pd status # exit 6

Stoppreihenfolge​

down.sh · restart.sh auf dem Host stoppen zuerst die Apps und drainen das Data Lake – im Container fährt pd stop die Dienste in umgekehrter Reihenfolge herunter (admin-api → … → storage) und beweist jeweils «gestoppt» (30 s warten → SIGTERM 15 s → SIGKILL 10 s). Die Stoppfrist des Containers (stop_grace_period) beträgt 180 s.

Stoppen Sie nicht nur storage und lassen Sie den Rest laufen

Alle oben genannten Dienste hängen an storage. Wenn Sie etwas stoppen wollen, ist pd stop mit kompletter umgekehrter Reihenfolge richtig, und wenn Sie das tun, ist down.sh auf dem Host, der den Container selbst stoppt, sogar passender. Wenn Sie pd stop komplett nur «kurz zur Ruhe bringen» wollen, wird der Container-HEALTHCHECK innerhalb weniger Minuten unhealthy und die Host-Überwachung reagiert.

Nur ein Dienst – pd​

docker exec plantpulse-datalake pd status # 어느 것이 STOPPED 인가
docker exec plantpulse-datalake pd logs --lines 100 cep
docker exec plantpulse-datalake pd restart cep # stop → 정지 증명 → 5초 → start
DienstBei Neustart
storageAlle Abhängigen verlieren die Verbindung. Wenn möglich, restart-datalake.sh auf dem Host für das Ganze
analyticsAlle laufenden SQL · Spark-Jobs werden abgebrochen. Wenn ein Archivierungsjob läuft, danach
messagingFür einige Sekunden stoppt der Empfang aller Nachrichten. Consumer (Server · CEP · Batch) verbinden sich automatisch neu
timeseries · cep · workflow · data-gateway · admin-apiNur dieser Dienst. Apps verbinden sich automatisch neu

pd restart beweist zuerst den Stopp. Wenn der Stopp fehlschlägt (Exit 7), wird dort angehalten – dann pd kill --dry-run → pd kill → pd status → pd start.

Statusprüfung Zeile für Zeile​

./status.sh # 호스트: 0 정상 / 2 비정상
docker ps --format 'table {{.Names}}\t{{.Status}}' # 컨테이너와 (healthy)
docker exec plantpulse-datalake pd status # 서비스 포트 표
curl -kfsS https://<server-ip>:4950/api/health | jq .status # 콘솔 헬스 API
«Up, aber tot» – Speicher-OOM

Da PID 1 im Container systemd ist, wird nur der Java-Prozess per cgroup OOM-killt, und docker ps zeigt weiterhin Up (healthy), wird aber erst verspätet unhealthy. Wenn pd status alle STOPPED sind, der Container aber lebt, vermuten Sie zuerst dies.

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

Wie Sie das Limit erhöhen, finden Sie unter Konfiguration ändern – Speicher.

Autostart​

Der Container ist restart: always, daher startet der Docker-Daemon ihn nach einem Host-Neustart selbst. Ein separates systemd-Unit ist nicht nötig. Allerdings bleibt ein Stack, der mit down.sh absichtlich heruntergefahren wurde, auch nach einem Neustart heruntergefahren – starten Sie ihn mit up.sh.

Verwandte Dokumentation​