Zum Hauptinhalt springen

Wie kann ich die Nginx-Webserver-Logging richtig konfigurieren

Die Protokollierung ist eine der wichtigsten Funktionen eines jeden Webservers, einschließlich Nginx. Es ermöglicht Ihnen, verschiedene Ereignisse zu überwachen und zu analysieren, die auf dem Server auftreten, sowie mögliche Sicherheitsprobleme und -verstöße zu identifizieren. Die Konfiguration der Nginx-Webserver-Protokollierung ermöglicht es Ihnen, Informationen über besuchte Seiten, Anfragen und fehlerhafte Situationen zu erhalten, was dem Administrator hilft, schnell auf Probleme zu reagieren und die Sicherheit des Servers zu erhöhen.

In diesem Artikel werden wir die grundlegenden Schritte zum Konfigurieren der Nginx-Webserver-Logging untersuchen. Es ist wichtig zu beachten, dass Nginx das Format und den Speicherort der Protokolle flexibel anpassen kann, sodass der Administrator die Protokollierung leicht an seine Bedürfnisse anpassen kann.

Zunächst müssen Sie das Protokollformat angeben, das zum Schreiben von Anforderungsinformationen verwendet werden soll. Mit Nginx können Sie dafür vordefinierte Variablen verwenden, die im Zeichenfolgenformat angegeben werden können. Sie können auch eigene Variablen hinzufügen, die zusätzliche Informationen zu den Anforderungen oder der Serverumgebung enthalten.

Beispiel für das Protokollformat:

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

Konfigurieren der Nginx-Webserver-Protokollierung

Nginx-Webserver bietet die Möglichkeit, die Protokollierung zu konfigurieren, um Benutzeraktivitäten und Problemsituationen auf dem Server zu verfolgen. Die Protokolle helfen den Administratoren des Webservers bei der Analyse und Optimierung des Webservers sowie bei der Protokollierung der Informationen, die zur Diagnose und Behebung von Fehlern erforderlich sind.

Die folgenden Konfigurationsparameter werden verwendet, um die Protokollierung des Nginx-Webservers zu konfigurieren:

  • access_log: gibt den Pfad und das Format für das Schreiben von Abfrageprotokollen an, die vom Server erfolgreich verarbeitet wurden;
  • error_log: Gibt den Pfad und das Format für das Schreiben von Serverfehlerprotokollen an.

Beispiel für die Konfiguration des Nginx-Webserverprotokolleintrags:

http . >

Parameter access_log gibt den Pfad an, unter dem die Abfrageprotokolle gespeichert werden sollen. In diesem Beispiel werden die Protokolle in der Datei "access" gespeichert.log" im Verzeichnis "/var/log/nginx/". Außerdem wird das Format "combined" verwendet, das erweiterte Anforderungsinformationen enthält, z. B. die IP-Adresse des Clients, die Anforderungszeit und andere.

Parameter error_log gibt außerdem den Pfad zu der Datei an, in der die Fehlerprotokolle gespeichert werden. In diesem Beispiel werden die Fehlerprotokolle in die Datei "error" geschrieben.log" im selben Verzeichnis "/var/log/nginx/".

Nachdem Sie Änderungen an der Konfiguration des Nginx-Webservers vorgenommen haben, müssen Sie den Server neu starten, um die neuen Einstellungen anzuwenden.

Die Konfiguration der Nginx-Webserver-Logging ist ein wichtiger Aspekt der Serververwaltung. Mit ordnungsgemäß konfigurierten Protokollen können Sie die Aktivität auf dem Server verfolgen, Probleme erkennen, analysieren und Maßnahmen ergreifen, um sie zu beheben.

Auswahl des Protokollformats

Wenn Sie die Nginx-Webserver-Protokollierung konfigurieren, ist es wichtig, ein geeignetes Protokolldateiformat auszuwählen. Das Protokollformat bestimmt, welche Daten in die Protokolle geschrieben werden und wie sie dargestellt werden.

Es gibt mehrere gängige Protokollformate, die in Nginx verwendet werden können:

