EinleitungKü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-DockerdateiIch 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 KonfEs 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 MehrWenn 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
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:
|
<<: Implementierungsschritte zur Kapselung von Komponenten basierend auf React
Wir alle kennen die Drag-and-Drop-Funktion von HT...
Umgebungsbeschreibung Serversystem: Ubuntu 18.04 ...
Hauptunterschiede: 1. Typ SQL-Datenbanken werden ...
Inhaltsverzeichnis React-Fasererstellung 1. Bevor...
Die nativen Komponenten des WeChat-Miniprogramms ...
Kontextdefinition und Zweck Der Kontext bietet ei...
In der Yum-Quelle von Centos7 ist standardmäßig k...
glibc ist die von GNU veröffentlichte libc-Biblio...
Tag-Typ (Anzeigemodus) HTML-Tags werden im Allgem...
Das Internet ist bereits voll von Artikeln dieser...
MySQL5.6 So erstellen Sie SSL-Dateien Offizielle ...
Zunächst müssen wir wissen, was ein Zustandsmanag...
HTML implementiert ein 2-spaltiges Layout mit fes...
Vorwort Apropos Textsuchtools: Jeder sollte grep ...
Man muss sagen, dass ein Webdesigner ein Generalis...