EDAS Agent(以下簡稱為Agent)會定期對容器和應用執行健康檢查,并在控制臺上報告結果。這一過程能夠幫助您監控集群中服務的運行狀況,并協助排查和定位問題。本文介紹如何在EDAS控制臺配置端口和URL的健康檢查。
檢查項
健康檢查分為兩部分:
端口健康檢查:檢查應用進程的相關端口是否成功打開,如果端口可以連接上,則該健康檢查就會成功。因此如果應用正常運行,則端口健康檢查一定是正常,但反之不一定正確,此時就需要進行URL健康檢查。
URL健康檢查:按照固定的時間間隔(間隔為10秒),向應用程序、服務器或其他資源自動提交請求,以驗證其是否可到達、是否可用及功能是否正常,如果該地址HTTP狀態碼返回200則認為健康檢查通過。
說明如果您沒有配置URL,將不會進行健康檢查。
健康檢查流程
您可以配置健康檢查來監控通過IP地址或域名指定的終端節點。EDAS健康檢查按照固定的時間間隔,向應用程序、服務器或其他資源自動提交請求,以驗證其是否可到達、是否可用及功能是否正常。您也可以通過配置健康檢查URL來發出與用戶發出的請求類似的請求,以驗證應用功能的運行狀態。
下圖為健康檢查機制中的檢查流程圖,該圖以每10秒觸發一次健康檢查作為示例。
圖中的(1)和(2)流程的具體說明如下:
檢測應用所在的Ali-Tomcat是否存活。
如果存活,進行第2步檢測。
如果沒有存活,檢測結束,說明健康檢查失敗。
檢測配置的URL是否返回
200
。
健康檢查設置
在ECS集群中,您可以在創建應用過程中設置健康檢查URL,也可以在應用部署完成后在應用設置頁面添加或者修改健康檢查。
登錄EDAS控制臺。
在左側導航欄,單擊 ,在頂部菜單欄選擇地域,并在頁面上方選擇微服務空間,然后在應用列表頁面單擊具體的應用名稱。
在基本信息頁面的應用設置區域,單擊健康檢查右側的修改。
說明只有ECS集群中的應用會顯示健康檢查的設置項。
在修改健康檢查URL對話框設置健康檢查。
端口健康檢查:開啟來檢查應用端口是否能正常訪問。
健康檢查URL:開啟并配置健康檢查URL,監測配置的URL是否返回200,若返回200則說明服務可用。配置示例如下:
一個WAR包應用的默認運行容器是Tomcat,則應用端口默認為
8080
,則健康檢查的URL可以設置為http://127.0.0.1:8080/order/healthCheck.html
。若該WAR包應用配置了容器路徑為根路徑,端口設置為
8081
,WAR包中包含一個可以標識健康狀態的文件healthcheck.html
,則健康檢查URL為http://127.0.0.1:8081/healthcheck.html
。
重要設置URL健康檢查時選取的URL地址需要注意以下幾點:
該地址在應用正常的情況下一定要返回200,應用不正常的時候返回非200。
該地址不要具有影響業務的操作。
該地址響應應該盡量迅速。
該地址最好不要調用其他內部接口,例如請求OSS資源,否則會造成對OSS資源非常大流量的請求。
該地址返回的數據量應當盡量小。
設置完應用健康檢查之后,應用會有不同的顯示狀態。您可在應用基本信息頁面,單擊實例部署信息頁簽,在運行狀態查看應用的健康檢查狀態。
容器退出:在健康檢查的流程圖中,當第1步發現Ali-Tomcat沒有存活時,顯示容器退出狀態。
應用異常:在健康檢查的流程圖中,當第2步發現在3s內您配置的URL返回非200時,顯示應用異常狀態。
運行正常:在健康檢查的流程圖中,如果第1步與第2步均通過,則顯示運行正常狀態。
檢測過程中,如果發現您沒有配置健康檢查URL,此時應用的運行狀態同樣顯示為運行正常,但運行狀態右側會顯示感嘆號,鼠標在嘆號上懸停時會提示:請啟用應用的健康檢查URL,以便更精準的反映應用運行狀態。
Agent異常:在健康檢查的流程圖中,在EDAS Server端,如發現Agent在30秒鐘之內沒有任何狀態的匯報,則顯示Agent異常狀態。
ECS已過期:表示ECS在ECS控制臺已被釋放。
后續操作
您可在應用監控 > 應用詳情頁面,單擊調用鏈查詢,查看調用接口及狀態信息。如狀態異常,請根據日志信息排查相關報錯。更多信息,請參見調用鏈查詢。