========================================
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\r\nConnection: Close\r\nHost: \r\n\r\n」
}
F5去GET /services/message/message.html這個頁面,而後用"nameof"去匹配這個頁面的內容,若是能查到就說明檢測成功;不然失敗。html
舉例:
後端有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\r\nConnection: Close\r\nHost: \r\n\r\n"。不然有可能監控失敗,具體爲何必須添加這些目前不清楚。web