一. 场景:
首先,我们需要明白 log的重要性。服务的log,将是我们分析用户行为的不可缺少的一个核心组件;通过log我们可以获取用户的访问量,qps,rt,pv,状态,通过log进行相应的监控,故障排除,追踪,定位等。
nginx log的配置方式,相信做过运维的同学都使用过,曾经的本人也认为是一个随手就能搞定的事儿。然而,当我们的nginx项目几十上百,甚至更多;不同的业务都有不同的配置需求/方式;对每个业务的log都需要接入log采集分析系统的情况下,就不再是一个随手的问题了。我们的nginx日志将面向运维、开发、安全等服务,所以确定规范非常必要,协同的前提是我们首先有“原则”,否则将会发生信息不对称,造成冲突。同时,我们还要考虑相关敏感问题。
定以后的规范如下:
log_format main '$time_local|$hostname|$remote_addr|$upstream_addr|$request_time|$upstream_response_time|$upstream_connect_time|'
'$status|$upstream_status|-|$bytes_sent|-|-|$remote_user|$request|$http_user_agent|$http_referer|'
'$scheme|$request_method|$request_trace_id|$request_trace_seq|'
'$http_x_forwarded_for|$http_Authorization';
定义说明:
1. 因为需求对log进行采集,匹配分析,为了更好的解析,采用了管道符"|" 作为每个字段的分隔符(相关操作可参看ELK stack中的logstash配置)。
2. 每个域所包含的字段

最低0.47元/天 解锁文章
942

被折叠的 条评论
为什么被折叠?



