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

CSS verwendet die BEM-Namenskonvention

Welche Informationen möchten Sie erhalten, wenn S...

JavaScript implementiert einen verschiebbaren Fortschrittsbalken

In diesem Artikel wird der spezifische JavaScript...

Einige Erfahrungen in der Selbstkultivierung von Künstlern

Da der Einfluss des Unternehmens wächst und seine...

Beispielcode zur Implementierung eines Hintergrundunschärfeeffekts mit CSS

Ist es der unten gezeigte Effekt? Wenn ja, lesen ...

Vue-Praxis zur Vermeidung mehrfacher Klicks

Im Allgemeinen werden Klickereignisse in verschie...

Sortierung und Paginierung von MySQL-Abfragen

Überblick Da wir die Daten normalerweise nicht di...

Hinweise zur Verwendung von Textarea

Warum speziell Textbereich erwähnen? Denn der Text...

Bootstrap+Jquery zum Erreichen eines Kalendereffekts

In diesem Artikel wird der spezifische Code von B...

JavaScript implementiert kreisförmigen Fortschrittsbalkeneffekt

In diesem Artikelbeispiel wird der spezifische Ja...