从Nginx过滤打印user-agent为clb-healthcheck的日志聊聊Nginx的日志自定义打印

💡 原文中文,约3200字,阅读约需8分钟。
📝

内容提要

介绍如何通过Nginx配置过滤健康检查日志,以及基于不同条件进行日志过滤,包括基于域名、HTTP状态码、URI等。同时,介绍了Nginx内置变量的使用方法,以更加灵活地控制Nginx日志的输出。

🎯

关键要点

  • 南北流量链路通常从云的LB到Nginx集群,开启健康检查会产生大量健康检查日志。
  • 可以通过Nginx配置过滤健康检查日志,特征是用户代理(ua)为clb-healthcheck。
  • 使用map指令声明规则,通过0和1表示是否匹配,access_log中通过if判断应用规则。
  • Nginx内置变量支持灵活定义,常用变量包括$host、$uri、$status等。
  • 基于域名的规则可以过滤特定域名的日志。
  • 基于HTTP状态码的规则可以过滤特定状态码的日志,如502、503、404。
  • 基于指定URI的规则可以过滤特定URI的日志,支持正则表达式。
  • 可以基于多个条件进行日志过滤,使用map和if结合配置。
  • 示例中展示了如何结合用户代理和cookie进行多条件过滤。
➡️

继续阅读