Zum Hauptinhalt springen

Protokolle und Gesundheit

Protokolle sind dreischichtig. Sie müssen nur wissen, welche Schicht Sie ansehen sollen.

SchichtWasWie man es sieht
Container-ProtokollWas der Container nach stdout ausgibt — Boot-Protokoll + alle Dienst-Protokolle unten mit [태그] versehenHost bin/logs.sh plantpulse-datalake
Dienst-ProtokollDateien, die jedes Modul in sein logs/ schreibt — etwa 40 StückIm Container pd logs [서비스]
Boot-ProtokollEine Datei, in der pd start die Ausgabe des Dienststarters aneinanderhängt /var/log/plantpulse-datalake.logpd logs -Tag in BOOT, 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 2026-09-02 ist einmalige Ausgabe Standard. Um zu verfolgen, fügen Sie -f an. App-Container (Server · Batch · Warehouse · HA · OPC-UA · AASX) werden 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
--listDateiliste anzeigen und sofort beenden
--lines NPro Datei N Zeilen des vorhandenen Inhalts anzeigen und starten (Standard 10). Mit 0 nur das, was ab jetzt geschrieben wird
--no-boot-logBoot-Protokoll ausschließen
서비스 …Nur diese Dienste

pd logs folgt nur Dateien, die der Dienst deklariert hat. Noch nicht vorhandene Dateien werden alle 5 Sekunden erneut gesucht und vom ersten Moment ihrer Erstellung an verfolgt. Einige werden absichtlich nicht verfolgt — Rotationskopien, JVM-GC-Protokolle, Cassandra debug.log (verwenden Sie stattdessen pd node errors), HiveMQ event.log (nachrichtenbezogene Audits, zehn bis hundert MB), Kafka-Anforderungsaudit-Protokolle.

Häufig verwendete Tags und Dateien:

TagDatei (Basis 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 unterscheidet sich je nach Anlage; verlassen Sie sich auf pd logs --list.

Gesundheit — drei beantworten unterschiedliche Fragen

PrüfungWas wird geprüftWo
Container HEALTHCHECKAntworten postgres · cassandra auf echte Abfragen + alle Ports von pd sind offen. Alle 20 Sekunden, Boot-Toleranz 900 Sekunden, unhealthy nach 30 aufeinanderfolgenden Ausfällen(healthy) in docker ps
pd status21 Ports sind offen. Mit Dienstnamen werden das Gesundheitsskript dieses Dienstes angezeigtIm Container
/api/healthKonsolidierte Bewertung des Admin-Console-Backends (OK · WARN · FAIL)https://<server-ip>:4950/api/health

Wenn docker ps healthy ist, aber pd status hat STOPPED, ist es ein Boot-Fenster oder ein verpasster Versuch (erneut versuchen führt zu RUNNING). Umgekehrt, wenn unhealthy und pd status sind alle RUNNING, dann sind die Ports offen, aber die Abfragen werden nicht beantwortet — pd logs storage.

Kafka ist besonders. 9092 wird 10 Sekunden vor Brokerantworten geöffnet, daher sendet pd statt Port einen «ApiVersions-Request an die vom Broker beworbene Adresse und erhält eine Antwort». Deshalb hat die messaging-Gesundheitszeile eine Ursache wie UP (advertised 10.99.0.100:9092 answered ApiVersions).

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. Der Ereignis-Bildschirm der Admin-Konsole zeigt dies als Zeitstrahl an.

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

Befehle, die von der Konsole ausgeführt werden, werden als operator:<name> durch actor aufgezeichnet. Ungeplante Abschaltungen (service.down / service.recovered) werden nicht von Menschen aufgezeichnet, sondern vom Datensatz von pd downtime.

Diagnose-Paket

Um alles, was Sie für einen Support-Antrag zusammenhängen müssen, auf einmal zu sammeln, führen Sie auf dem Host Folgendes aus:

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

Verwandte Dokumentation