fix(archive): Anleitung zeigt auf das Archiv, nie auf die Produktions-TSDB; x22-Wrapper mit --file

This commit is contained in:
mm committed 2026-09-14 11:43:19 +02:00
1 parent 72752e523e
commit 7d3ce17c53
2 files changed
+30 -10

No files matched your search

+21 -5
View File
@@ -33,7 +33,12 @@ AUFRUF (auf dem Quellhost, als root)
python3 apache-log-archive.py --node x22.idx.wf-keyhelp python3 apache-log-archive.py --node x22.idx.wf-keyhelp
python3 apache-log-archive.py --node x22 --out /root/apache-archive python3 apache-log-archive.py --node x22 --out /root/apache-archive
Danach die .tar.gz auf den imac bringen und dort einspielen (siehe README). Danach die .tar.gz auf den imac bringen und dort einspielen — AUSSCHLIESSLICH
ueber prom-archive-import.sh in die getrennte ARCHIV-Instanz (:9091).
NIEMALS die Bloecke von Hand in die Produktions-TSDB entpacken: ein Block mit
Zeitstempeln ausserhalb des Live-Fensters verschiebt dort die Zeitreferenz und
laesst jeden echten Sample als "too old" verwerfen (real passiert am 14.09.2026,
13 Nodes verloren ihre Metriken).
""" """
import argparse import argparse
import glob import glob
@@ -315,10 +320,21 @@ def main():
print() print()
print(f" Uebergabe an den zentralen Server:") print(f" Uebergabe an den zentralen Server:")
print(f" scp {tar_path} mm@192.168.188.177:/tmp/") print(f" scp {tar_path} mm@192.168.188.177:/tmp/")
print(f" Dort einspielen:") print()
print(f" tar -xzf /tmp/{os.path.basename(tar_path)} -C /data/stacks/netbird-observability/stacks/central-imac/data/prometheus/") print(f" ============================================================")
print(f" # Bloecke nach <prometheus>/ — Prometheus liest sie beim naechsten Start") print(f" EINSPIELEN — NUR in die ARCHIV-Instanz (:9091)")
print(f" docker restart observability-prometheus") print(f" ============================================================")
print(f" ssh mm@192.168.188.177 \\")
print(f" 'sudo /usr/local/bin/prom-archive-import.sh --file /tmp/{os.path.basename(tar_path)}'")
print()
print(f" Das Import-Skript prueft die Zeitstempel VOR dem Einspielen, legt ein")
print(f" Manifest an (Schutz gegen Doppel-Import) und schreibt ausschliesslich")
print(f" ins Archiv-Verzeichnis.")
print()
print(f" NIEMALS von Hand entpacken — insbesondere NICHT nach")
print(f" central-imac/data/prometheus/. Genau dieser Weg hat am 14.09.2026 die")
print(f" Zeitreferenz der Produktions-TSDB verschoben: 13 Nodes verloren ihre")
print(f" Metriken, jeder Live-Sample galt danach als 'too old'.")
print() print()
print(f" Hinweis: instance=\"{args.node}\", archived=\"1\" — im Dashboard von") print(f" Hinweis: instance=\"{args.node}\", archived=\"1\" — im Dashboard von")
print(f" Live-Daten unterscheidbar (Filter archived!=\"1\" blendet das Archiv aus).") print(f" Live-Daten unterscheidbar (Filter archived!=\"1\" blendet das Archiv aus).")
+9 -5
View File
@@ -110,12 +110,16 @@ Von hier aus die Ausgabe auf den imac holen und ins ARCHIV einspielen
# 1) Uebertragen (von x22 aus, im NetBird) # 1) Uebertragen (von x22 aus, im NetBird)
scp $OM mm@100.83.134.46:/tmp/apache-archive.openmetrics scp $OM mm@100.83.134.46:/tmp/apache-archive.openmetrics
# 2) Auf dem imac: Bloecke im ARCHIV-Verzeichnis erzeugen und einspielen # 2) Auf dem imac: in die ARCHIV-Instanz einspielen
ssh mm@192.168.188.177 'sudo /usr/local/bin/prom-archive-import.sh' # --file ist Pflicht. Ohne diese Option wuerde das Import-Skript den
# Produktions-Pfad anfassen — dagegen ist es inzwischen gesperrt.
ssh mm@192.168.188.177 'sudo /usr/local/bin/prom-archive-import.sh --file /tmp/apache-archive.openmetrics'
Wichtig: der Import prueft zuerst auf Zukunfts-Zeitstempel und legt einen Wichtig: der Import prueft zuerst auf Zukunfts-Zeitstempel, legt ein Manifest
Snapshot an. Bricht er ab, ist das der Schutz, nicht ein Defekt — Ursache an (Schutz gegen Doppel-Import) und schreibt ausschliesslich ins Archiv. Ein
in der Ausgabe pruefen. zweiter Lauf mit derselben Datei wird uebersprungen und sagt das auch.
Bricht er ab, ist das der Schutz, nicht ein Defekt — Ursache in der Ausgabe
pruefen.
Das Skript fuehrt den Import bewusst NICHT selbst aus: die Produktions-TSDB Das Skript fuehrt den Import bewusst NICHT selbst aus: die Produktions-TSDB
liegt auf einem anderen Host, und ein automatischer Import von einer Node aus liegt auf einem anderen Host, und ein automatischer Import von einer Node aus