Konfiguration von Logging und Logrotation in Nginx auf einem Ubuntu-VPS
Einleitung
Um sich Ärger mit Ihrem Webserver zu ersparen, können Sie das Logging konfigurieren. Logging-Informationen auf Ihrem Server geben Ihnen Zugriff auf Daten, die Ihnen helfen, Probleme zu beheben und Situationen zu beurteilen, wenn sie auftreten.
In diesem Tutorial werden Sie die Logging-Funktionen von Nginx untersuchen und lernen, wie Sie diese Tools so konfigurieren, dass sie Ihren Anforderungen am besten dienen. Als Beispiel wird ein Ubuntu 22.04 Virtual Private Server verwendet, aber jede moderne Distribution sollte ähnlich funktionieren.
Voraussetzungen für die Konfiguration von Logging und Logrotation in Nginx auf einem Ubuntu-VPS
Um diesem Tutorial zu folgen, benötigen Sie:
- Einen Ubuntu 22.04-Server mit einem Nicht-Root-Benutzer mit Sudo-Berechtigungen und einer Firewall. Folgen Sie unserer Anleitung zur Einrichtung eines Servers, um loszulegen.
- Installiertes Nginx auf dem Server. Folgen Sie unserem Tutorial zur Installation von Nginx auf Ubuntu 22.04, um es zu installieren.
Mit Nginx, das auf Ihrem Ubuntu 22.04-Server läuft, können Sie beginnen.
Das error_log
-Directive verstehen für Logging und Logrotation in Nginx
Nginx verwendet einige verschiedene Direktiven zur Steuerung des Systemloggings. Die im Kernmodul enthaltene Direktive heißt error_log
.
error_log
-Syntax
Die error_log
-Direktive wird verwendet, um allgemeine Fehlermeldungen zu protokollieren. Wenn Sie mit Apache vertraut sind, ist dies der ErrorLog-Direktive von Apache sehr ähnlich.
Die error_log
-Direktive hat die folgende Syntax:
/etc/nginx/nginx.conf
error_log log_datei log_level
Die log_datei
gibt die Datei an, in die die Logs geschrieben werden, und log_level
gibt die niedrigste Ebene des Loggings an, die Sie aufzeichnen möchten.
Log-Level
Die error_log
-Direktive kann so konfiguriert werden, dass mehr oder weniger Informationen protokolliert werden. Die Ebene des Loggings kann eine der folgenden sein:
- emerg: Notfallsituationen, in denen das System nicht nutzbar ist.
- alert: Schwere Situationen, die sofortiges Handeln erfordern.
- crit: Wichtige Probleme, die behoben werden müssen.
- error: Ein Fehler ist aufgetreten und etwas war nicht erfolgreich.
- warn: Etwas Außergewöhnliches ist passiert, aber es besteht kein Grund zur Sorge.
- notice: Etwas Normales, das es wert ist, bemerkt zu werden.
- info: Eine informative Nachricht, die interessant sein könnte.
- debug: Debugging-Informationen, die nützlich sein können, um festzustellen, wo ein Problem auftritt.
Die weiter oben in der Liste stehenden Ebenen haben eine höhere Priorität. Wenn Sie eine Ebene angeben, erfasst das Log diese Ebene und jede darüber liegende Ebene.
Wenn Sie beispielsweise error
angeben, erfasst das Log Nachrichten mit den Kennzeichnungen error
, crit
, alert
und emerg
.
Ein Beispiel für die Verwendung dieser Direktive befindet sich in der Hauptkonfigurationsdatei. Verwenden Sie Ihren bevorzugten Texteditor, um die folgende Konfigurationsdatei zu öffnen. Dieses Beispiel verwendet Nano:
sudo nano /etc/nginx/nginx.conf
Scrollen Sie in der Datei zum Abschnitt # Logging Settings und beachten Sie die folgenden Direktiven:
/etc/nginx/nginx.conf
. . .
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
. . .
Wenn Sie nicht möchten, dass error_log
irgendetwas protokolliert, müssen Sie die Ausgabe in /dev/null
umleiten:
/etc/nginx/nginx.conf
. . .
error_log /dev/null crit;
. . .
Die andere Logging-Direktive, access_log
, wird im nächsten Abschnitt besprochen.
HttpLogModule-Logging-Direktiven verstehen für Logging und Logrotation in Nginx
Während die error_log
-Direktive Teil des Kernmoduls ist, gehört die access_log
-Direktive zum HttpLogModule. Dieses bietet die Möglichkeit, Logs anzupassen.
log_format
-Direktive
Die log_format
-Direktive wird verwendet, um das Format eines Logeintrags mit einfachem Text und Variablen zu beschreiben. Es gibt ein vorkonfiguriertes Format namens combined
, das häufig von Servern verwendet wird.
Ein Beispiel für das combined
-Format ist:
/etc/nginx/nginx.conf
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
Logrotation verwalten
Logrotation ist notwendig, um zu verhindern, dass Ihre Festplatte durch große Logdateien voll wird. Sie ist der Prozess des Austauschs von Logdateien und möglicherweise der Archivierung alter Dateien.
Fazit zu Logging und Logrotation in Nginx
Die richtige Konfiguration und Verwaltung von Logs kann Ihnen Zeit und Mühe sparen. Dieses Tutorial bietet eine Einführung in das Logging mit Nginx und dessen Vorteile.