跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Linux Enterprise High Availability Extension 文件 / 管理指南 / 組態和管理 / 監控叢集
適用範圍 SUSE Linux Enterprise High Availability Extension 15 SP5

11 監控叢集

本章介紹如何監控叢集的健康情況以及檢視其歷程。

11.1 監控叢集狀態

Hawk2 提供不同的螢幕來監控單個叢集和多個叢集:狀態儀表板螢幕。

11.1.1 監控單個叢集

若要監控單個叢集,請使用狀態螢幕。當您登入 Hawk2 後,預設會顯示狀態螢幕。右上角的圖示可讓使用者一目了然地獲悉叢集狀態。如需更多詳細資料,請查看以下類別:

錯誤

如果發生了錯誤,會顯示在頁面頂部。

資源

顯示設定的資源,包括它們的狀態名稱 (ID)、位置 (執行資源的節點) 和資源代理程式類型。在操作欄中,您可以啟動或停止資源,觸發多個動作或檢視詳細資料。可以觸發的動作包括:將資源設定為維護模式 (或移除維護模式)、將其移轉到其他節點、清理資源、顯示任何最近的事件,或編輯資源。

節點

顯示您所登入的叢集站點名下的節點,包括節點狀態名稱。在維護待命欄中,您可以為節點設定或移除 maintenancestandby 旗標。操作列可用於檢視節點的最近事件或其他詳細資料:例如,檢視是否為相應節點設定了 standbyutilizationmaintenance 屬性。

票證

僅當已設定了票證的情況下才顯示 (用於與 Geo 叢集配合使用)。

Hawk2 - 叢集狀態
圖 11.1︰ Hawk2 - 叢集狀態

11.1.2 監控多個叢集

若要監控多個叢集,請使用 Hawk2 儀表板儀表板螢幕中顯示的叢集資訊儲存在伺服器一端。叢集節點之間會同步這些資訊 (如果已設定叢集節點之間的無密碼 SSH 存取權限)。如需詳細資料,請參閱第 D.2 節 「設定無密碼 SSH 帳戶」。不過,執行 Hawk2 的機器甚至不需要屬於任何叢集也可實現該目的,它可以是不相關的獨立系統。

除了一般的 Hawk2 要求之外,還需要符合以下先決條件才能使用 Hawk2 監控多個叢集:

先決條件
  • 要透過 Hawk5 儀表板監控的所有叢集都必須執行 SUSE Linux Enterprise High Availability Extension 15 SP5。

  • 如果您之前未在每個叢集節點上用自己的證書 (或官方證書管理中心簽署的證書) 取代 Hawk2 的自行簽署證書,請執行以下操作:在每個叢集的每個節點上至少登入 Hawk2 一次。驗證證書 (或在瀏覽器中新增一個例外以使警告不再顯示)。否則,Hawk2 將無法連接到叢集。

程序 11.1︰ 使用儀表板監控多個叢集
  1. 登入 Hawk2:

    https://HAWKSERVER:7630/
  2. 從左側導覽列中,選取監控 › 儀表板

    Hawk2 會顯示目前叢集站點的資源和節點綜覽。此外,它還會顯示已設定為與 Geo 叢集配合使用的所有票證。如需有關此檢視中所用圖示的資訊,請按一下圖例。若要搜尋資源 ID,請在搜尋文字方塊中輸入名稱 (ID)。若只想顯示特定節點,請按一下過濾器圖示,並選取一個過濾選項。

    包含一個叢集站點 (amsterdam) 的 Hawk2 儀表板
    圖 11.2︰ 包含一個叢集站點 (amsterdam) 的 Hawk2 儀表板
  3. 若要為多個叢集新增儀表板:

    1. 按一下新增叢集

    2. 輸入用於在儀表板中識別該叢集的叢集名稱。例如 berlin

    3. 輸入第二個叢集中某個節點的完全合格的主機名稱。例如 charlie

      Image
    4. 按一下新增。Hawk2 會為新增的叢集站點顯示另一個索引標籤,提供該叢集站點的節點和資源綜覽。

      注意
      注意:連接錯誤

      如果系統提示您輸入密碼來登入此節點,則表明您可能未連接到此節點,且未取代自行簽署的證書。在此情況下,即使輸入了密碼,連接也將失敗,並顯示以下訊息:Error connecting to server. Retrying every 5 seconds... '

      若要繼續,請參閱取代自行簽署的證書

  4. 若要檢視叢集站點的更多詳細資料或管理叢集站點,請切換到站點的索引標籤並按一下鎖鏈圖示。

    Hawk2 會在新的瀏覽器視窗或索引標籤中開啟此站點的狀態檢視。在此檢視中,您可以管理 Geo 叢集的這部分內容。

  5. 若要從儀表板中移除某個叢集,請按一下該叢集詳細資料右側的 x 圖示。

