Das Standard-NGINX-Format lautet wie folgt:
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
Welches ist ein bisschen schwer zu analysieren. Ich befürchte, dass die Leute "entweder Anfragen, Verweise oder Benutzeragenten einbringen.
Ich habe darüber nachgedacht, stattdessen Trennzeichen zu verwenden und mein eigenes Format zu verwenden, das |P-,|als Trennzeichen verwendet wird:
log_format parsable '$status |P-,| $time_iso8601 |P-,| $http_host
|P-,| $bytes_sent |P-,| $http_user_agent |P-,| $http_referer
|P-,| $request_time |P-,| $request';
Nichts hindert Benutzer jedoch daran, |P-,|in ihre Anforderungen, Verweise oder Benutzeragenten einzugreifen.
Ich habe diesen Artikel über ASCII-getrennten Text gelesen: https://ronaldduncan.wordpress.com/2009/10/31/text-file-formats-ascii-delimited-text-not-csv-or-tab-delimited-text/
Ich denke, das könnte verwendet werden, um diese Probleme zu lösen, aber Benutzer könnten auch ASCII-Trennzeichen in ihre Daten einfügen.
Gibt es eine bewährte Methode zur Lösung dieses Problems?
"ungültigen JSON generiert, aber möglicherweise beziehen sich die Änderungen, auf die @alexeyton verweist, auf die Behebung dieses Problems