天天看点

阿里云SLB健康检查的日志特殊处理

slb健康检查的频率比较高,每秒都有好几个。日积月累就带来了大量web service的日志。一来浪费存储空间,二来消耗磁盘性能。除了官方建议的降低健康检查频率外,或许有一些变通的思维

1、如果对http或者tcp转发协议不挑剔,换成tcp转发并不开启http健康检查就ok了。

优势:方便,控制台操作下就好了。

劣势:只是这样也失去了应用层异常的发现能力。

2、为健康检查单独建立一个没有开启日志的virtualhost,通过不同的端口或者hostname,让健康检查请求不会请求到业务host。

优势:web service级别的异常依然能够被健康检查发现。

劣势:virtualhost级别的异常,slb健康检查就无法发现了。

3、利用nginx等web服务器的规则,为健康检查的文件名(uri)做单独的日志配置,以nginx为例:

如下配置,健康检查配置一个业务上无意义的check.html。针对这个文件做的请求,不记录日志。

1

2

3

4

5

location ~ /check.html

        {

              access_log off; #关闭日志

              #access_log  /var/log/nginx/access/health_check.log main;或者健康检查的日志配置到单独的文件

        }

优势:健康检查日志可以随意配置,且不会损失健康检查的特性。

继续阅读