nginx problema del logaritmo (\ x22)

# Log_format principal '$ remote_addr - $ usuario_remoto [$ time_local] "$ solicitud"'
# '$ $ status body_bytes_sent $ request_body "$ HTTP_REFERER"'
# ' "$ HTTP_USER_AGENT" "$ HTTP_X_FORWARDED_FOR"';

log_format principal de escape = json '[$ time_iso8601] | $ remote_addr | $ REQUEST_METHOD | $ pedido | $ estado | $ body_bytes_sent | $ request_body | $ REQUEST_TIME | $ request_body |'
' "$ HTTP_REFERER" | "$ HTTP_USER_AGENT" | $ HTTP_X_FORWARDED_FOR |'
' "$ upstream_addr" | $ upstream_response_time |'
'$ upstream_cache_status | $ régimen | $ HTTP_USER_AGENT';


access_log logs / access.log principal;

 

 

https://www.cnblogs.com/dance-walter/p/10635260.html

nginx problema del logaritmo (\ x22)

problema:

1, contiene request_body chino, registros nginx se convierten en hexadecimal.
2, el problema de la grabación nginx

POST /xxxxx HTTP/1.1|200|4266|0.121|0.121|------------------------------4a74a6c5ef13\x0D\x0AContent-Disposition: form-data; name=\x22city\x22\x0D\x0A\x0D\x0Ananjing\x0D\x0A------------------------------4a74a6c5ef13\x0D\x0AContent-Disposition: form-data; name=\x22service_name\x22\x0D\x0A\x0D\x0AgdmmGoods\x0D\------------------4a74a6c5ef13\x0D\x0AContent-Disposition: form-data; name=\x22canUseCoupon\x22\x0D\x0A\x0D\x0A1\x0D\x0A------------------------------4a74a6c5ef13--\x0D\x0A|-|-|-|-|xxx|https

optimización:

Para logstash para manejar eficientemente los diversos tipos de registros, el registro es de manera deseable una configuración de almacenamiento particular.


nginx formato de registro por defecto:

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" $request_body'; 

emitir Entrar

[25/Feb/2019:00:00:10 +0800]|192.168.10.19|POST /paas/callback HTTP/1.1|200|163|0.002|0.002|{\x22rc\x22:0,\x22msg\x22:\x22success\x22,\x22transferrate\x22:\x2245301\x22}]}}

request_bodySe convierte en hexadecimal después y difícil de leer.


Proporcionar una visualización directa de las soluciones de formato hexadecimal de registro y resolver:

datos con formato:

###json格式:
    log_format log_json escape=json '{"timestamp": "$time_local",'
        '"remote_addr": "$remote_addr",' '"referer": "$http_referer",' '"request": "$request",' '"statu": "$status",' '"byte": "$body_bytes_sent",' '"agen": "$http_user_agent",' '"x_forwarde": "$http_x_forwarded_for",' '"up_addr": "$upstream_addr",' '"up_host": "$upstream_http_host",' '"up_resp_time": "$upstream_response_time",' '"request_time": "$request_time"}'; ###自定义边界: log_format main escape=json '[$time_iso8601]|$remote_addr|$request_method|$request|$status|$body_bytes_sent|$request_time|$request_body|' '"$http_referer"|"$http_user_agent"|$http_x_forwarded_for|' '"$upstream_addr"|$upstream_response_time|' '$upstream_cache_status|$scheme|$http_user_agent';
  • log_format: a partir del formato del registro
  • principal: nombre de registro
  • escapar = json: nginx versión 1.11.8 no está disponible hasta este parámetro. enlace

Si la versión es baja, o bien actualizar o utilizar el rubí en logstash hacer una conversión, consulte el enlace: https://github.com/logstash-plugins/logstash-codec-json/issues/2

Pregunta 2:

Cuando se produce el error descrito anteriormente nginx, el iniciador no debe normalmente codificado de datos (solicitud Content-Type es iniciada por el / form-data multiparte defecto).
Soluciones al presentar los datos en el puesto de codificar los datos (Content-Type: application / x -www-form-urlencoded)
enlace: https: //stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or -multipart-form-data / 4073451 # 4073451

Supongo que te gusta

Origin www.cnblogs.com/zhoading/p/12505444.html
Recomendado
Clasificación