========================================
F5的健康检查机制
摘自:https://www.cnblogs.com/dsl146/p/10471158.html
========================================
从F5的技术白皮书上初略理解到:http monitor可以通过检测某个服务目录,从而从得到的结果中匹配相关的字符串。
比如下面的monitor:
b monitor http_mo1 list
monitor http_mo1 {
defaults from http
recv "nameof"
send "GET /services/message/message.html HTTP/1.1
Connection: Close
Host:
”
}
F5去GET /services/message/message.html这个页面,然后用"nameof"去匹配这个页面的内容,如果能查到就说明检测成功;否则失败。
举例:
后端有5台服务器,每个服务器上跑着8个应用,使用F5做应用负载调度。这40个应用里面,3-10个应用在高峰期的时候weblogic的DOS窗口显示与数据库断开连接(端口通、业务断),但是F5认为此服务器窗口的端口还是通着的。对于F5负载均衡来说,检测此服务端口还是通者的,F5认为应用好着呢(其实已经断开了)。由于F5pool是轮询机制,发现有个端口是"休息"着的。就会把后续的业务都分配此端口上,进而导致越来越多的人访问都分配找这个F5认为很"清闲"的端口(其实已经坏了)上。说白了就是F5的pool的健康监测不够完美,监测不够精确导致的。如何解决呢?
思路:通过获取需要检查页面的地址,得到页面的内容,然后通过特定的词汇来匹配你获取的内容,有就通过,没有就不通过。
web登陆F5---Local Traffic---Monitors---"自定义的检查策略"
总结:做F5的http的monitor时需要关注GET的格式,即服务目录后面要添加"HTTP/1.1
Connection: Close
Host:
"。否则有可能监控失败,具体为什么必须添加这些目前不清楚。