一、综述
1、nginx作为用户请求的代理层,日志格式我们要求严格统一,针对log_format。
2、宁愿牺牲一点性能我们也要要求信息充裕,便于排查问题。
3、nginx日志的价值在于:
1)流量监控等系统监控
2)用户行为分析
3)业务监控等;最终便于我们分析流量、用户行为、调用链、容量预留评估等等。
4、数据源范围:
1)所有的项目(upstream组)都应该打印日志。
2)无论内外网代理,都应该遵循1)进行日志输出。
3)日志格式的调整,需要push给多个业务组。
5、即日起,我们的nginx日志将面向业务开发组、运维组、BI组、大数据组、安全组服务,所以确定规范非常必要,协同的前提是我们首先有“原则”,否则将会发生信息不对称,造成冲突。
6、nginx日志,通过flume收集到kafka、hdfs中。历史日志数据将会转存在hdfs中(每天roll的日志文件),实施数据(通过tail)将会转存在kafka中。
7、格式规范:
7、格式规范:
规范描述:
1) nginx日志格式与ELB在含义上逐字段对应,我觉得ELB日志格式还是比较规范。
2) 日志中增加了“_”业务域特殊分隔符,通过“_”对信息进行split,将分三个域,第一个域:关于请求的基本信息,面向运维操作;第二个域:有关请求追踪;第三个域:有关业务信息,比如cookie、auth等
3) 每个域所包含的字段列表不同,使用日志的开发团队所关注的域也不同;我们确保增加Field时,尽可能在当前域的后面增加;对于使用日志的开发者而言,调整的代码量也是比较小的。比如追踪系统,通常只关注第二个域,那么在第二个域中增减字段,不会影响其他域中Field的相对位置。
Ngnix主机配置flume,接入ELK步骤和注意事项:
1.安装flume(使用vipkid公司统一版本安装[运维工单安装])
2.修改/opt/flume/conf/flume-conf.properties配置文件 .(agent.sources.src-taildir.filegroups.default-fg、对应的sink主机IP)
注意:文件路径为全路径且文件路径不能为软链
3.Nginx的日志名规范(1.不能带点[.])
如www.vipkid.com.cn,可命名为www.log,如api.parent.sayabc.com可命名为api_parent_sayabc.log
4.nginx的日志格式遵循以上log_format
5.启动flume。/opt/flume/bin/run.sh start agent