11.2 驗證叢集健康情況

您可以使用 Hawk2 或 crmsh 來檢查叢集的健康情況。

11.2.1 使用 Hawk2 驗證叢集健康情況

Hawk2 提供了一個精靈用來檢查和偵測叢集存在的問題。分析完成後,Hawk2 會建立包含更多詳細資料的叢集報告。若要驗證叢集健康情況並產生報告,Hawk2 需要具有在節點之間進行無密碼 SSH 存取的權限。否則,它只能從目前的節點收集資料。如果您已使用 crm 外圍程序提供的開機程序檔設定叢集,那麼此時已設定好無密碼 SSH 存取權。如果您需要手動設定,請參閱第 D.2 節 「設定無密碼 SSH 帳戶」

  1. 登入 Hawk2:

    https://HAWKSERVER:7630/
  2. 從左側導覽列中,選取組態 › 精靈

  3. 展開基本類別。

  4. 選取驗證健康情況和組態精靈。

  5. 按一下驗證進行確認。

  6. 輸入叢集的 root 密碼,然後按一下套用。Hawk2 會產生報告。

11.2.2 使用 crmsh 檢查健康狀態

您可以使用所謂的程序檔顯示叢集或節點的健康狀態。程序檔可以執行各種不同的任務,並不局限於顯示健康情況。不過,本小節將重點介紹如何獲得健康狀態資訊。

若要獲得 health 指令的所有詳細資料,請使用 describe

# crm script describe health

該指令會顯示一則描述和所有參數及其預設值的清單。若要執行程序檔,請使用 run

# crm script run health

如果您希望只執行整套指令中的一個步驟,可以使用 describe 指令列出 Steps 類別中的所有可用步驟。

例如,以下指令會執行 health 指令的第一個步驟。輸出會儲存在 health.json 檔案中以供進一步調查:

# crm script run health statefile='health.json'

您也可以使用 crm cluster health 執行以上指令。

如需程序檔的其他資訊,請參閱 http://crmsh.github.io/scripts/

11.3 檢視叢集歷程

Hawk2 提供了以下用於檢視叢集過往事件 (依不同的層級和不同的詳細程度) 的功能:

您也可以使用 crmsh 檢視叢集歷程資訊:

11.3.1 檢視節點或資源的最近事件

  1. 登入 Hawk2:

    https://HAWKSERVER:7630/
  2. 從左側導覽列中,選取監控 › 狀態。它會列出資源節點

  3. 若要檢視資源的最近事件:

    1. 按一下資源並選取相應的資源。

    2. 在資源的操作欄中按一下向下箭頭按鈕,然後選取最近的事件

      Hawk2 會開啟一個新視窗,並顯示最近事件的表格檢視窗。

  4. 若要檢視節點的最近事件:

    1. 按一下節點並選取相應的節點。

    2. 在節點的操作欄中,選取最近的事件

      Hawk2 會開啟一個新視窗,並顯示最近事件的表格檢視窗。

      Image

11.3.2 使用歷程總管產生叢集報告

從左側導覽列中,選取疑難排解 › 歷程,以存取歷程總管歷程總管可讓您建立詳細的叢集報告並檢視轉換資訊。它提供以下選項:

產生

建立特定時間內的叢集報告。Hawk2 會呼叫 crm report 指令來產生報告。

上傳

可讓您上傳直接使用 crm 外圍程序建立的或位於不同叢集上的 crm report 歸檔。

產生或上傳報告後,它們會顯示在報告下方。在報告清單中,您可以顯示報告的詳細資料,或者下載或刪除報告。

