From ce52d2c26b8564ad0cd5f5ea74cb2ea52c567377 Mon Sep 17 00:00:00 2001 From: mm Date: Mon, 14 Sep 2026 00:32:24 +0200 Subject: [PATCH] docs: Apache-Logpfad-Sammlung (KeyHelp zweistufig) + Quoting-Pflicht in /etc/default/telegraf --- README.md | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 920cf89..219e592 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,39 @@ Mit `--role apache` (oder automatisch, wenn `apache2ctl`/`httpd` gefunden wird) | **Loki** | jede Zeile roh | Fehlersuche im Einzelfall | | **Prometheus** | `apache_access` mit Tags `resp_code`, `verb` | Request-Rate, Status-Klassen, Error-Rate — Panels und Alerts | -**Logpfad wird automatisch ermittelt:** `/var/log/apache2/access.log` (Debian/Ubuntu/KeyHelp), `/var/log/httpd/access_log` (RHEL/Rocky), sonst aus der `CustomLog`-Direktive der Apache-Config. Überschreiben mit `--apache-log `. +### Logpfade werden automatisch gesammelt + +Der Installer **sammelt alle passenden Muster** — nicht nur das erste. Auf einem KeyHelp-Host laufen zwei Strukturen parallel, und die globale Standarddatei ist leer: + +| Panel | Pfadmuster | +|---|---| +| **KeyHelp** | `/home/users//logs//access.log` (**zweistufig**, pro Domain) | +| **KeyHelp** | `/var/log/apache2//access.log` (z. B. `keyhelp/access.log`) | +| Plesk | `/var/www/vhosts//logs/access_log` | +| cPanel | `/usr/local/apache/domlogs/` | +| Klassisch | `/var/log/apache2/access.log`, `/var/log/httpd/access_log` | + +Verifiziert auf x22: Die Requests liegen unter `/home/users/classi/logs/classi.parts/access.log` **und** `/var/log/apache2/keyhelp/access.log`, während `/var/log/apache2/access.log` **0 Bytes** hat. Ein Input auf die leere Datei hätte still nichts geliefert — leere Standarddateien werden per `-s`-Test ausgeschlossen. + +Alle gefundenen Pfade landen als TOML-Liste in der Conf: + +```toml +files = ["/var/log/apache2/*/access.log", "/home/users/*/logs/*/access.log"] +``` + +Jede Serie trägt ein `path`-Tag, damit man in Grafana nach Datei filtert. Überschreiben mit `--apache-log ` (mehrere Pfade leerzeichengetrennt). + +**Zusätzlich** wird die `CustomLog`-Direktive aus `/etc/apache2` bzw. `/etc/httpd` ausgewertet — die verlässlichste Quelle, `${APACHE_LOG_DIR}` wird aufgelöst. + +### `/etc/default/telegraf` wird gesourct — Werte müssen gequotet sein + +Diese Datei wird mit `. /etc/default/telegraf` eingelesen (vom Installer und von der Telegraf-Unit). Ein **ungequoteter** Wert mit Leerzeichen bricht das Sourcing ab — bei mehreren Logpfaden versucht die Shell, den zweiten Pfad als Befehl auszuführen: + +``` +sh: /etc/default/telegraf: /home/users/classi/logs/classi.parts/access.log: Permission denied +``` + +Der Installer schreibt `APACHE_LOG='…'` deshalb **mit einfachen Anführungszeichen**. Zusätzlich liest er die Datei über `load_defaults` ein, das syntaktisch kaputte Dateien sichert und überschreibt statt abzubrechen — eine Node lässt sich so auch dann reparieren, wenn ihre Defaults-Datei bereits defekt ist. ### Zwei Fallstricke