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;或者健康检查的日志配置到单独的文件 } |
优势:健康检查日志可以随意配置,且不会损失健康检查的特性。
时间: 2024-11-27 02:26:19