Hawk2 - 歷程總管主要檢視
圖 11.3︰ Hawk2 - 歷程總管主要檢視
程序 11.2︰ 產生或上傳叢集報告
  1. 登入 Hawk2:

    https://HAWKSERVER:7630/
  2. 從左側導覽列中,選取疑難排解 › 歷程

    歷程總管螢幕會在產生檢視窗中開啟。依預設,報告的建議時間範圍為過去 1 小時。

  3. 若要建立叢集報告:

    1. 若要立即啟動報告,請按一下產生

    2. 若要修改報告的時間範圍,請按一下建議時間範圍的任意位置並從下拉方塊中選取另一個選項。您還可以分別輸入自訂的開始日期、結束日期及小時。若要啟動報告,請按一下產生

      報告產生後會顯示在報告下方。

  4. 若要上傳叢集報告,crm report 歸檔必須位於您可透過 Hawk2 存取的檔案系統中。請執行下列步驟:

    1. 切換到上傳索引標籤。

    2. 瀏覽叢集報告歸檔並按一下上傳

      報告上傳後會顯示在報告下方。

  5. 若要下載或刪除報告,請在操作欄中按一下報告旁邊的相應圖示。

  6. 若要檢視歷程總管中的報告詳細資料,請按一下報告的名稱,或從操作欄中選取顯示

    Image
  7. 按一下報告按鈕返回到報告清單。

歷程總管中的報告詳細資料
  • 報告的名稱。

  • 報告的開始時間。

  • 報告的結束時間。

  • 報告所涵蓋的叢集中的轉換次數以及所有轉換的時間線。若要瞭解如何檢視轉換的更多詳細資料,請參閱第 11.3.3 節

  • 節點事件。

  • 資源事件。

11.3.3 在歷程總管中檢視轉換詳細資料

對於每個轉換,叢集都會儲存其所提供的狀態副本,做為對 pacemaker-schedulerd 的輸入。系統會記錄此歸檔的路徑。所有 pe-* 檔案都在指定協調器 (DC) 上產生。由於叢集中的 DC 可能會更換,因此可能存在來自多個節點的 pe-* 檔案。所有 pe-* 檔案都是儲存的 CIB 快照,pacemaker-schedulerd 在執行計算時會將其用做輸入。

在 Hawk2 中,您可以顯示每個 pe-* 檔案的名稱、建立時間以及每個檔案是在哪個節點上建立的。歷程總管可以根據相應的 pe-* 檔案直觀顯示以下詳細資料:

歷程總管中的轉換詳細資料
詳細資料

顯示屬於轉換的記錄資料片段。顯示以下指令的輸出 (包括資源代理程式的記錄訊息):

crm history transition peinput
組態

顯示建立 pe-* 檔案時的叢集組態。

差異

顯示所選 pe-* 檔案與下一個檔案之間的組態和狀態差異。

記錄

顯示屬於轉換的記錄資料片段。顯示以下指令的輸出:

crm history transition log peinput

這包括來自以下精靈的詳細資料:pacemaker-controldpacemaker-schedulerdpacemaker-execd

圖形

顯示轉換的圖形表示。如果您按一下圖形,則會模擬計算 (與 pacemaker-schedulerd 執行的計算完全一樣),並產生圖形視覺效果。

程序 11.3︰ 檢視轉換詳細資料
  1. 登入 Hawk2:

    https://HAWKSERVER:7630/
  2. 從左側導覽列中,選取疑難排解 › 歷程

    如果報告已產生或上傳,它們會顯示在報告清單中。否則,請依程序 11.2 所述產生或上傳報告。

  3. 按一下報告的名稱或從操作欄中選取顯示以開啟歷程總管中的報告詳細資料

  4. 若要存取轉換詳細資料,您需要在下面顯示的轉換時間線中選取一個轉換點。使用上一個下一個以及放大縮小圖示尋找您感興趣的轉換。

  5. 若要顯示 pe-input* 的名稱、建立時間以及檔案是在哪個節點是建立的,請將滑鼠指標懸停在時間線的轉換點上。

  6. 若要檢視歷程總管中的轉換詳細資料,請按一下要瞭解其詳細資訊的轉換點。

  7. 若要顯示詳細資料組態差異記錄圖形,請按一下相應的按鈕以顯示歷程總管中的轉換詳細資料中所述的內容。

  8. 若要返回報告清單,請按一下報告按鈕。

11.3.4 使用 crmsh 擷取歷程資訊

調查叢集歷程是一項複雜的任務。為了簡化此項任務,crmsh 提供了 history 指令及其子指令。假設 SSH 已正確設定。

