From 7b25b6e5ae5da61b44033bb70e9a97702e210e00 Mon Sep 17 00:00:00 2001 From: Thore Cimbal Date: Thu, 20 Aug 2026 12:00:00 +0000 Subject: [PATCH] monitoring: die letzten fuenf Einzeldatei-Mounts auf Verzeichnisse (#0083) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Docker haengt Einzeldatei-Mounts am Inode auf; git pull ersetzt die Datei per Rename, der Container zeigt weiter auf die alte. Fuer prometheus, alertmanager, cve-scan und grafana war das laengst behoben - fuer loki, alloy und die drei Python-Skripte nicht. Bei den Skripten war die Falle sogar schlimmer: Python liest beim Start, ein Neustart ist ohnehin noetig und wird deshalb fuer ausreichend gehalten. Der Prozess startet neu, der Mount zeigt weiter auf den alten Inode, der Container meldet Erfolg und faehrt alten Code. Geaendert: loki ./loki:/etc/loki (-config.file zieht mit) alloy ./alloy:/etc/alloy (Pfad bleibt gleich) matrix-alerts ./alertmanager:/app release-watch ./alertmanager:/app cve-exporter ./cve:/app Belegt statt angenommen: docker compose config gueltig; alle vier Pfade in Wegwerf-Containern nachgesehen; und die Gegenprobe - Datei im laufenden Container geaendert, Pruefsumme wechselt. Genau das ging vorher nicht. ⚠️ Einmalig noetig: docker compose up -d --force-recreate loki alloy matrix-alerts release-watch cve-exporter. Danach nie wieder. --- monitoring/docker-compose.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/monitoring/docker-compose.yml b/monitoring/docker-compose.yml index 9cccb38..0c4a8c6 100644 --- a/monitoring/docker-compose.yml +++ b/monitoring/docker-compose.yml @@ -61,7 +61,7 @@ services: # Nachricht auf, statt die Firing-Nachricht abzuhaken. - MATRIX_STATE_FILE=/state/matrix-alerts-state.json volumes: - - ./alertmanager/matrix-alerts.py:/app/matrix-alerts.py:ro + - ./alertmanager:/app:ro - matrix_alerts_data:/state command: python3 /app/matrix-alerts.py networks: @@ -81,7 +81,7 @@ services: - MATRIX_RELEASE_ROOM_ID=${MATRIX_RELEASE_ROOM_ID:-} - MATRIX_TOKEN=${MATRIX_ALERT_TOKEN} volumes: - - ./alertmanager/release-watch.py:/app/release-watch.py:ro + - ./alertmanager:/app:ro - release_watch_data:/state command: python3 /app/release-watch.py networks: @@ -110,7 +110,7 @@ services: - RESULTS_DIR=/results - STATE_FILE=/state/first-seen.json volumes: - - ./cve/cve-exporter.py:/app/cve-exporter.py:ro + - ./cve:/app:ro - cve_results:/results:ro - cve_exporter_state:/state command: python3 /app/cve-exporter.py @@ -122,9 +122,9 @@ services: container_name: loki restart: unless-stopped volumes: - - ./loki/loki-config.yaml:/etc/loki/local-config.yaml:ro + - ./loki:/etc/loki:ro - loki_data:/loki - command: -config.file=/etc/loki/local-config.yaml + command: -config.file=/etc/loki/loki-config.yaml # Port 3100 oeffentlich: externe Alloys pushen Logs hierher. # Ebenfalls per Firewall auf bekannte Absender-IPs einschraenken. ports: @@ -137,7 +137,7 @@ services: container_name: alloy restart: unless-stopped volumes: - - ./alloy/config.alloy:/etc/alloy/config.alloy:ro + - ./alloy:/etc/alloy:ro - /var/log:/var/log:ro - /var/lib/docker/containers:/var/lib/docker/containers:ro - /var/run/docker.sock:/var/run/docker.sock:ro