在使用nginx记录访问日志时,发现在含有request_bodyPUT,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...)完美解决方案相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. python nginx日志分析_Nginx日志分析及脚本编写

    在我们日常的运维中,当Nginx服务器正常运行后,我们会经常密切关注Nginx访问日志的相关情况,发现有异常的日志信息需要进行及时处理. 那今天我将跟大家一起来研究和分析Nginx日志,nginx默认 ...

  8. 【临实战】使用 Python 处理 Nginx 日志

    有什么 有 14 台机器(意味着我们有 14 份日志) 一台可以连到这 14 太机器的机器(有Python 2.6) 要做什么 获取 14 台机器上某时间段内的包含某特征的日志,再取出其中的特定内容 ...

  9. 九爷带你了解 nginx 日志配置指令详解

    nginx日志配置指令详解 日志对于统计排错来说非常有利的. 本文总结了nginx日志相关的配置如 access_log.log_format.open_log_file_cache.log_not_ ...

  10. nginx 日志切割

    nginx根据日期记录日志 (2017-03-23 10:38:20)转载▼ 标签: nginx 日志 根据日期记录日志 linux 分类: nginx 在ngixn.cnf中当前项目server模块 ...

最新文章

  1. nodejs之express -- 1
  2. [转载]我看到的最好的解释AngularJs中Factory和Service和Provide不同
  3. python输入123输出321_C语言编程:输出一个3位整数的逆序数,如输入123,输出321....
  4. 高并发编程-线程通信_使用wait和notify进行线程间的通信2_多生产者多消费者导致程序假死原因分析
  5. VTK修炼之道15:图像处理_显示(vtkImageViewer2 vtkImageActor)
  6. asp.net拦截器
  7. Mysql ---Sqlserver数据迁移到Mysql(Mysql建表迁移数据)
  8. 深入理解java虚拟机 - jvm高级特性与最佳实践(第三版)_JVM虚拟机面试指南:年薪30W以上高薪岗位需求的JVM,你必须要懂!...
  9. 基于51单片机的计算器
  10. nuxt.js实战之window和document对象的使用
  11. iOS 新浪微博-5.3 首页微博列表_集成图片浏览器
  12. 排序 不用order by_Sort Techniques:介绍九种排序算法
  13. 计算机图形学在游戏设计中的应用
  14. 分开奇数和偶数(C语言实现)
  15. 数码管显示倒计时c语言程序,第32节:数码管中的倒计时程序
  16. 伦敦国王学院EEM专业介绍
  17. 数据库原理与应用(Oracle) 笔记1 —— SQL语句和SQL函数
  18. 搞懂异地多活,看这篇就够了
  19. 1.1.3 数组——x的平方(Leetcode 69)
  20. vue 界面在苹果手机上滑动点击事件等卡顿解决方案

热门文章

  1. Flutter——打包Windows桌面应用(流程)
  2. windows 系统清理工具
  3. 计算机一直黑屏,win7系统显示器黑屏但电脑一直在运行如何解决
  4. 白蛇传 冯梦龙 警世通言
  5. Md5码的生成及变种Md5码的生成
  6. 前端使用xlsx-js-style导出Excel文件并修饰单元格样式
  7. 深入Java虚拟机(五)垃圾收集
  8. 在线算法 离线算法
  9. requests使用cookie模拟登陆豆瓣
  10. Nginx架构四之七层负载均衡