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;或者健康檢查的日志配置到單獨的檔案
}
優勢:健康檢查日志可以随意配置,且不會損失健康檢查的特性。