Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

ヘルスマネージャーによる自己管理型シャーディングされたクラスターのヘルス構成

項目一覧

  • Overview
  • アクティブなフォールト期間
  • プログレス モニター

このドキュメントでは、ヘルスマネージャーを使用してシャーディングされたクラスターの健全性の問題を監視および管理する方法について説明します。

ヘルスマネージャーは、指定された 強度レベル で ヘルスマネージャーファセットのヘルスチェックを実行します。ヘルスマネージャーのチェックは指定された時間間隔で実行されます。ヘルスマネージャーは、障害のある mongos をクラスターから自動的に移動するように構成できます。プログレス モニターは 、ヘルスマネージャーのチェックが停止したり、応答しなくなったりしないよう確認します。

次の表には、使用可能なヘルスマネージャーファセットが示されています。

Facet
ヘルス オブザーバーがチェックする内容

configServer

コンフィギュレーションサーバーに対する接続に関連するクラスターの健全性の問題。

dns

DNS の可用性と機能に関連するクラスターの健全性の問題。

ldap

LDAP の可用性と機能に関するクラスターの健全性の問題。

次の表には、利用可能なヘルスマネージャー強度レベルが示されています。

強度レベル
説明

critical

このファセットのヘルスマネージャーは有効になっており、エラーが発生した場合に障害のあるmongosをクラスターから移動する機能があります。 ヘルスマネージャーは、 activeFaultDurationSecsで指定された時間待機してから、 mongosを自動的に停止してクラスターから移動します。

non-critical

このファセットのヘルスマネージャーは有効になっており、エラーをログに記録しますが、エラーが発生した場合、mongos はクラスター内に残ります。

off

このファセットのヘルスマネージャーは無効です。mongos は、このファセットでヘルスチェックを実行しません。これは、デフォルトの強度レベルです。

障害が検出され、ヘルスマネージャー強度レベルがcriticalに設定されている場合、ヘルスマネージャーはactiveFaultDurationSecsで指定された時間だけ待機してから、 mongosを自動的に停止してクラスターから移動します。

プログレス モニターは 、ヘルスマネージャーのチェックが停止したり、応答しなくなったりしないよう確認するためのテストを実行します。 プログレス モニターは、 intervalで指定された間隔でこれらのテストを実行します。 ヘルスチェックが開始されたが、 deadlineで指定されたタイムアウト内に完了しない場合、プログレス モニターはmongosを停止し、クラスターから削除します。

フィールド
説明
単位

interval

ヘルスマネジャーが、停止したり、応答しなくなったりしないよう確認する頻度。

ミリ秒

deadline

ヘルスマネージャーのチェックが進行していない場合に、mongos を自動的に失敗させるまでの中断時間。

次の例は、ヘルスマネージャーの構成方法を示しています。 ヘルスマネージャー パラメータの詳細については、「ヘルスマネージャー パラメータ 」を参照してください。

たとえば、dns ヘルスマネージャーファセットを強度レベル critical に設定するには、スタートアップ時に以下を実行します。

mongos --setParameter 'healthMonitoringIntensities={ values:[ { type:"dns", intensity: "critical"} ] }'

または実行中の に接続されているsetParametermongoshmongos セッションで コマンドを使用する場合は以下のようになります。

db.adminCommand(
{
setParameter: 1,
healthMonitoringIntensities: { values: [ { type: "dns", intensity: "critical" } ] } } )
}
)

setParameter で設定されたパラメーターは再起動後に永続することはありません。詳細については、「setParameter ページ」を参照してください。

この設定を永続的にするには、次の例のように setParameter オプションを使用して mongos コンフィギュレーション ファイルhealthMonitoringIntensities を設定します。

setParameter:
healthMonitoringIntensities: "{ values:[ { type:\"dns\", intensity: \"critical\"} ] }"

healthMonitoringIntensities はドキュメントの配列 values を受け取ります。values の各ドキュメントは 2 個のフィールドを取ります。

  • type、ヘルスマネージャーファセット

  • intensity、強度レベル

詳細については、「healthMonitoringIntensities」を参照してください。

たとえば、30 秒ごとにヘルスチェックを実行するように ldap ヘルスマネージャーファセットを設定するには、スタートアップ時に次のコマンドを発行します。

mongos --setParameter 'healthMonitoringIntervals={ values:[ { type:"ldap", interval: "30000"} ] }'

または実行中の に接続されているsetParametermongoshmongos セッションで コマンドを使用する場合は以下のようになります。

db.adminCommand(
{
setParameter: 1,
healthMonitoringIntervals: { values: [ { type: "ldap", interval: "30000" } ] } } )
}
)

setParameter で設定されたパラメーターは再起動後に永続することはありません。詳細については、「setParameter ページ」を参照してください。

この設定を永続的にするには、次の例のように setParameter オプションを使用して mongos コンフィギュレーション ファイルhealthMonitoringIntervals を設定します。

setParameter:
healthMonitoringIntervals: "{ values: [{type: \"ldap\", interval: 200}] }"

healthMonitoringIntervals はドキュメントの配列 values を受け取ります。values の各ドキュメントは 2 個のフィールドを取ります。

  • type、ヘルスマネージャーファセット

  • interval、実行の間隔(ミリ秒単位)

詳細については、「healthMonitoringIntervals」を参照してください。

たとえば、障害からクラッシュまでの期間を 5 分に設定するには、起動時に次のコマンドを発行します。

mongos --setParameter activeFaultDurationSecs=300

または実行中の に接続されているsetParametermongoshmongos セッションで コマンドを使用する場合は以下のようになります。

db.adminCommand(
{
setParameter: 1,
activeFaultDurationSecs: 300
}
)

setParameter で設定されたパラメーターは再起動後に永続することはありません。詳細については、「setParameter ページ」を参照してください。

この設定を永続的にするには、次の例のように setParameter オプションを使用して mongos コンフィギュレーション ファイルactiveFaultDurationSecs を設定します。

setParameter:
activeFaultDurationSecs: 300

詳細については、「activeFaultDurationSecs」を参照してください。

プログレス モニターは 、ヘルスマネージャーのチェックが停止したり、応答しなくなったりしないよう確認するためのテストを実行します。 プログレス モニターは、 intervalで指定された間隔でこれらのテストを実行します。 ヘルスチェックが開始されたが、 deadlineで指定されたタイムアウト内に完了しない場合、プログレス モニターはmongosを停止し、クラスターから削除します。

interval を 1000 ミリ秒に設定し、deadline を 300 秒に設定するには、スタートアップ時に次のコマンドを発行します。

mongos --setParameter 'progressMonitor={"interval": 1000, "deadline": 300}'

または実行中の に接続されているsetParametermongoshmongos セッションで コマンドを使用する場合は以下のようになります。

db.adminCommand(
{
setParameter: 1,
progressMonitor: { interval: 1000, deadline: 300 } )
}
)

setParameter で設定されたパラメーターは再起動後に永続することはありません。詳細については、「setParameter ページ」を参照してください。

この設定を永続的にするには、次の例のように setParameter オプションを使用して mongos コンフィギュレーション ファイルprogressMonitor を設定します。

setParameter:
progressMonitor: "{ interval: 1000, deadline: 300 }"

詳細については、「progressMonitor」を参照してください。

戻る

THP(Transparent Huge Pages)の無効化