nginx日志中$request_body 十六进制字符(\\x22) 引号问题处理记录
在使用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) 引号问题处理记录相关推荐
- 【问题】Nginx日志中request_body为空
部署Nginx,查看Nginx日志的时候,发现request_body的值没有记录下来 Nginx日志: 192.168.1.1--2016-02-24T13:33:54+08:00POST /rat ...
- java利用友盟 计算pv uv_通过nginx日志利用shell统计日pv和uv
通过nginx日志利用shell统计日pv和uv 网上记录nginx日志统计访问量的脚本的文档很多,但是看来看去实际都是一个东西,如下: 1.根据访问IP统计UV awk '{print $1}' ...
- Nginx 日志分析
目录: 日志分析 日志的常用需求分析 Nginx 日志切割 日志分析 Nginx 默认日志路径/usr/local/nginx/logs/,其中包含访问日志 access.log 和错误 记 录 日 ...
- logstash中无法解析nginx日志中的\x09类似字符导致服务停止
logstash中无法解析nginx日志中的"\x09"类似字符导致服务停止 logstash正常情况是一直稳定运行,突然有一天报告logstash服务宕机,排查日志,在日志中找到 ...
- ELK系列(四)、Logstash读取nginx日志写入ES中
前面讲了ELK的部署以及Logstash的插件的安装方式,本篇就介绍一下如何使用Logstash读取nginx的日志,并写入ES中,通过Kibana分析. ELK系列(一).安装ElasticSear ...
- Nginx 日志配置、日志切割、日志切割脚本
文章目录 前言 一.access_log 1.语法 2.基本用法 3.作用域 4.log_format 自定义日志格式 二.error_log 1.语法 2.基本用法 3.作用域 4.rewrite_ ...
- nginx日志中添加请求的response日志
换个新公司,做一些新鲜的事情,经过一天的琢磨,终于成功添加response日志 在nginx的日志中添加接口response的日志 由于此功能在nginx内置的功能中没有,需要安装第三方模块ngx_l ...
- nginx日志格式、参数及切分
2019独角兽企业重金招聘Python工程师标准>>> 日志格式 nginx服务器日志相关指令主要有两条,一条是log_format,用来设置日志格式,另外一条是access_log ...
- 403 forbidden nginx_5,Logstash正则提取Nginx日志 - pwcc
Logstash正则提取Nginx日志 为什么需要提取?使用一整行日志无法分析,需要提取单独的字段分析哪个IP访问量大分析Nginx的响应状态码Nginx日志格式192.168.238.90 - - ...
- Python 分析Nginx 日志并存入MySQL数据库(单线程)
使用Python 分析Nginx access 日志,根据Nginx日志格式进行分割并存入MySQL数据库.(参考网上一些文章) Nginx access日志格式如下: #使用的nginx默认日志格式 ...
最新文章
- hibernate4中取得connection的方法
- CTF--misc 零宽度字符隐写
- boost::math模块具有输出和输入方面以及字符串流的非有限示例
- eclips mysql jndi_Eclipse +Tomcat配置JNDI数据源
- 安卓开发笔记(二十二):读取本地(内置)html文件并实现和Javascript交互
- html5垂直线怎么画,HTML5 Canvas画线技巧
- 给表空间增加数据文件
- RabbitMq之发布订阅模式
- Android反编译查看源文件
- ASME Y14.5 2018重要更新
- 消息队列KafKa的集群部署
- SMB服务搭建与访问
- 发现一个很厉害的抖音视频发布干货分享给大家
- 论文阅读20220523_Baidu Apollo EM Planner
- Kotlin use函数的魔法
- 小强IT游记之大连行
- 页面底部copyright部分制作过程中遇到的问题,解决以及总结
- 原画还是3D建模?业内发展趋势,你来权衡
- MBIST --- PATR2.Memorybist 测试流程
- Android 实验室