fix(logs): State-Dir default /tmp + laute Warnung wenn nicht beschreibbar (stiller Totalausfall)

This commit is contained in:
mm committed 2026-09-13 23:14:20 +02:00
1 parent c67600f147
commit d7149075a2
1 file changed
+14 -2
+14 -2
View File
@@ -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