Datensätze in meiner Nginx-Protokolldatei sind nicht in der richtigen Reihenfolge. (Edit: von "out of order" ich meine chronologisch. ZB Loglines für 2017-02-21 09:13:26 wird oft vor Zeilen für 2017-02-21 09:13:45) Vielleicht eine bestimmte Menge Out-of-Order-Datensätze sind zu erwarten, da sie protokolliert werden, nachdem eine Anfrage abgeschlossen wurde, nicht beim Empfang. Dies ist jedoch eine Möglichkeit, die Anzahl der Anforderungen, die außerhalb der Reihenfolge protokolliert werden, einschließlich der bekannten kurzen (schnellen) Anforderungen für kleine statische Dateien.Nginx-Protokolle sind außer Betrieb, wahrscheinlich aufgrund der gepufferten Protokollierung
Ist dies ein bekannter Nebeneffekt der Verwendung der gepufferten Protokollierung oder kann dies verbessert werden?
Für ein vollständigeres Bild bekommen, sind hier einige andere Konfigurationsparameter erstellt:
In nginx.conf
:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
In der Konfigurationsdatei für den virtuellen Host:
server {
#The backlog parameter matches sysctl net.core.somaxconn setting. Default value is 511 on Ubuntu.
listen 80 backlog=30000;
server_name www.example.com;
access_log /var/log/nginx/access.log main buffer=128k;
error_log /var/log/nginx/error.log;
root /var/www/html/website;
...
}
Nicht zu sicher, warum ist das ein Problem ... – cnst
Was meinst du mit "außer Betrieb"? Wechseln die Protokollzeitstempel manchmal zurück oder werden die protokollierten URLs in einer Reihenfolge angezeigt, die nicht Ihren Erwartungen entspricht, oder etwas anderes? Die Pufferung sollte die Reihenfolge nicht beeinflussen. Es bewirkt nur, dass der Server eine große Anzahl von Nachrichten im Speicher ansammelt, so dass sie in einem einzigen großen Schreibvorgang in die Protokolldatei übertragen werden können, was effizienter ist als das Schreiben einzelner Nachrichten. – ottomeister
@ottomeister Ich meine, die Zeilen sind nicht nach der Zeit sortiert, wie Sie normalerweise eine Protokolldatei erwarten würde. – tinkerr