So passen Sie die Protokollebene von Nginx in Docker an

So passen Sie die Protokollebene von Nginx in Docker an

Einleitung

Kürzlich haben wir festgestellt, dass eine unserer Anwendungen viele Protokolle generiert, und die meisten dieser Protokolle sind access_log von nginx. Standardmäßig sammeln wir die Standardausgabe in es, um die Anwendungsprotokolle zu analysieren, aber viele davon sind access_log, was die echten Fehlerprotokolle verdecken kann. Daher möchten wir diese access_logs manchmal nicht ausgeben. Das Beispiel lautet wie folgt:

Nginx-Dockerdatei

Ich habe auf Github nach dem Dockerfile von Nginx gesucht, docker-nginx/Dockerfile bei master · nginxinc/docker-nginx (github.com).

Sie können sehen, dass nginx access_log und error_log standardmäßig mit der Standardausgabe verknüpft, weshalb wir access_log in Docker-Protokollen oder Kubectl-Protokollen sehen können

Wir können cat /etc/nginx/nginx.conf im Container ausführen, um die Standard-Nginx-Konfiguration anzuzeigen

Standard-Nginx-Konfiguration

Aus dem Obigen können wir ersehen, dass die error_log-Ebene „Notice“ lautet. Bei Bedarf kann sie auch auf „Warnung/Fehler“ konfiguriert werden. Informationen zur spezifischen Protokollkonfiguration finden Sie in der offiziellen Dokumentation. Die konfigurierbaren Protokollebenen sind: Debug, Info, Notice, Warn, Error, Crit, Alert, Emerg

Damit die Ausgabe nicht direkt auf die Standardausgabe erfolgt und nicht so viele Logs entstehen, lässt sich access_log mit off oder über einen anderen Pfad direkt deaktivieren.

Neue Konf

Es ist bequemer zu wissen, wie man die Konfiguration ändert. Wir müssen nur die Standardkonfiguration durch unsere neue Konfiguration ersetzen. Die neue Konfiguration sieht wie folgt aus:

Benutzer nginx;
Arbeiterprozesse automatisch;

error_log /var/log/nginx/error.log Fehler;
pid /var/run/nginx.pid;

Ereignisse {
    Arbeiterverbindungen 1024;
}

http {
    /etc/nginx/mime.types einschließen;
    Standardtyp Anwendung/Oktett-Stream;

    Zugriff_Abmeldung;

    sendfile an;
    #tcp_nopush ein;

    KeepAlive-Timeout 65;

    #gzip ein;

    schließen Sie /etc/nginx/conf.d/*.conf ein;
}

Überschreiben Sie dann im Dockerfile die Standardkonfiguration durch die neue:

# Benutzerdefinierte Nginx-Konfiguration kopieren
KOPIEREN /conf/nginx.conf /etc/nginx/nginx.conf

Mehr

Wenn Sie access_log aufzeichnen möchten, dies aber nicht direkt tun möchten, können Sie access_log auf einen anderen Dateinamen konfigurieren. Es wird dann in die entsprechend konfigurierte Datei geschrieben, aber nicht direkt in die Standardausgabe ausgegeben, sodass viele der gesammelten Protokolle nicht access_log sind.

Wenn Sie nicht protokollieren möchten, können Sie die Off-Konfiguration direkt verwenden, um access_log zu deaktivieren. Wenn Sie selektiv protokollieren möchten, z. B. 2xx/3xx nicht protokollieren möchten, können Sie auch andere Situationen protokollieren. Die Nginx-Dokumentation stellt dies ebenfalls vor. Sie können entsprechend Ihren Anforderungen auswählen.

Karte $status $loggable {
    ~^[23] 0;
    Standardwert 1;
}
access_log /Pfad/zu/access.log kombiniert wenn=$loggable;

Verweise

  • https://notestack.io/public/configure-nginx-logging-in-a-docker-container/874f1253-cf1a-4c62-9d2d-467ab23c258d
  • https://docs.nginx.com/nginx/admin-guide/monitoring/logging/
  • https://github.com/nginxinc/docker-nginx/blob/master/stable/alpine/Dockerfile

Dies ist das Ende dieses Artikels zum Anpassen der Protokollebene von nginx in Docker. Weitere Informationen zur Protokollebene von nginx in Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Idee des Rollens von Nginx-Protokollen in Docker

<<:  Implementierungsschritte zur Kapselung von Komponenten basierend auf React

>>:  Deaktivieren Sie die automatische Vervollständigung in HTML, damit der Verlauf nicht angezeigt wird

Artikel empfehlen

Einführung in Docker-Container

Docker-Übersicht Docker ist eine Open-Source-Lösu...

So implementieren Sie Code und Schritte für den digitalen Paging-Effekt in CSS

Eine beträchtliche Anzahl von Websites verwendet d...

So erstellen, starten und stoppen Sie einen Docker-Container

1. Ein Container ist eine unabhängig laufende Anw...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.17

In diesem Artikel wird die Installations- und Kon...

Zusammenfassung zum Erlernen von Docker-Befehlen in einem Artikel

Inhaltsverzeichnis Einführung Spiegel-Repository ...

Beispiel für die Installation von nginx in einem angegebenen Verzeichnis

Aufgrund von Unternehmensanforderungen müssen zwe...

Grafisches Beispiel für die Verwaltung von Datenträgerkontingenten unter Linux

Das Datenträgerkontingent ist die Speichergrenze ...

Eine kurze Analyse der Verwendung von HTML-Float

Einige Verwendungen von Float Linke Aufhängung: f...