Zum Hauptinhalt springen

Protokolle und Health

Protokolle sind dreifach unterteilt. Sie müssen nur wissen, welche Ebene Sie betrachten.

EbeneWasSo anzeigen
ContainerprotokolleWas der Container über stdout ausgibt — Startprotokolle + alle unten aufgeführten Dienstprotokolle mit [태그] versehenHost bin/logs.sh plantpulse-datalake
DienstprotokolleEtwa 40 Dateien, die jedes Modul in sein eigenes logs/ schreibtpd logs [서비스] im Container
StartprotokolleEine Datei /var/log/plantpulse-datalake.log, in der pd start die Ausgabe des Dienststarters zusammenfasstBOOT-Tag von pd logs oder tail

Auf dem Host — logs.sh​

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

./logs.sh # 모든 컨테이너의 마지막 200줄, 1회 출력
./logs.sh plantpulse-datalake # 데이터레이크 컨테이너만
./logs.sh -f plantpulse-datalake # 계속 따라간다 (Ctrl+C)
./logs.sh --list # 서비스 · 컴포넌트 이름 목록
./logs.sh cassandra # 컴포넌트 이름을 주면 데이터레이크 안 그 로그 파일

Seit dem 02.09.2026 ist die Standardausgabe einmalig. Um sie zu verfolgen, hängen Sie -f an. Die Protokolle der App-Container (Server · Batch · Warehouse · HA · OPC-UA · AASX) werden ebenfalls mit demselben Befehl angezeigt — diese befinden sich nicht in pd logs.

Im Container — pd logs​

docker exec plantpulse-datalake pd logs --list # 따라갈 파일 <태그> <path> 목록만
docker exec plantpulse-datalake pd logs --lines 50 cep # cep 만, 마지막 50줄부터
docker exec plantpulse-datalake pd logs --lines 3 admin-api
docker exec -it plantpulse-datalake pd logs storage messaging # 여러 서비스, 계속 따라감 (Ctrl+C)
OptionBedeutung
--listListet die Dateien auf und beendet sich dann sofort
--lines NZeigt pro Datei die letzten N Zeilen des vorhandenen Inhalts (Standard: 10). Bei 0 nur das, was ab jetzt geschrieben wird
--no-boot-logOhne Startprotokolle
서비스 …Nur diese Dienste

pd logs verfolgt nur die vom Dienst deklarierten Dateien. Noch nicht vorhandene Dateien werden alle 5 Sekunden erneut gesucht und ab dem ersten Auftreten ab der ersten Zeile verfolgt. Einige werden absichtlich nicht verfolgt — Rotationskopien, JVM-GC-Protokolle, Aster-TSDB-debug.log (stattdessen pd node errors), HiveMQ-event.log (nachrichtenbasiertes Audit, mehrere zehn MB), Kafka-Anfrage-Auditprotokolle.

Häufig verwendete Tags und Dateien:

TagDatei (bezogen auf PP_HOME)
BOOT/var/log/plantpulse-datalake.log
VALKEY/data1/pp-data/valkey/logs/system.log — unter dem Datenvolumen
POSTGRES · CASSANDRAplantpulse-storage/db/<엔진>/logs/system.log
KAFKA · MQTTplantpulse-messaging/kafka/logs/ · mqtt/logs/
CEP-TOMCAT · DGW-TOMCATplantpulse-cep/server/logs/catalina.<date>.log usw.
TEMPORAL · KESTRAplantpulse-workflow/temporal/logs/ · kestra/logs/
ADMIN-APIplantpulse-datalake-admin-api/logs/admin-api.log

Die genaue Liste variiert je nach Box, daher vertrauen Sie pd logs --list.

Health — drei Prüfungen beantworten unterschiedliche Fragen​

PrüfungWas wird geprüftWo
Container HEALTHCHECKBeantworten postgres · cassandra tatsächliche Abfragen? + Sind alle Ports von pd offen? Alle 20 Sekunden, Startverzögerung 900 Sekunden, unhealthy bei 30 aufeinanderfolgenden Fehlern(healthy) von docker ps
pd statusSind 21 Ports offen? Bei Angabe des Dienstnamens das Health-Skript dieses DienstesIm Container
/api/healthGesamtergebnis (OK · WARN · FAIL), vom Backend der Verwaltungskonsole erfassthttps://<server-ip>:4950/api/health

Wenn docker ps healthy ist, aber pd status STOPPED zeigt, liegt ein Startfenster oder ein einmaliger Aussetzer vor (erneut ausführen → RUNNING). Umgekehrt, wenn unhealthy ist, aber pd status alle RUNNING zeigt, sind die Ports offen, aber Abfragen werden nicht beantwortet — pd logs storage.

Kafka ist besonders. Port 9092 wird 10 Sekunden bevor der Broker Anfragen verarbeitet, geöffnet, daher prüft pd statt des Ports, ob «ApiVersions-Anfrage an die vom Broker beworbene Adresse gesendet und eine Antwort erhalten wird». Aus diesem Grund wird in der Health-Zeile von messaging ein Grund wie UP (advertised 10.99.0.100:9092 answered ApiVersions) angegeben.

docker inspect --format '{{json .State.Health.Log}}' plantpulse-datalake | jq # 최근 헬스체크 결과
docker exec plantpulse-datalake pd status messaging # 서비스 하나의 헬스 줄

Ereignisprotokoll — wer hat wann was getan​

pd start · stop · restart · backup schreiben jeweils eine JSON-Zeile in plantpulse-datalake-admin-api/logs/pd-events.jsonl. Die Ereignis-Ansicht der Verwaltungskonsole zeigt diese als Zeitachse.

{"at":"2026-09-03T10:11:53+09:00","kind":"service.stop","subject":"datalake","severity":"info","message":"pd stop","actor":"pd","exit_code":0}

Für in der Konsole ausgeführte Befehle ist actor gleich operator:<name>. Ungeplante Stopps (service.down / service.recovered) werden nicht von Menschen, sondern vom Protokoll von pd downtime geschrieben.

Diagnosebündel​

Um alles für eine Störungsanfrage gesammelt zu haben, führen Sie auf dem Host aus:

cd /opt/kopens/plantpulse-platform-docker/bin
./ops-check.sh # 헬스 + 최근 critical 로그 + 제거된 워커의 잔여물
./doctor.sh # 진단 tarball — 시크릿 값은 마스킹된다

Verwandte Dokumente​