配置nginx只打印延迟超过0.1s和非2XX的accesslog

背景

当业务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/610622/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球