FormatDie Beschreibung
combinedDas gängigste Protokollformat umfasst die IP-Adresse des Clients, die Anforderungszeit, die Anforderungsmethode, die angeforderte URL, den HTTP-Antwortstatus, die Antwortgröße und den Referer.
commonEine vereinfachte Version des Combined-Formats, die die Referer- und User-Agent-Protokolle des Clients ausschließt.
jsonEin JSON-Format zum Schreiben von Protokollen, das die Analyse und Verarbeitung von Protokollen mithilfe von Datenverarbeitungswerkzeugen erleichtert.
customBenutzerdefiniertes Protokollformat, mit dem Sie nur die erforderlichen Felder zum Schreiben auswählen und deren Reihenfolge und Trennzeichen definieren können.

Die Auswahl des Protokollformats hängt von Ihren Anforderungen und Vorlieben sowie von den verwendeten Tools für die Protokollanalyse ab. Wenn es beispielsweise wichtig ist, Übergänge von anderen Websites zu verfolgen, ist es hilfreich, das Format combined zu verwenden, das Informationen über Referer enthält. Wenn Sie diese Details nicht benötigen oder die Möglichkeit zur Identifizierung von Clients durch den User-Agent vermeiden möchten, können Sie das Format common auswählen.

Pfad und Namen der Protokolldatei angeben

Um die Protokolldatei des Nginx-Webservers zu konfigurieren, müssen Sie einen Pfad und einen Dateinamen angeben, um die Protokolle zu schreiben. Standardmäßig werden Nginx-Logs im Verzeichnis /var/log/nginx/ mit dem Dateinamen access gespeichert.log für Zugriffsprotokolle und error.log für Fehlerprotokolle.

Sie können jedoch bei Bedarf den Pfad und den Namen der Protokolldatei ändern. Öffnen Sie dazu die Nginx-Konfigurationsdatei, die sich normalerweise im Verzeichnis /etc/nginx/ befindet.

Um den Pfad und den Namen der Protokolldatei zu ändern, müssen Sie den Server- oder http-Block in der Nginx-Konfigurationsdatei bearbeiten und die folgende Direktive hinzufügen:

access_log /path/to/log/file.log;

Hier ist /path/to/log/file.log ist der Pfad und Dateiname, in den die Zugriffsprotokolle geschrieben werden. Beachten Sie, dass Sie über die entsprechenden Berechtigungen zum Schreiben in die angegebene Datei verfügen müssen.

Sie können auch den Dateinamen und den Pfad für die Fehlerprotokolle angeben, indem Sie die folgende Direktive hinzufügen:

error_log /path/to/error/log/file.log;

Hier ist /path/to/error/log/file.log ist der Pfad und Dateiname, in den die Fehlerprotokolle geschrieben werden.

Nachdem Sie die Änderungen vorgenommen haben, speichern Sie die Konfigurationsdatei und starten Sie den Nginx-Server neu, damit die Änderungen wirksam werden:

sudo service nginx restart

Jetzt schreibt Nginx die Zugriffs- und Fehlerprotokolle in den von Ihnen angegebenen Dateien im angegebenen Pfad auf.

Festlegen des Detaillierungsgrads von Protokollen

Es gibt mehrere Detailstufen in Nginx, die je nach dem erforderlichen Informationslevel und den Diagnosezielen verwendet werden können:

  • error: Diese Ebene enthält nur Fehlermeldungen wie Clientanforderungsfehler, Verbindungsprobleme und andere kritische Ereignisse. Logs mit dieser Ebene sind die wichtigsten und nützlichsten bei der Suche nach Problemen im Serverbetrieb.
  • warn: Diese Stufe umfasst Warnmeldungen und nicht offensichtliche Situationen, die später zu Problemen führen können. Diese Ebene kann beim Debuggen oder bei unerwartetem Serververhalten nützlich sein, kann jedoch eine größere Menge an Informationen enthalten als die error-Ebene.
  • notice: Diese Detailstufe wird normalerweise verwendet, um wichtige Ereignisse aufzuzeichnen, bei denen es sich nicht um Fehler oder Warnungen handelt. Dies kann Informationen über das Starten und Stoppen des Servers, Neustarts und andere wichtige Ereignisse enthalten.
  • info: Diese Ebene enthält Informationen, die für das Debuggen und Überwachen des Servers nützlich sind, jedoch ohne zu viel Detaillierung. Hier können grundlegende Daten zu Kundenanfragen, Antwortcodes, Bearbeitungszeiten und andere nützliche Informationen über den Serverbetrieb aufgezeichnet werden.
  • debug: Dieser Detaillierungsgrad enthält zusätzliche detaillierte Informationen zum Debuggen und Analysieren des Serverbetriebs im Entwurfsmodus. Es kann Abfrageaufzeichnungen, Header, Sitzungsinformationen, Variablen und andere Daten enthalten. Das Schreiben von Protokollen auf dieser Ebene kann zu großen Datenmengen führen und sich negativ auf die Serverleistung auswirken.

