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
Bösartige QR-Codes, die per E-Mail versendet werden, eignen sich sehr gut, um Spam-Filter zu umgehen.
Unsichere Websites und Phishing-Mails in Verbindung mit Black Friday können kauffreudigen Konsumenten zum Verhängnis werden.
Malware SmokeLoader wird weiterhin von Bedrohungsakteuren genutzt, um Payloads über neue C2-Infrastrukturen zu verbreiten.
Bankhaus Metzler und Telekom-Tochter MMS testen, inwieweit Bitcoin-Miner das deutsche Stromnetz stabilisieren könnten.
Mit 1,7 Exaflops ist El Capitan nun der dritte Exascale-Supercomputer weltweit. Deutschland stellt erneut den…
Der deutsche Hyperscaler erweitert sein Server-Portfolio um vier Angebote mit den neuen AMD EPYC 4004…