異常排查
更新時間 2023-11-09 10:07:02
最近更新時間: 2023-11-09 10:07:02
分享文章
本文匯總了使用彈性負載均衡產品時常見的異常排查類問題。
為什么通過負載均衡無法訪問后端業務?
造成負載均衡無法訪問后端業務的原因有很多,遇到這種問題的時候,我們要學會如何去排查。
- 排查是否可直接訪問后端主機:負載均衡器無法將請求發送到后端主機,可能是因為后端主機當前宕機或不可訪問。可以直接訪問后端主機的IP地址來進行排查,確保后端主機正常運行。
- 排查健康檢查是否正常:如果后端主機未通過健康檢查,則負載均衡器將不會將請求發送到該主機。請確保后端主機在健康檢查中通過,并檢查健康檢查的設置是否正確。
- 排查后端主機配置是否正確:在“后端云主機組”頁面查看已添加的后端主機的參數,云主機權重如果設置為0,則不會向這個主機轉發流量;業務的端口需要與實際的業務端口相同。
- 檢查訪問控制配置是否正確:在監聽器基本信息頁面,查看訪問控制配置是否正確,是否已經放通了客戶端的IP地址。
- 網絡配置問題:可能存在網絡配置問題,導致負載均衡器無法與后端主機建立連接。確保網絡配置正確,并檢查網絡訪問權限、路由表、子網等設置。
- 會話保持配置錯誤:如果應用程序需要會話保持,但會話保持配置有誤,負載均衡器可能會將請求發送到不同的后端主機,導致會話狀態丟失。確保會話保持配置正確,并檢查會話保持策略和負載均衡器的支持。
如何檢查請求的不均衡?
可以通過以下方式檢查請求的均衡:
- 基于輪詢算法:如果某個主機處理的請求數量明顯少于其他云主機,那么可以認為存在請求不均衡的情況。
- 基于權重算法:如果某個主機的權重值過高或過低,可能會導致請求不均衡。
- 基于源IP算法:同一個IP發出的請求都會分發到同一個后端,導致流量不均衡。
- 基于響應時間:如果某個后端的響應時間較長,可能意味著該主機的負載較高或存在性能問題,需要進行調整。
- 基于健康檢查:負載均衡器定期對后端主機進行健康檢查,如果某個主機無法正常響應或處于宕機狀態,負載均衡器將不再將請求分發給該主機,從而避免請求不均衡。
- 基于會話保持:如果開啟會話保持,負載均衡器會將同一個客戶端的請求始終分發到同一個后端主機上,以確保會話的連續性。如果客戶端的數量相對較少,并且會話保持的配置不合理,可能會導致請求不均衡的問題。
如何檢查彈性負載均衡服務不通或異常中斷?
要檢查彈性負載均衡(ELB)服務是否不通或異常中斷,可以采取以下步驟:
- 檢查負載均衡器的狀態:登錄到管理控制臺,檢查負載均衡器的狀態。確保負載均衡器處于運行狀態,沒有錯誤或警告信息。
- 檢查負載均衡器的健康檢查狀態:負載均衡器通常會執行健康檢查來確定后端服務的可用性。檢查負載均衡器的健康檢查狀態,確保后端實例通過了健康檢查,沒有標記為不可用或異常。
- 檢查安全組規則和網絡訪問控制列表(ACL):確保負載均衡器的安全組規則和網絡ACL允許來自客戶端和后端實例的流量通過。如果有必要,可以針對特定的端口和協議進行更詳細的配置。
- 檢查后端實例的狀態:確保后端實例正在運行,并且沒有故障或異常。檢查后端實例的狀態和日志,確保應用程序或服務正常工作。
- 檢查DNS解析:負載均衡器通常使用域名解析將來自客戶端的流量轉發到后端實例。檢查域名解析是否正確配置,并確保有向負載均衡器發出的請求能夠正常解析到正確的IP地址。
- 監控分析:使用云監控服務來監視負載均衡器的性能和資源使用情況。
如何排查ELB的異常返回碼?
常見異常返回碼有400、401、403、500等,這里可以參考下表進行排查處理。
| 狀態碼 | 狀態碼含義 | 可能原因 |
|---|---|---|
| 400 | 錯誤請求 | 客戶端發送的請求格式不符合HTTP規范。 請求的語法可能存在錯誤。 無效的參數或參數不完整 |
| 401 | 未授權 | HTTP40錯誤代表用戶沒有訪問權限,需要進行身份認證。 |
| 403 | 禁止訪問 | 一般是后端主機返回,后端主機攔截了該請求。 |
| 404 | 資源未找到 | 后端主機返回錯誤碼,需排查后端主機業務。 ELB轉發策略配置不正確,未指定到正確的后端主機。 |
| 408 | 請求超時 | 當客戶端向主機發送請求后,主機在規定的時間內沒有響應 |
| 413 | 請求實體過大 | 當因請求的實體過大,超出主機的處理能力,導致主機無法處理請求時就會返回此錯誤代碼。 |
| 414 | URI太長 | 客戶端發送的請求URL或查詢字符串參數過大。 |
| 499 | 客戶端主動斷開連接 | ELB還未將響應信息返回給客戶端,客戶端主動斷開連接。此錯誤碼僅記錄在訪問日志中。 |
| 500 | 主機內部錯誤 | 后端主機返回,為主機內部錯誤。 |
| 501 | 未實現 | ELB服務無法識別此請求。 |
| 502 | 錯誤的網關 | ELB未正確配置后端主機的監聽通信端口。 ELB在嘗試建立連接或向后端服務發送數據時從后端主機收到了TCP RST。 后端主機響應格式錯誤,或者包含無效的HTTP響應頭。? 未正確配置后端主機,例如未正確配置路由、網絡ACL等。 |
| 503 | 服務不可用 | 一般是后端主機返回,表示后端服務不可用。 |
| 504 | 網關超時 | 負載均衡設備或代理服務器無法在設定的超時時間內將請求轉發到可用的上游服務器而引起的。 |
負載均衡請求不均衡,怎樣排查?
- 檢查是否開啟了會話保持。如果配置了會話保持,而客戶端的個數又比較少時,很容易導致不均衡。
- 檢查后端云主機的健康檢查狀態是否正常,特別要關注下是否有健康檢查狀態一會正常一會異常的情況。健康檢查異常或者狀態切換都會導致流量不均衡。
- 檢查負載均衡算法是否是源IP算法。此時同一個IP發過來的請求都會分發到同一個后端,導致流量不均衡。
將云主機添加到ELB后端時是否設置了權重,權重不同,分發的流量也不同。
為什么云監控EIP帶寬使用統計與彈性負載均衡監控的網絡流出速率數據不一致?
以下一些因素可能導致云監控EIP帶寬使用統計與ELB監控的網絡流出速率數據不一致:
- 內網外網訪問:云監控EIP帶寬使用統計通常只包括外網訪問的數據,而彈性負載均衡監控可能同時包括外網和內網訪問的數據。這意味著,如果有內網訪問,彈性負載均衡監控的網絡流出速率數據會比云監控EIP帶寬使用統計更高。
- 限流情況:當流量超過EIP的帶寬限制時,EIP會被限流,而彈性負載均衡內部的訪問不會受到限制。這可能導致彈性負載均衡監控的網絡流出速率數據在超過EIP帶寬時仍然較高,而云監控EIP帶寬使用統計可能受到限流影響而較低。
壓測性能上不去,如何檢測?
- 檢查后端云主機的負載狀態,如果CPU達到100%,可能是后端應用達到性能瓶頸。
- 查看流量是否超過綁定到彈性負載均衡的EIP的帶寬,帶寬超限后,會有大量丟包和請求失敗,影響壓測性能。
- 如果是短連接測試,可能是客戶端端口不足導致建立連接失敗,可以通過客戶端處于time_wait狀態的連接數量來判斷。可通過增加客戶端IP來解決。
- 后端云主機的監聽隊列backlog滿了,導致后端云主機不回復syn_ack報文,使得客戶端連接超時。可以通過調整net.core.somaxconn參數來調大backlog的上限值。
如何檢查彈性負載均衡業務訪問延時大?
通過彈性IP直接訪問云主機,繞過彈性負載均衡進行訪問,以確定訪問延時大的問題是由彈性負載均衡引起的,還是前端網絡問題或后端云主機問題。
檢查后端主機的性能和健康狀態。如果后端主機存在性能問題或負載過高,可能會導致訪問延遲增加。
檢查網絡的帶寬、延遲和丟包率等指標,確保網絡狀況良好。網絡問題可能會導致業務的訪問延遲增加。
如果以上步驟無法解決問題,您可以聯系客服尋求技術支持解決。
負載方式選擇了“源IP算法”,但是同一個IP地址同時出現在了兩臺后端主機上是什么原因?
如果后端主機下線后重新上線,彈性負載均衡會重新進行一致性Hash運算并對后端主機進行編號。這可能導致之前分配給某個主機的IP地址被分配給另一臺云主機,從而出現同一個IP地址同時出現在了兩臺后端主機上的情況。
為什么配置了訪問控制白名單后還能訪問后端主機?
監聽器配置了訪問控制白名單后,僅允許特定IP訪問負載均衡,僅轉發來自所選訪問策略組中設置的IP地址或地址段的請求。但是作為后端主機的云主機,除了作為負載均衡的后端主機接收流量,同時其本身IP地址也可以被其他方式訪問。如果需要對作為后端主機的云主機進行訪問控制,可以通過配置網絡ACL或者安全組規則實現,詳見 網絡ACL的簡介 和 安全組概述。