nginx日志中$request_body 十六进制字符(\x22\x9B\x5C\x09\x08...)完美解决方案
在使用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';复制代码
改成
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
博客 anjia.ml/2017/06/21/…
简书 www.jianshu.com/p/8409f28f3…
掘金 juejin.im/post/5949e0…
nginx日志中$request_body 十六进制字符(\x22\x9B\x5C\x09\x08...)完美解决方案相关推荐
- 【问题】Nginx日志中request_body为空
部署Nginx,查看Nginx日志的时候,发现request_body的值没有记录下来 Nginx日志: 192.168.1.1--2016-02-24T13:33:54+08:00POST /rat ...
- logstash中无法解析nginx日志中的\x09类似字符导致服务停止
logstash中无法解析nginx日志中的"\x09"类似字符导致服务停止 logstash正常情况是一直稳定运行,突然有一天报告logstash服务宕机,排查日志,在日志中找到 ...
- ELK系列(四)、Logstash读取nginx日志写入ES中
前面讲了ELK的部署以及Logstash的插件的安装方式,本篇就介绍一下如何使用Logstash读取nginx的日志,并写入ES中,通过Kibana分析. ELK系列(一).安装ElasticSear ...
- nginx日志中添加请求的response日志
换个新公司,做一些新鲜的事情,经过一天的琢磨,终于成功添加response日志 在nginx的日志中添加接口response的日志 由于此功能在nginx内置的功能中没有,需要安装第三方模块ngx_l ...
- nginx日志格式、参数及切分
2019独角兽企业重金招聘Python工程师标准>>> 日志格式 nginx服务器日志相关指令主要有两条,一条是log_format,用来设置日志格式,另外一条是access_log ...
- Nginx 日志配置、日志切割、日志切割脚本
文章目录 前言 一.access_log 1.语法 2.基本用法 3.作用域 4.log_format 自定义日志格式 二.error_log 1.语法 2.基本用法 3.作用域 4.rewrite_ ...
- python nginx日志分析_Nginx日志分析及脚本编写
在我们日常的运维中,当Nginx服务器正常运行后,我们会经常密切关注Nginx访问日志的相关情况,发现有异常的日志信息需要进行及时处理. 那今天我将跟大家一起来研究和分析Nginx日志,nginx默认 ...
- 【临实战】使用 Python 处理 Nginx 日志
有什么 有 14 台机器(意味着我们有 14 份日志) 一台可以连到这 14 太机器的机器(有Python 2.6) 要做什么 获取 14 台机器上某时间段内的包含某特征的日志,再取出其中的特定内容 ...
- 九爷带你了解 nginx 日志配置指令详解
nginx日志配置指令详解 日志对于统计排错来说非常有利的. 本文总结了nginx日志相关的配置如 access_log.log_format.open_log_file_cache.log_not_ ...
- nginx 日志切割
nginx根据日期记录日志 (2017-03-23 10:38:20)转载▼ 标签: nginx 日志 根据日期记录日志 linux 分类: nginx 在ngixn.cnf中当前项目server模块 ...
最新文章
- nodejs之express -- 1
- [转载]我看到的最好的解释AngularJs中Factory和Service和Provide不同
- python输入123输出321_C语言编程:输出一个3位整数的逆序数,如输入123,输出321....
- 高并发编程-线程通信_使用wait和notify进行线程间的通信2_多生产者多消费者导致程序假死原因分析
- VTK修炼之道15:图像处理_显示(vtkImageViewer2 vtkImageActor)
- asp.net拦截器
- Mysql ---Sqlserver数据迁移到Mysql(Mysql建表迁移数据)
- 深入理解java虚拟机 - jvm高级特性与最佳实践(第三版)_JVM虚拟机面试指南:年薪30W以上高薪岗位需求的JVM,你必须要懂!...
- 基于51单片机的计算器
- nuxt.js实战之window和document对象的使用
- iOS 新浪微博-5.3 首页微博列表_集成图片浏览器
- 排序 不用order by_Sort Techniques:介绍九种排序算法
- 计算机图形学在游戏设计中的应用
- 分开奇数和偶数(C语言实现)
- 数码管显示倒计时c语言程序,第32节:数码管中的倒计时程序
- 伦敦国王学院EEM专业介绍
- 数据库原理与应用(Oracle) 笔记1 —— SQL语句和SQL函数
- 搞懂异地多活,看这篇就够了
- 1.1.3 数组——x的平方(Leetcode 69)
- vue 界面在苹果手机上滑动点击事件等卡顿解决方案