每個叢集會移動狀態、移轉資源或啟動重要的程序。所有這些動作的相關資訊都可透過 history 子指令擷取。

依預設,所有 history 指令顯示的都是最近一小時內發生的事件。若要變更此時間範圍,請使用 limit 子指令。語法是:

# crm history
crm(live)history# limit FROM_TIME [TO_TIME]

以下是一些有效的範例:

limit 4:00pm , limit 16:00

這兩個指令的含意相同,都是指當天下午 4:00。

limit 2012/01/12 6pm

2012 年 1 月 12 日下午 6:00

limit "Sun 5 20:46"

本年本月第 5 個週日下午 8:46

如需更多範例以及如何建立時間範圍的資訊,請參閱 http://labix.org/python-dateutil

info 子指令可顯示 crm report 涉及的所有參數︰

crm(live)history# info
Source: live
Period: 2012-01-12 14:10:56 - end
Nodes: alice
Groups:
Resources:

若要只對 crm report 使用特定參數,請透過 help 子指令檢視可用的選項。

若要限定詳細程度,請使用 detail 子指令,同時指定一個層級:

crm(live)history# detail 1

數字越大,報告就越詳細。預設值為 0 (零)。

設定上述參數後,請使用 log 顯示記錄訊息。

若要顯示上次轉換,請使用以下指令:

crm(live)history# transition -1
INFO: fetching new logs, please wait ...

此指令會擷取記錄,並執行 dotty (從 graphviz 套件) 以顯示轉換圖表。該外圍程序會開啟您使用 游標鍵瀏覽的記錄檔案。

如果您不想要開啟轉換圖表,請使用 nograph 選項:

crm(live)history# transition -1 nograph

11.4 使用 SysInfo 資源代理程式監控系統健康情況

為了避免發生節點因用完磁碟空間而無法管理指定給它的任何資源的情況,High Availability Extension 提供了資源代理程式 ocf:pacemaker:SysInfo。使用該代理程式可以監控節點磁碟分割區的健康情況。SysInfo 資源代理程式會建立名為 #health_disk 的節點屬性,如果任何受監控磁碟的可用空間低於指定限額,該屬性就會設定為 red

若要定義當節點健康情況達到嚴重狀況時 CRM 應如何應對,可使用全域叢集選項 node-health-strategy

程序 11.4︰ 設定系統健康情況監控

若要在節點用完磁碟空間時將資源從該節點中移走,請執行以下步驟:

  1. 設定 ocf:pacemaker:SysInfo 資源:

    primitive sysinfo ocf:pacemaker:SysInfo \
         params disks="/tmp /var"1 min_disk_free="100M"2 disk_unit="M"3 \
         op monitor interval="15s"

    1

    要監控的磁碟分割區。例如,/tmp/usr/var/dev。若要指定多個分割區做為屬性值,請用空格分隔這些分割區。

    注意
    注意:系統永遠會監控 / 檔案系統

    您無需在 disks 中指定根分割區 (/)。預設總是會對其進行監控。

    2

    這些分割區需要的最小可用磁碟空間。(選擇性) 您可以指定用於度量的單位 (在上方的範例中使用的是 M,表示百萬位元組)。如果未指定,min_disk_free 預設會使用 disk_unit 參數中定義的單位。

    3

    用於報告磁碟空間的單位。

  2. 為完成資源組態設定,建立一個 ocf:pacemaker:SysInfo 複製品並在叢集的每個節點上將其啟動。

  3. node-health-strategy 設定為 migrate-on-red

    property node-health-strategy="migrate-on-red"

    如果 #health_disk 屬性設定為 redpacemaker-schedulerd 會為該節點的資源分數加 -INF。這樣所有資源都會從此節點移出。STONITH 資源將是最後一個停止的資源,但即使 STONITH 資源不再執行,節點仍可處於圍籬區隔模式。圍籬區隔的節點可以直接存取 CIB 並將繼續工作。

在節點的系統健康情況變成 red 之後,解決導致問題發生的根源。然後清除 red 狀態,讓節點再次具備執行資源的資格。登入叢集節點,並使用下列其中一種方法:

  • 執行下列指令:

    # crm node status-attr NODE delete #health_disk
  • 在該節點上重新啟動叢集服務。

  • 將節點重新開機。

節點將恢復正常狀態,並且可以重新執行資源。