目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキー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)、場所(リソースが実行されているノード)、リソースエージェントのタイプが含まれます。操作列で、リソースを開始または停止するか、いくつかのアクションをトリガーするか、詳細を表示できます。トリガ可能なアクションには、保守モードへのリソースの設定(または保守モードの削除)、リソースの別のノードへの移行、リソースのクリーンアップ、リソースイベントの表示、またはリソースの編集が含まれます。

ノード

ログイン先のクラスタサイトに属するノードが表示されます。ノードの状態および名前が含まれます。保守およびスタンバイ列で、maintenanceまたはstandbyフラグを設定または解除できます。操作列で、ノードの最新イベントや詳細情報を参照できます。たとえば、それぞれのノードにutilizationstandby、またはmaintenanceのどの属性が設定されているかを参照できます。

チケット

Geoクラスタリングでの使用向けにチケットを設定した場合にのみ表示されます。

Hawk2 - クラスタの状態
図 11.1: Hawk2 - クラスタの状態

11.1.2 複数のクラスタの監視

複数のクラスタを監視するには、Hawk2 Dashboard (ダッシュボード)を使用します。ダッシュボード画面に表示されるクラスタ情報は、サーバ側に保管されています。これらは、クラスタノード間で同期が取られています(クラスタノード間にパスワード不要のSSHアクセスが設定されている場合)。詳細については、D.2項 「パスワード不要のSSHアカウントの設定」を参照してください。ただし、Hawk2を実行するマシンは、その目的のためにクラスタの一部である必要はなく、別個の無関係のシステムで構いません。

Hawk2で複数のクラスタを監視するには、一般的なHawk2の要件に加え、次の前提条件も満たす必要があります。

前提条件
  • Hawk2のダッシュボードで監視するすべてのクラスタでは、SUSE Linux Enterprise High Availability Extension 15 SP5を実行している必要があります。

  • すべてのクラスタノードにあるHawk2の自己署名証明書を独自の証明書(または公式認証局によって署名された証明書)で置き換えていない場合は、「すべての」クラスタの「すべての」ノードで、少なくとも1回はHawk2にログインします。証明書を検証します(または、ブラウザで例外を追加して警告をスキップします)。そうしない場合、Hawk2はクラスタに接続できません。

手順 11.1: ダッシュボードを使用した複数クラスタの監視
  1. Hawk2にログインします。

    https://HAWKSERVER:7630/
  2. 左のナビゲーションバーから、監視機能 › ダッシュボードの順に選択します。

    Hawk2は、現在のクラスタサイトのリソースおよびノードに関する概要を表示します。また、Geoクラスタでの使用向けに設定されたチケットを表示します。このビューで使用されているアイコンについての情報が必要な場合は、凡例をクリックします。リソースIDを検索するには、検索テキストボックスに名前(ID)を入力します。特定のノードのみを表示するには、フィルタアイコンをクリックしてフィルタリングオプションを選択します。

    1つのクラスタサイト(amsterdam)を表示するHawk2ダッシュボード
    図 11.2: 1つのクラスタサイト(amsterdam)を表示するHawk2ダッシュボード
  3. 複数のクラスタにダッシュボードを追加するには、以下の操作を行います。

    1. クラスタの追加をクリックします。

    2. ダッシュボードでクラスタを識別するためのクラスタ名をクラスタ名に入力します。例、berlin

    3. いずれかのノードの完全修飾ホスト名を、2つ目のクラスタに入力します。例、charlie

      Image
    4. Add (追加)をクリックします。新たに追加されたクラスタサイトに対して、Hawk2は2つ目のタブにノードやリソースの概要を表示します。

      注記
      注記: 接続エラー

      パスワードを入力してこのノードにログインすることを求めるプロンプトが表示された場合、このノードにはまだ接続したことがなく、自己署名証明書を置き換えていない状態です。そのような場合は、パスワードを入力しても、接続は次のメッセージを表示して失敗します。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. Verify health and configuration (ヘルスと設定の検証)ウィザードを選択します。

  5. 検証を選択して確認します。

  6. クラスタのルートパスワードを入力して、適用をクリックします。Hawk2はレポートを生成します。

11.2.2 crmshを使用したヘルスステータスの取得

クラスタまたはノードのヘルスステータスは、「スクリプト」というもので表示できます。スクリプトは、ヘルスだけに限らず各タスクを実行できます。ただし、このサブセクションでは、ヘルスステータスを取得する方法に焦点を当てます。

healthコマンドに関するすべての詳細を取得するには、describeを使用します。

# crm script describe health

このコマンドは、すべてのパラメータの説明とリスト、およびそのデフォルト値を示します。スクリプトを実行するには、runを使用します。

# crm script run health

スイートから1つのステップのみを実行したい場合は、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. 左のナビゲーションバーから、監視機能 › 状態の順に選択します。Resources (リソース)Nodes (ノード)が一覧表示されます。

  3. リソースの最近のイベントを表示するには

    1. Resources (リソース)をクリックして、それぞれのリソースを選択します。

    2. リソースの操作列で、下矢印ボタンをクリックして最近のイベントを選択します。

      Hawk2では、新しいウィンドウが開き、最新のイベントのテーブルビューが表示されます。

  4. ノードの最近のイベントを表示するには

    1. Nodes (ノード)をクリックして、それぞれのノードを選択します。

    2. ノードの操作列で、最近のイベントを選択します。

      Hawk2では、新しいウィンドウが開き、最新のイベントのテーブルビューが表示されます。

      Image

11.3.2 クラスタレポートのための履歴エクスプローラーの使用

