15 クラスタの監視 #
この章では、クラスタのヘルスを監視し、その履歴を表示する方法について説明します。
15.1 クラスタの状態の監視 #
Hawk2には、単一のクラスタおよび複数のクラスタを監視するための異なる画面があります。画面と画面です。
15.1.1 単一クラスタの監視 #
単一クラスタを監視するには、画面を使用します。Hawk2にログインすると、画面がデフォルトで表示されます。右上隅のアイコンに、クラスタの状態の概要が表示されます。詳細情報を参照する場合は、次のカテゴリを確認します。
- エラー
エラーが発生した場合、ページの上部に表示されます。
- リソース
設定されているリソースが表示されます。その、(ID)、(リソースが実行されているノード)、リソースエージェントのが含まれます。列で、リソースを開始または停止するか、いくつかのアクションをトリガするか、詳細を表示できます。トリガ可能なアクションには、保守モードへのリソースの設定(または保守モードの削除)、リソースの別のノードへの移行、リソースのクリーンアップ、リソースイベントの表示、またはリソースの編集が含まれます。
- ノード
ログイン先のクラスタサイトに属するノードが表示されます。ノードのおよびが含まれます。および列で、ノードの
maintenanceフラグまたはstandbyフラグを設定または解除できます。 列では、ノードの最近のイベントや詳細を表示できます。たとえば、utilization、standby、またはmaintenanceの属性がそれぞれのノードに設定されている場合があります。- チケット
Geoクラスタリングでの使用向けにチケットを設定した場合にのみ表示されます。
15.1.2 複数のクラスタの監視 #
複数のクラスタを監視するには、Hawk2を使用します。画面に表示されるクラスタ情報は、サーバ側に保管されています。これらは、クラスタノード間で同期が取られています(クラスタノード間にパスワード不要のSSHアクセスが設定されている場合)。ただし、Hawk2を実行するマシンは、その目的のためにクラスタの一部である必要はなく、別個の無関係のシステムで構いません。
Hawk2で複数のクラスタを監視するには、一般的なHawk2の要件に加え、次の前提条件も満たす必要があります。
Hawk2ので監視するすべてのクラスタでは、SUSE Linux Enterprise High Availability 15 SP7を実行している必要があります。
すべてのクラスタノードにあるHawk2の自己署名証明書を独自の証明書(または公式認証局によって署名された証明書)で置き換えていない場合は、すべてのクラスタのすべてのノードで、少なくとも1回はHawk2にログインします。証明書を検証します(または、ブラウザで例外を追加して警告をスキップします)。そうしない場合、Hawk2はクラスタに接続できません。
Hawk2にログインします。
https://HAWKSERVER:7630/
左のナビゲーションバーから、 › の順に選択します。
Hawk2は、現在のクラスタサイトのリソースおよびノードに関する概要を表示します。また、Geoクラスタでの使用向けに設定されたを表示します。このビューで使用されるアイコンに関する情報が必要な場合は、をクリックします。リソースIDを検索するには、テキストボックスに名前(ID)を入力します。特定のノードのみを表示するには、フィルタアイコンをクリックしてフィルタリングオプションを選択します。
図 15.2: 1つのクラスタサイト(amsterdam)を表示するHawk2ダッシュボード #複数のクラスタにダッシュボードを追加するには、以下の操作を行います。
をクリックします。
でクラスタを識別するためのを入力します。たとえば、
berlinと指定します。いずれかのノードの完全修飾ホスト名を、2つ目のクラスタに入力します。たとえば、
charlieと指定します。図 15.3: Hawk2がクラスタの詳細を追加する #をクリックします。新たに追加されたクラスタサイトに対して、Hawk2は2つ目のタブにノードやリソースの概要を表示します。
注記: 接続エラーパスワードを入力してこのノードにログインすることを求めるプロンプトが表示された場合、このノードにはまだ接続したことがなく、自己署名証明書を置き換えていない状態である場合があります。そのような場合は、パスワードを入力しても、接続は次のメッセージを表示して失敗します。
Error connecting to server. Retrying every 5 seconds... '。続行するには、自己署名証明書の置き換えを参照してください。
クラスタサイトやその管理に関する詳細を参照するには、サイトのタブに切り替えてチェーンアイコンをクリックします。
Hawk2はこのサイトのビューを新しいブラウザウィンドウかタブに表示します。この部分のGeoクラスタをそこから管理できます。
ダッシュボードからクラスタを削除するには、クラスタの詳細の右側にある
xアイコンをクリックします。
15.2 クラスタヘルスの確認 #
Hawk2またはcrmshのいずれかを使用してクラスタのヘルスを確認できます。
15.2.1 Hawk2を使用したクラスタヘルスの確認 #
Hawk2は、クラスタの検査と問題点の検出を行うウィザードを提供します。分析が完了すると、Hawk2は詳細なクラスタレポートを作成します。Hawk2によるクラスタヘルスの確認とレポートの生成には、ノード間のパスワード不要のSSHアクセスが必要です。ない場合は、現在のノードのデータのみを収集します。crmシェルが提供するブートストラップスクリプトでクラスタを設定した場合、パスワード不要のSSHアクセスはすでに設定されています。
Hawk2にログインします。
https://HAWKSERVER:7630/
左のナビゲーションバーから、 › の順に選択します。
カテゴリを開きます。
ウィザードを選択します。
を選択して確認します。
クラスタのルートパスワードを入力して、をクリックします。Hawk2はレポートを生成します。
15.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でも実行できます。
スクリプトに関する追加情報を表示するには、https://crmsh.github.io/scripts/を参照してください。
15.3 クラスタ履歴の表示 #
Hawk2には、クラスタの過去のイベントを表示する、次のような機能があります(いくつかの詳細さのレベルがあります)。
crmshを使用してクラスタ履歴情報を表示することもできます。
15.3.1 ノードまたリソースの最近のイベントの表示 #
Hawk2にログインします。
https://HAWKSERVER:7630/
左のナビゲーションバーから、 › の順に選択します。とが一覧表示されます。
リソースの最近のイベントを表示するには
をクリックして、それぞれのリソースを選択します。
リソースの列で、下矢印ボタンをクリックしてを選択します。
Hawk2では、新しいウィンドウが開き、最新のイベントのテーブルビューが表示されます。
ノードの最近のイベントを表示するには
をクリックして、それぞれのノードを選択します。
ノードの列で、を選択します。
Hawk2では、新しいウィンドウが開き、最新のイベントのテーブルビューが表示されます。
図 15.4: 最新イベントテーブル #
15.3.2 クラスタレポートのための履歴エクスプローラーの使用 #
左のナビゲーションバーから › を選択して、にアクセスします。では、詳細なクラスタレポートを作成し、遷移情報を表示できます。次のオプションが表示されます。
特定の時刻のクラスタレポートを作成します。Hawk2では、
crm reportコマンドをコールして、レポートを生成します。crmシェルで直接作成したか、異なるクラスタ上で作成した
crm reportアーカイブをアップロードできます。
レポートを生成するか、アップロードした後で、これらのレポートはの下に表示されます。レポートのリストから、レポートの詳細を表示したり、レポートをダウンロードしたり、削除したりできます。
Hawk2にログインします。
https://HAWKSERVER:7630/
左のナビゲーションバーから、 › の順に選択します。
画面が開いてビューが表示されます。デフォルトでは、レポートの提案される時間フレームは最後の時刻です。
クラスタレポートを作成するには
レポートを直ちに開始するには、をクリックします。
レポートの時間フレームを変更するには、提案される時間フレームの任意の場所をクリックし、ドロップダウンボックスから別のオプションを選択します。開始日、終了日、および時間をそれぞれ入力することもできます。レポートを開始するには、をクリックします。
レポートが完了すると、そのレポートがの下に表示されます。
クラスタレポートをアップロードするには、Hawk2でアクセス可能なファイルシステム上に
crm reportアーカイブがある必要があります。以下に手順を示します。タブに切り替えます。
クラスタレポートアーカイブをし、をクリックします。
レポートがアップロードされると、そのレポートがの下に表示されます。
レポートをダウンロードまたは削除するには、列のレポートの横の各アイコンをクリックします。
履歴エクスプローラーのレポート詳細を表示するには、レポートの名前をクリックするか、列からを選択します。
図 15.6: Hawk2レポートの詳細 #ボタンをクリックして、レポートのリストに戻ります。
15.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-schedulerd、pacemaker-controldおよびpacemaker-execdの各デーモンの詳細が含まれています.遷移のグラフィカルな表現を示します。をクリックすると、(
pacemaker-schedulerdで実行したものと同じ)計算がシミュレートされ、図表化されます。
Hawk2にログインします。
https://HAWKSERVER:7630/
左のナビゲーションバーから、 › の順に選択します。
レポートがすでに生成またはアップロードされている場合は、これらのレポートがのリストに表示されます。そうでない場合は、手順 15.2で説明されるように、レポートを生成またはアップロードします。
レポート名をクリックするか、列からを選択して、履歴エクスプローラーのレポート詳細を開きます。
遷移詳細にアクセスするには、下に示す遷移タイムラインの遷移ポイントを選択する必要があります。およびアイコンとおよびアイコンを使用して、興味ある遷移を探します。
pe-input*ファイルの名前、それが作成された時刻およびノードを表示するには、タイムラインの遷移ポイントにマウスポインタを合わせます。履歴エクスプローラーでの遷移詳細を表示するには、さらに知りたい遷移ポイントをクリックします。
、、、、またはを表示するには、各ボタンをクリックして履歴エクスプローラーでの遷移詳細で説明されるコンテンツを表示します。
レポートのリストに戻るには、ボタンをクリックします。
15.3.4 crmshを使用した履歴情報の取得 #
クラスタの履歴の調査は複雑な作業です。この作業を簡素化するために、crmshにはhistoryコマンドとそのサブコマンドが含まれています。これは、SSHが正しく設定されていることが前提となります。
それぞれのクラスタは、状態を移動し、リソースを移行し、または重要なプロセスを開始します。これらすべてのアクションは、historyのサブコマンドによって取得できます。
デフォルトでは、すべてのhistoryコマンドは過去1時間のイベントを確認します。このタイムフレームを変更するには、limitサブコマンドを使用します。構文は次のとおりです。
#crm historycrm(live)history#limit FROM_TIME [TO_TIME]
有効な例として、次のようなものが挙げられます。
limit 4:00pm,limit 16:00どちらのコマンドも同じ意味で、今日の午後4時を表しています。
limit 2012/01/12 6pm2012年1月12日の午後6時。
limit "Sun 5 20:46"今年の今月の5日日曜日の午後8時46分。
その他の例とタイムフレームの作成方法については、https://labix.org/python-dateutilを参照してください。
infoサブコマンドでは、crm reportによって使用されているすべてのパラメータが表示されます。
crm(live)history#infoSource: 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 -1INFO: fetching new logs, please wait ...
このコマンドはログを取得し、dotty (graphvizパッケージから)を実行して、遷移グラフを表示します。シェルはログファイルを開きます。ログ内は、↓と↑カーソルキーでブラウズできます。
遷移グラフを表示する必要がない場合には、nographオプションを使用します。
crm(live)history#transition -1 nograph
15.4 SysInfoリソースエージェントによるシステムヘルスの監視 #
ノードがディスク容量が使い尽くし、そこに割り当てられたリソースを管理できなくなることを避けるため、SUSE Linux Enterprise High Availabilityでは、ocf:pacemaker:SysInfoというリソースエージェントが提供されています。これを使用して、ディスクパーティションに関してノードのヘルスを監視します。SysInfo RAは、#health_diskという名前のノード属性を作成します。この属性は、監視対象のディスク空き容量が指定された制限を下回るとredに変更されます。
ノードのヘルスがクリティカルな状態に達した場合のCRMの対応方法を定義するには、グローバルなクラスタオプションであるnode-health-strategyを使用します。
ノードがディスク容量を使い尽くした場合に、リソースを自動的にノードから移動させるには、次の手順に従います。
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"監視対象のディスクパーティション。
/tmp、/usr、/var、/devなどです。複数のパーティションを属性値として指定するには、空白で区切ります。注記:/のファイルシステムは常に監視されるdisksでルートパーティション(/)を指定する必要はありません。これはデフォルトで常に監視されます。これらのパーティションの必要最小限の空きディスク容量。オプションで、計測に使用する単位を指定できます(上記の例では、メガバイトを表す
Mが使用されています)。指定しない場合、min_disk_freeはdisk_unitパラメータで定義されている単位にデフォルト設定されます。ディスク容量をレポートする場合の単位。
リソース設定を完了するには、
ocf:pacemaker:SysInfoのクローンを作成し、各クラスタノードでそれを起動します。node-health-strategyをmigrate-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そのノードでクラスタサービスを再起動します。
ノードを再起動します。
ノードがサービスに復帰し、再びリソースを実行できるようになります。
![この[状態]画面の例では、STONITHが無効になっていることを示すエラーが表示されています。リソースのリストでは、1つが保守モード、2つが実行中、5つが停止しています。 この[状態]画面の例では、STONITHが無効になっていることを示すエラーが表示されています。リソースのリストでは、1つが保守モード、2つが実行中、5つが停止しています。](images/hawk2-cluster-status-main.png)
![[ダッシュボード]のこの例では、aliceとbobの2つのノードを持つ1つのクラスタサイト(amsterdam)が表示されています。 [ダッシュボード]のこの例では、aliceとbobの2つのノードを持つ1つのクラスタサイト(amsterdam)が表示されています。](images/hawk2-dashboard-site1.png)


![この[履歴エクスプローラ]画面の例では、新しいレポートを生成するためのタブと、3つの既存レポートのリストがあります。 この[履歴エクスプローラ]画面の例では、新しいレポートを生成するためのタブと、3つの既存レポートのリストがあります。](images/hawk2-history-explorer-main.png)
