背景
当业务accesslog全开时,写入es的qps达到了10W,评估后觉得不太值得,所以考虑抽样打印。查看相关文档后发现目前我们使用的nginx版本不支持抽样打印,所以考虑其他解决方案。经过分析,其实我们一般排查问题只需要非20X和延迟较高的访问日志,于是设置nginx只打印延迟超过0.1s和非2XX的accesslog。
具体配置
注意:以下以下为全局配置,要放到http配置内,不能放到server配置内
map $upstream_response_time $u_r_t {
default 0;
~(\d+).[1-9][0-9][0-9] 1;
}
map $status $loggable{
default 0;
~^[345] 1;
}
access_log /dev/stdout json buffer=10K if=$u_r_t; #json是前面定义的日志模板名
access_log /dev/stdout json buffer=10K if=$loggable;
Original: https://www.cnblogs.com/ly6161/p/pei-zhinginx-zhi-da-yin-yan-chi-chao-guo01s-he-fei.html
Author: 打个酱油6161
Title: 配置nginx只打印延迟超过0.1s和非2XX的accesslog
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/591766/
转载文章受原作者版权保护。转载请注明原作者出处!