nginx(四十六)log阶段log模块学习

一  ngx_http_log_module

说明:这是'nginx' 11个阶段的'最后'一个阶段

理想: nginx如果能记录最终'匹配的location'和'server_name'就好了

现实的情况: 往往需要根据'Host'头、$proxy_pass、$request '综合'判断 -->由于'内部重定向'

 nginx何时记录日志 

①   access_log

1)path  了解

nginx syslog记录日志

语法:access_log syslog:server=address[,parameter=value] [format];

特点:可以将nginx日志'直接传输'到logstash中而'不落盘',但是这种方法传输的日志'不可靠',并且会对nginx产生'性能'影响,可以在'测试'的时候使用

2)buffer和gzip  了解

细节点: 打开gzip的时候,默认已经'开启'buffer了

3)if  掌握

②   log_format

1)日志'格式'应该使用'哪些'变量才能帮助'运维人员快速定位'问题 -->'运维'

2)日志格式'包含哪些信息'来方便我们'提取有效'信息进行全局分析 -->'反馈'

1)默认的日志格式 

2)细节阶段

1)default定义'普通的文本'格式转义字符的处理规则  -->体会'default'和'json'转义规则的不同

2)json定义了 'json 格式字符串(单双引号)'中一些'非法字符的转义'规则 --> '1.11.8版本引入'

escape=json '{"realip":"$remote_addr","@timestamp":"$time_iso8601"}'; -->'外围单引号'

场景: nginx日志json化,方便在'es'中生成方便'检索的索引'

3) 日志格式'隐私'问题-->Cookie包含很多'隐私key和value',之记录通用能'识别用户身份'的即可

4)建议变量'使用' --> [$varable]的形式

5)关于'日志使用哪些变量'帮助我们'快速'判断问题,后续讲解

3) 日志显示l乱码(16进制)

json url中文编码

nginx没有开启ssl导致日志是16进制的

1)在nginx'没有开启ssl支持'的情况下,nginx将https连接建立过程中的'客户端hello报文'当作http报文处理

2)暴力的'截取'了报文中指定位置的十六进制字符串当作了$request的http请求方法、URL和版本号

3)所以access日志中会出现'十六进制'字符串

非法转义的处理

③   open_log_file_cache  了解

之前写的比较烂日志相关的博客

Logging to syslog

二   补充

①  debug_connection

官方debug级别日志

②   log_not_found

忽略favicon.ico日志 

③  log_subrequest 重要

④  limit_conn_log_level  limit_req_log_level

⑤  rewrite_log

access.log日志设计哪些变量加块排错进读

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值