左のナビゲーションバーからトラブルシューティング › 履歴を選択して、履歴エクスプローラーにアクセスします。履歴エクスプローラーでは、詳細なクラスタレポートを作成し、遷移情報を表示できます。次のオプションが表示されます。

生成

特定の時刻のクラスタレポートを作成します。Hawk2では、crm reportコマンドをコールして、レポートを生成します。

アップロード

crmシェルで直接作成したか、異なるクラスタ上で作成したcrm reportアーカイブをアップロードできます。

レポートを生成するか、アップロードした後で、これらのレポートはレポートの下に表示されます。レポートのリストから、レポートの詳細を表示したり、レポートをダウンロードしたり、削除したりできます。

Hawk2 - 履歴エクスプローラーのメインビュー
図 11.3: Hawk2 - 履歴エクスプローラーのメインビュー
手順 11.2: クラスタレポートの生成またはアップロード
  1. Hawk2にログインします。

    https://HAWKSERVER:7630/
  2. 左のナビゲーションバーから、トラブルシューティング › 履歴の順に選択します。

    生成ビューに履歴エクスプローラー画面が開きます。デフォルトでは、レポートの提案される時間フレームは最後の時刻です。

  3. クラスタレポートを作成するには

    1. レポートを直ちに開始するには、生成をクリックします。

    2. レポートの時間フレームを変更するには、提案される時間フレームの任意の場所をクリックし、ドロップダウンボックスから別のオプションを選択します。Custom (カスタム)開始日、終了日、および時間をそれぞれ入力することもできます。レポートを開始するには、生成をクリックします。

      レポートを終了した後で、そのレポートがレポートの下に表示されます。

  4. クラスタレポートをアップロードするには、Hawk2でアクセス可能なファイルシステム上にcrm reportアーカイブがある必要があります。以下に手順を示します。

    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-schedulerdpacemaker-controldpacemaker-execdなどのデーモンの詳細が示されています。

グラフ

遷移のグラフィカルな表現を示します。グラフをクリックすると、(pacemaker-schedulerdで実行したのものと同じ)計算がシミュレートされ、図表化されます。

手順 11.3: 遷移詳細の表示
  1. Hawk2にログインします。

    https://HAWKSERVER:7630/
  2. 左のナビゲーションバーから、トラブルシューティング › 履歴の順に選択します。

    レポートがすでに生成またはアップロードされている場合は、これらのレポートがレポートのリストに表示されます。そうでない場合は、手順 11.2で説明されるように、レポートを生成またはアップロードします。

  3. レポート名をクリックするか、操作列から表示を選択して、履歴エクスプローラーのレポート詳細を開きます。

  4. 遷移詳細にアクセスするには、下に示す遷移タイムラインの遷移ポイントを選択する必要があります。Previous (前へ)およびNext (次へ)アイコンをおよびZoom In (拡大)およびZoom Out (縮小)アイコンを使用して、興味ある遷移を探します。

  5. pe-input*ファイルの名前、それが作成された時刻およびノードを表示するには、タイムラインの遷移ポイント上でマウスポインタを合わせます。

  6. 履歴エクスプローラーでの遷移詳細を表示するには、さらに知りたい遷移ポイントをクリックします。

  7. 詳細環境設定差分Logs (ログ)またはGraph (グラフ)を表示するには、各ボタンをクリックして履歴エクスプローラーでの遷移詳細で説明されるコンテンツを表示します。

  8. レポートのリストに戻るには、レポートボタンをクリックします。

11.3.4 crmshを使用した履歴情報の取得

クラスタの履歴の調査は複雑な作業です。この作業を簡素化するために、crmshにはhistoryコマンドとそのサブコマンドが含まれています。これは、SSHが正しく設定されていることが前提となります。

それぞれのクラスタは、状態を移動し、リソースを移行し、または重要なプロセスを開始します。これらすべてのアクションは、historyのサブコマンドによって取得できます。

デフォルトでは、すべてのhistoryコマンドは過去1時間のイベントを確認します。このタイムフレームを変更するには、limitサブコマンドを使用します。構文は次のとおりです。

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

有効な例として、次のようなものが挙げられます。

limit 4:00pm , limit 16:00

どちらのコマンドも同じ意味で、今日の午後4時を表しています。

limit 2012/01/12 6pm

2012年1月12日の午後6時。

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 RAは、#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_freedisk_unitパラメータで定義されている単位にデフォルト設定されます。

    3

    ディスク容量をレポートする場合の単位。

  2. リソース設定を完了するには、ocf:pacemaker:SysInfoのクローンを作成し、各クラスタノードでそれを起動します。

  3. node-health-strategymigrate-on-redに設定します。

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

    #health_disk属性がredに設定されている場合、pacemaker-schedulerdによって、そのノードのリソースのスコアに-INFが追加されます。これにより、このノードからすべてのリソースが移動します。この処理はSTONITHリソースのところで停止しますが、STONITHリソースが実行されていない場合でも、ノードをフェンスすることができます。フェンスでCIBに直接アクセスすることで、動作を続行できるからです。

ノードのヘルス状態がredになったら、原因となる問題を解決します。次にredステータスをクリアして、ノードを再びリソースの実行に適した状態にします。クラスタノードにログインして、次のいずれかの方法を使用します。

  • 次のコマンドを実行します。

    # crm node status-attr NODE delete #health_disk
  • そのノードでクラスタサービスを再起動します。

  • ノードを再起動します。

ノードがサービスに復帰し、再びリソースを実行できるようになります。