什麼是 WebSphere 健康管理?
已發表: 2015-02-14了解 IBM WebSphere Application Server 中的健康管理以及如何創建健康策略。
什麼是健康管理?
健康管理是 WebSphere Virtual Enterprise environment的一部分,它集成到 WebSphere Application Server 8.5 中。
WebSphere 8.5 與利用健康策略的操作策略集成。
健康管理是一種策略驅動的方法,用於監視 WebSphere 企業應用程序服務器的使用情況,並能夠在中斷發生之前對問題區域做出響應。
健康管理有兩個要素:
- 健康控制器
- 衛生政策
什麼是反應模式?
健康策略包括您想要在您的環境中監控的健康狀況。 當您定義的要求未得到滿足時,它會做出反應。
有兩種反應模式。
- 自動模式:系統將在檢測到違反健康策略時採取措施。
例如,如果您配置監控內存使用情況並希望在消息使用率為 85% 時重新啟動 JVM,那麼系統將在 JVM 堆大小達到 85% 時重新啟動目標 JVM。
- 監督模式:系統將在檢測到健康策略違規時創建運行時任務。 這需要 WebSphere 管理員手動干預來批准或拒絕運行時任務操作。
什麼是健康狀況?
Health Condition 是您要監控環境的對像或指標。
WebSphere 8.5 中有八種預定義的健康狀況可用。 您確實可以選擇創建自定義健康狀況。
- 基於年齡的條件 - 此條件將監控定義的 JVM 並在達到配置的年齡閾值時採取行動。
前任:
如果 JVM 運行 15 天,您可以配置此條件以重新啟動它。 對於這種情況,可接受的值以天或小時為單位,如下所示。
- Excessive request timeout condition – 當請求超時百分比超過定義的值時,此條件將採取行動。 可接受的值是百分比,如下所示。
- 響應時間過長的情況——這將監控請求完成所需的時間,如果時間超過定義的閾值則採取行動。
前任:
您可以將此條件配置為在請求的響應時間為一分鐘時進行線程轉儲。 可接受的值以毫秒、秒和分鐘為單位,如下所示。
- 內存情況:內存使用過多——監控JVM的內存使用情況,如果超過閾值就採取行動。
前任:
您可以將此條件配置為在內存使用量超過閾值時進行 JVM 堆轉儲並重新啟動 JVM。 JVM 堆大小的可接受值是百分比和違規週期(以秒和分鐘為單位),如下所示。
- 內存情況:內存洩漏——這將在 JVM 上查找內存洩漏並採取措施。
這得到了三個檢測級別。
- 快速(誤報)
- 標準(一些誤報)
- 慢(更少的誤報)
- Storm Drain條件——監控平均響應時間的顯著下降,並採取措施,如生成線程轉儲和重新啟動 JVM。

這有兩個檢測級別。
- 標準(一些誤報)
- 慢(更少的誤報)
- 工作負載條件——一旦 JVM 處理了配置數量的請求,就會檢測到此條件。
前任:
您可以配置為在處理 20000000 個請求後重新啟動 JVM。
- 垃圾收集百分比條件 - 此監控在定義的時間段內用於垃圾收集的時間百分比,一旦超過閾值就採取行動。 可接受的值是百分比和採樣週期,如下所示。
什麼是健康行動?
健康操作是一旦超過配置的閾值就運行的健康策略操作。
WebSphere 8.5 中有七種預定義的健康操作可用。
- Restart Server - 重啟 JVM
- Take thread dumps – 獲取 JVM 的線程轉儲
- Take JVM heap dumps – 獲取 JVM 堆轉儲
- 生成 SNMP 陷阱 - 生成 SNMP 陷阱以進行故障排除
- 將服務器置於維護模式 - 停止新的客戶端請求並僅提供活動會話
- 將服務器置於維護模式並打破親和性——停止新的和現有的操作會話
- 退出維護模式——準備好接受新的請求
您確實可以選擇創建自定義健康操作。
如何制定衛生政策?
可以通過四個簡單的步驟創建健康政策。
- 定義健康策略常規屬性 - 在此處提供策略名稱並選擇健康狀況
- 定義健康政策健康狀況屬性 - 在此處提供選擇的健康狀況閾值並配置健康狀況違反時要採取的必要措施
- 指定要監控的成員 - 選擇 JVM、集群、動態集群、按需路由器或單元作為健康策略的目標
- 確認健康策略創建 - 查看健康策略配置並確認創建
讓我們創建一個健康政策,如下所示。
- 登錄 WebSphere 8.5 ND DMGR 控制台
- 點擊運營政策>>健康政策
- 點擊新建
- 提供名稱 - Test_Policy
- 選擇 Health condition 作為工作負載條件(我們可以快速測試這個條件)
- 點擊下一步
- 輸入 Total requests 作為 1000 用於測試目的
- 選擇反應模式為自動
- 添加操作重新啟動服務器並進行線程轉儲
- 點擊下一步
- 選擇作為服務器/節點過濾
- 將 server1 添加為目標成員
- 點擊下一步
- 查看配置並單擊完成
現在,讓我們通過訪問在目標 JVM (server1) 上運行的應用程序進行測試。
一旦 JVM 處理 1000 個請求,它應該進行線程轉儲並重新啟動。 您可以使用 JMeter 來加載負載,以便快速完成測試。
什麼是健康控制器?
健康控制器控制健康策略並監控系統。 必須在 Health Controller 中啟用健康監控才能監控策略。
健康控制器本身俱有可配置的屬性,例如它應該多久運行一次,有時需要重新啟動服務器。
這允許您在業務高峰時段限制重新啟動服務器。
什麼是衛生政策目標?
健康策略或操作目標可以是 JVM、集群、動態集群、按需路由器或單元。
我希望這有助於更好地理解。 如果您對學習 DevOps 感興趣,請查看此基礎課程。