Die Auswahl eines bestimmten Detaillierungsgrads für die Protokolle hängt von den Anforderungen Ihres Projekts ab. Es ist wichtig, ein Gleichgewicht zwischen genügend Informationen für die Analyse zu finden und die Serverlast zu minimieren.

Sie müssen die error_log-Direktive in der Konfigurationsdatei ändern, um den Detaillierungsgrad der Protokolle in Nginx anzupassen. Zum Beispiel, um den Error-Level festzulegen:

error_log /var/log/nginx/error.log error;

Nachdem Sie die Konfigurationsdatei geändert und den Server neu gestartet haben, werden die Protokolldateien mit dem gewählten Detaillierungsgrad aufgezeichnet.

Analysieren von Protokollen und Aktionen anhand ihrer Ergebnisse

Nachdem Sie die Nginx-Webserver-Logging konfiguriert haben, ist es wichtig, die erhaltenen Informationen zu analysieren und basierend auf ihren Ergebnissen Entscheidungen zu treffen. Durch die Analyse der Protokolle können potenzielle Probleme erkannt und die Serverleistung verbessert werden.

Erstens lohnt es sich, auf die Häufigkeit bestimmter Fehler zu achten. Dies kann auf eine falsche Konfiguration des Servers oder auf Probleme mit der Anwendung zurückzuführen sein. Wenn Fehler zu häufig auftreten, müssen Sie die Ursache für ihr Auftreten finden und korrigieren.

Zweitens sollten Sie den Zugriff auf bestimmte Seiten oder Ressourcen analysieren. Wenn einige Seiten zu viele Anfragen erhalten, liegt dies möglicherweise an einer unzureichenden Serverleistung oder einem Caching-Problem. In diesem Fall lohnt es sich, den Server zu optimieren oder den Cache zu verwenden, um die Verarbeitung von Anforderungen zu beschleunigen.

Es ist auch hilfreich, Client-IDs (IP-Adressen oder User-Agent) zu analysieren, um die Aktivität bestimmter Benutzer oder Bots zu verfolgen. Wenn einige Clients zu aktiv sind oder verdächtig sind, können Sie Maßnahmen ergreifen, um sie zu blockieren oder zusätzliche Einschränkungen festzulegen.

Einige Logs, wie der Zugriff auf geschützte Ressourcen oder Hackerversuche, können potenziell gefährliche Aktivitäten enthalten. Wenn verdächtige Aktivitäten erkannt werden, sollten Sie Maßnahmen ergreifen, um mögliche Angriffe zu verhindern. Sie können beispielsweise Firewall-Regeln hinzufügen, um die IP-Adressen zu blockieren, von denen aus Hacker versucht wurden.

Manchmal ist es hilfreich, die Reaktionszeiten des Servers zu überprüfen, um langsame Anforderungen oder häufigere Leistungsprobleme zu erkennen. Wenn die Antwortzeit die angegebenen Werte überschreitet, müssen Sie nach der Ursache für die Verzögerungen suchen und Maßnahmen ergreifen, um die Serverleistung zu verbessern.

Es ist wichtig zu verstehen, dass die Loganalyse kein einmaliges Ereignis ist, sondern ein kontinuierlicher Prozess. Die regelmäßige Überwachung und Analyse von Protokollen hilft Ihnen dabei, Probleme mit dem Server zu erkennen und zu beheben sowie die allgemeine Effizienz der Website zu verbessern.