Apache-Piping zum einfachen Wechseln von Logdateien

Bei der Verwendung von Apache als Logging-Tool gibt es in der Basiskonfiguration eine zu erwähnende Einschränkung. Alle Logaufzeichnungen landen in einer einzigen Datei und das bringt eine Reihe von Problemen mit sich. Was macht man zum Beispiel, wenn die Logdatei zu groß wird und verkleinert werden muss? Dazu müsste man den Apache-Server anhalten, die Datei an einen sicheren Speicherort kopieren und kürzen, und dann den Apache neu starten, um mit dem Logging fortzufahren. Eine bessere Lösung ist die Verwendung der Apache-eigenen Fähigkeiten zum Piped Logging, mit denen die Logdateien einfach und sicher gewechselt werden können.

Pipes – die elegante Lösung

Hier soll kein Streit zwischen Unix und Windows vom Zaun gebrochen werden, aber auf eine der nützlichsten Eigenschaften von Unix-Programmen soll doch hingewiesen werden, nämlich auf die Möglichkeit, ihre Ausgabe- und Eingabekanäle miteinander zu verknüpfen (Piping). Wenn man eine riesige, mehrere Megabyte große Apache-Logdatei nach bestimmten Informationen durchsuchen will, ist es überaus praktisch, dass man die Tools grep, cut, uniq und sort ganz nach Belieben hintereinander schalten kann. Aber das ist Stoff für einen weiteren Artikel.

Hier soll es zunächst einmal um das automatische Wechseln von Logdateien gehen. Dazu wird die Fähigkeit von Apache genutzt, den Ausgabestrom der CustomLog-Direktive in eine externe Anwendung umzuleiten. Wer ein ausgeklügeltes Warn- oder Logsystem benötigt, kann auch eine eigene Logging-Anwendung erstellen, aber für diesen Zweck hier kann man auf die schlichte rotatelogs-Anwendung zurückgreifen, die zum Lieferumfang der Apache-Installation gehört.

Zur Erinnerung – in den httpd.conf-Dateien findet sich eine LogFormat-Direktive, die ungefähr wie folgt aussieht:

(Eine detailliertere Beschreibung von LogFormat findet sich im erwähnten früheren Artikel.) Aber statt der standardmäßigen CustomLog-Direktive wird der Ausgabestrom zu rotatelogs umgeleitet:

Natürlich muss man /opt/httpd/bin/ durch das eigene Apache-Installationsverzeichnis ersetzen. Als Name der Logdatei wurde bislang nur ein relativer Pfad angegeben. Aber hier wird die Logdatei von der rotatelogs-Anwendung geschrieben und nicht von Apache selbst. Um Probleme zu vermeiden, wird hier ein vollständiger absoluter Pfad für die Logdatei angegeben. Die Zahl am Ende der in Anführungszeichen stehenden Zeichenkette gibt die Anzahl der Sekunden zwischen den Rotationen an. Dieser spezielle Wert ist die Anzahl der Sekunden für einen 24-Stunden-Tag, so dass rotatelogs jeden Tag zu einer neuen Logdatei wechseln wird.

Der Name der Logdatei richtet sich dabei ganz nach den Angaben in der obigen CustomLog-Direktive. Allerdings hängt rotatelogs eine Zahl an den Dateinamen an, nämlich die Zeit, zu der die jeweilige Logdatei erstellt wurde:

Man wird also jeden Tag eine neue Logdatei im Logverzeichnis finden, mit einer neuen Timestamp-Zahl als Erweiterung am Dateiende. Eine Kleinigkeit gilt es hierbei jedoch zu beachten: Falls an dem jeweiligen Apache-Port keine Aktivität stattfindet, wird die neue Logdatei mit der neuen Erweiterung nicht erstellt. Dies geschieht nur, wenn es tatsächlich aufzuzeichnende Aktivitäten gibt. Das bedeutet, dass zwischen den Zeitangaben zweier aufeinander folgender Logdateien mehr als 24 Stunden liegen können, wenn auf dem entsprechenden Port nicht viel los ist.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Microsoft nennt weitere Details zu kostenpflichtigen Patches für Windows 10

Erstmals liegen Preise für Verbraucher vor. Sie zahlen weniger als Geschäftskunden. Dafür beschränkt Microsoft den…

5 Stunden ago

Microsoft verschiebt erneut Copilot Recall

Die Entwickler arbeiten noch an weiteren „Verfeinerungen“. Windows Insider erhalten nun wohl eine erste Vorschau…

23 Stunden ago

GenKI im Job: Mitarbeitende schaffen Tatsachen

Laut Bitkom-Umfrage werden in jedem dritten Unternehmen in Deutschland private KI-Zugänge genutzt. Tendenz steigend.

1 Tag ago

97 Prozent der Großunternehmen melden Cyber-Vorfälle

2023 erlitten neun von zehn Unternehmen in der DACH-Region Umsatzverluste und Kurseinbrüche in Folge von…

1 Tag ago

„Pacific Rim“-Report: riesiges, gegnerisches Angriffs-Ökosystem

Der Report „Pacific Rim“ von Sophos beschreibt Katz-und-Maus-Spiel aus Angriffs- und Verteidigungsoperationen mit staatlich unterstützten…

1 Tag ago

DeepL setzt erstmals auf NVIDIA DGX SuperPOD mit DGX GB200-Systemen

NVIDIA DGX SuperPOD soll voraussichtlich Mitte 2025 in Betrieb genommen und für Forschungsberechnungen genutzt werden.

1 Tag ago