From d7149075a2837358a521a3d3c958850ab24ef1c4 Mon Sep 17 00:00:00 2001 From: mm Date: Sun, 13 Sep 2026 23:14:20 +0200 Subject: [PATCH] fix(logs): State-Dir default /tmp + laute Warnung wenn nicht beschreibbar (stiller Totalausfall) --- scripts/syslog-tail.sh | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/scripts/syslog-tail.sh b/scripts/syslog-tail.sh index 6d1d920..a1d5257 100644 --- a/scripts/syslog-tail.sh +++ b/scripts/syslog-tail.sh @@ -43,9 +43,21 @@ read_head() { FILES="${SYSLOG_FILES:-/hostfs/var/log/syslog /hostfs/var/log/kern.log}" MAX_LINES="${SYSLOG_MAX_LINES:-500}" -STATE_DIR="${SYSLOG_STATE_DIR:-/var/lib/telegraf-syslog}" +# Default /tmp: als Dienst-Benutzer (uid 999 im Container) immer schreibbar. +# /var/lib scheitert dort mit "Permission denied" — und ohne schreibbaren State +# kann der Offset nie gespeichert werden, wodurch das Script bei JEDEM Lauf im +# Erstanlauf-Zweig landet und dann still NICHTS ausgibt. +STATE_DIR="${SYSLOG_STATE_DIR:-/tmp/telegraf-syslog}" -mkdir -p "$STATE_DIR" 2>/dev/null || true +if ! mkdir -p "$STATE_DIR" 2>/dev/null; then + echo "syslog-tail: State-Verzeichnis $STATE_DIR nicht anlegbar" >&2 +fi +if ! touch "$STATE_DIR/.wtest" 2>/dev/null; then + echo "syslog-tail: WARNUNG $STATE_DIR nicht beschreibbar - es werden KEINE Logs geliefert" >&2 + echo "syslog-tail: SYSLOG_STATE_DIR auf ein schreibbares Verzeichnis setzen" >&2 +else + rm -f "$STATE_DIR/.wtest" 2>/dev/null +fi for f in $FILES; do [ -r "$f" ] || continue