在使用nginx记录访问日志时,发现在含有 request_body
的 PUT
, POST
请求时,日志中会含有 x22
x9B
x5C
x09
x08
字符,不利于阅读和处理。

具体 支持 request_body
的http method参见 http1.1定义 9 Method Definitions
和 Payloads of HTTP Request Methods

nginx.conf
默认access_log 配置

log_format  main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"''$http_host $upstream_status $upstream_addr $request_time $upstream_response_time';

改成
重点: json_log escape=json

log_format json_log escape=json '{"realip":"$remote_addr","@timestamp":"$time_iso8601","host":"$http_host","request":"$request","req_body":"$request_body","status":"$status","size":$body_bytes_sent,"ua":"$http_user_agent","cookie":"$http_cookie","req_time":"$request_time","uri":"$uri","referer":"$http_referer","xff":"$http_x_forwarded_for","ups_status":"$upstream_status","ups_addr":"$upstream_addr","ups_time":"$upstream_response_time"}';

参考 How to generate a JSON log from nginx?

官方文档ngx_http_log_module.html#log_format
注意, escape
是从 1.11.8
后新增的参数。

如果是老版本的,linux可以考虑使用 shell
命令替换, logstash
可以考虑使用 ruby
处理 ,参考 Optionally support handling of x escape codes

nginx日志中$request_body 十六进制字符(\\x22) 引号问题处理记录相关推荐

  1. 【问题】Nginx日志中request_body为空

    部署Nginx,查看Nginx日志的时候,发现request_body的值没有记录下来 Nginx日志: 192.168.1.1--2016-02-24T13:33:54+08:00POST /rat ...

  2. java利用友盟 计算pv uv_通过nginx日志利用shell统计日pv和uv

    通过nginx日志利用shell统计日pv和uv 网上记录nginx日志统计访问量的脚本的文档很多,但是看来看去实际都是一个东西,如下: 1.根据访问IP统计UV awk '{print $1}'  ...

  3. Nginx 日志分析

    目录: 日志分析 日志的常用需求分析 Nginx 日志切割 日志分析 Nginx 默认日志路径/usr/local/nginx/logs/,其中包含访问日志 access.log 和错误 记 录 日 ...

  4. logstash中无法解析nginx日志中的\x09类似字符导致服务停止

    logstash中无法解析nginx日志中的"\x09"类似字符导致服务停止 logstash正常情况是一直稳定运行,突然有一天报告logstash服务宕机,排查日志,在日志中找到 ...

  5. ELK系列(四)、Logstash读取nginx日志写入ES中

    前面讲了ELK的部署以及Logstash的插件的安装方式,本篇就介绍一下如何使用Logstash读取nginx的日志,并写入ES中,通过Kibana分析. ELK系列(一).安装ElasticSear ...

  6. Nginx 日志配置、日志切割、日志切割脚本

    文章目录 前言 一.access_log 1.语法 2.基本用法 3.作用域 4.log_format 自定义日志格式 二.error_log 1.语法 2.基本用法 3.作用域 4.rewrite_ ...

  7. nginx日志中添加请求的response日志

    换个新公司,做一些新鲜的事情,经过一天的琢磨,终于成功添加response日志 在nginx的日志中添加接口response的日志 由于此功能在nginx内置的功能中没有,需要安装第三方模块ngx_l ...

  8. nginx日志格式、参数及切分

    2019独角兽企业重金招聘Python工程师标准>>> 日志格式 nginx服务器日志相关指令主要有两条,一条是log_format,用来设置日志格式,另外一条是access_log ...

  9. 403 forbidden nginx_5,Logstash正则提取Nginx日志 - pwcc

    Logstash正则提取Nginx日志 为什么需要提取?使用一整行日志无法分析,需要提取单独的字段分析哪个IP访问量大分析Nginx的响应状态码Nginx日志格式192.168.238.90 - - ...

  10. Python 分析Nginx 日志并存入MySQL数据库(单线程)

    使用Python 分析Nginx access 日志,根据Nginx日志格式进行分割并存入MySQL数据库.(参考网上一些文章) Nginx access日志格式如下: #使用的nginx默认日志格式 ...

最新文章

  1. hibernate4中取得connection的方法
  2. CTF--misc 零宽度字符隐写
  3. boost::math模块具有输出和输入方面以及字符串流的非有限示例
  4. eclips mysql jndi_Eclipse +Tomcat配置JNDI数据源
  5. 安卓开发笔记(二十二):读取本地(内置)html文件并实现和Javascript交互
  6. html5垂直线怎么画,HTML5 Canvas画线技巧
  7. 给表空间增加数据文件
  8. RabbitMq之发布订阅模式
  9. Android反编译查看源文件
  10. ASME Y14.5 2018重要更新
  11. 消息队列KafKa的集群部署
  12. SMB服务搭建与访问
  13. 发现一个很厉害的抖音视频发布干货分享给大家
  14. 论文阅读20220523_Baidu Apollo EM Planner
  15. Kotlin use函数的魔法
  16. 小强IT游记之大连行
  17. 页面底部copyright部分制作过程中遇到的问题,解决以及总结
  18. 原画还是3D建模?业内发展趋势,你来权衡
  19. MBIST --- PATR2.Memorybist 测试流程
  20. Android 实验室

热门文章

  1. 秘密:从程序员到领导者的微妙之处
  2. SpringBoot-SSMP超详细整合案例
  3. J.A.R.V.I.S.
  4. EXCEL慢的解决方法
  5. 如何让北京小车摇号中签更容易?
  6. CORTEX-A系列处理器
  7. java 逃逸_Java 逃逸分析
  8. 夏天计算机自动关机,电脑频繁自动关机,原因可能出在这
  9. python tkinter ttk_关于tkinter和ttk的新教程,适用于Python 3
  10. QCLOUD APIGATEWAY HTTP header字段整理