プロキシの負荷分散と高可用性

概要

Zabbixプロキシはプロキシグループに編成して、プロキシの負荷分散と高可用性を実現できます。

プロキシの負荷分散と高可用性とは、プロキシグループ内のプロキシ間でホストを自動的に再分配する機能です。

  • プロキシがオフラインになると、そのホストは他のプロキシに移動され、プロキシの高可用性が維持されます。
  • あるプロキシのホスト数が他のプロキシより大幅に多い、または少ない場合、そのプロキシのホストは他のプロキシに移動され、プロキシの負荷が均衡化されます。

ホストの再分配は、次の条件を満たすグループ内のプロキシ間でのみ機能します。

  • プロキシがZabbix 7.0以降を実行している。
  • プロキシのバージョンがZabbixサーバーのバージョンと一致している。
    Zabbixエージェント(パッシブ)を使用する場合、プロキシのバージョンはエージェントのバージョンと一致している必要があります。
    アクティブエージェントでは、Zabbix 7.0以降のみが必要です。
  • プロキシグループがオンライン状態である。
  • ホストが個々のプロキシではなく、プロキシグループによって監視されるように設定されている。

プロキシグループに割り当てられた任意のホストで、内部チェックを使用してプロキシグループの状態を監視できます。
ただし、グループ内の単一プロキシの状態を監視するには、ホストをそのプロキシに割り当ててください。そうしない場合、結果に一貫性がなくなる可能性があります。

ホストの再分配

プロキシの負荷分散と高可用性は、Zabbix サーバーによって proxy group manager を通じて管理されます。proxy group manager は、各プロキシグループ内のすべてのプロキシの状態と、そのホスト分散を継続的に監視します。

グループ内のプロキシの高可用性は、プロキシのフェイルオーバーによって確保されます。プロキシがオフラインになると、そのホストは直ちに他のプロキシへ再分配されます。ホストは、割り当て済みホスト数が最も少ないプロキシへ再割り当てされるため、プロキシの負荷分散も行われます。

さらに、プロキシのホスト数がグループ平均から少なくとも 10 ホスト、かつ 2 倍の差(ホスト過剰またはホスト不足)がある場合にも、プロキシの負荷分散がトリガーされます。猶予期間(10 x failover delay)の後も不均衡が続く場合、プロキシグループはホスト再分配のキューに入れられます。

proxy group manager は、次のロジックでホストを再分配します。

  1. プロキシごとの平均ホスト数を計算します。
  2. ホスト過剰のプロキシについては、余分なホストを未割り当てのプロキシプールへ移動します。
  3. ホスト不足のプロキシについては、バランスを取るために必要なホスト数を計算します。
  4. 最も多くのホストを持つプロキシから、必要な数のホストを削除します。
  5. 未割り当てのホストを、最も少ないホスト数のプロキシへ移動します。

ホスト再分配の例:

プロキシ上のホスト数 グループ平均 ホストの再割り当て
100 50 Yes
60 50 No
40 50 No
25 50 Yes
15 5 Yes
10 5 No

監視対象 のホスト数が 10 未満のプロキシグループでは、グループ内のプロキシ間でホスト分散が不均一になる可能性があります。

プロキシグループの設定

ZabbixのWebインターフェースでプロキシグループを設定するには、次の手順に従います。

  1. 管理 > プロキシグループ に移動します。
  2. プロキシグループの作成 をクリックします。
  3. フォームにプロキシグループのパラメータを入力します。

パラメータ 説明
名前 プロキシグループの名前。
フェイルオーバー期間 プロキシグループ内のプロキシがオンラインとみなされるために、Zabbixサーバーと通信する必要がある期間(秒単位)(デフォルト: 1m、範囲: 10s-15m)。この期間内にプロキシが通信しない場合、プロキシの状態はオフラインに変更され、そのホストは直ちに他のプロキシに再分配されます。プロキシの負荷分散は、この期間の10倍が経過した後に開始されます。
時間のサフィックス(例: 30s、1m)およびユーザーマクロをサポートします。
プロキシの最小数 プロキシグループをオンラインに維持するために必要なオンラインプロキシの最小数(デフォルト: 1、範囲: 1-1000)。
ユーザーマクロをサポートします。

この値は、グループ内のプロキシの総数より少なくする必要があります。たとえば、10台のプロキシで構成されるグループで最小数を10に設定すると、いずれかのプロキシに障害が発生した場合にグループがオフラインになります。オフラインのグループ内にあるオンラインプロキシは通常どおり機能し続けますが、負荷分散や高可用性は機能しません。
説明 プロキシグループの説明。
プロキシ プロキシを含むグループを編集する際に、最大5台のプロキシの一覧を表示します(プロキシに対するユーザー権限に応じて、リンクまたはプレーンテキストで表示されます)。

プロキシの負荷分散の設定

プロキシの負荷分散を使用するには、ZabbixのWebインターフェースでプロキシグループを設定し(上記を参照)、ホストが個々のプロキシではなくプロキシグループによって監視されていることを確認する必要があります(ホストの一括更新を使用して、ホストをプロキシからプロキシグループに移動できます)。

Zabbixエージェントを使用する場合は、次のように設定します。

  • パッシブチェックの場合、Serverパラメータにプロキシグループ内のすべてのプロキシを指定します。
  • アクティブチェックの場合、ServerActiveパラメータにプロキシグループ内のすべてのプロキシ、またはZabbixサーバーを指定することを推奨します。 Zabbixエージェント7.0以降のみ、アクティブモードでプロキシグループを使用できます。

ServerActiveパラメータにプロキシグループ内の1つのプロキシ(またはZabbixサーバー)だけが指定されている場合でも、エージェントは正しいプロキシに接続できます。 エージェントサービスが起動し、指定されたプロキシに接続すると、エージェントはグループ内のすべてのプロキシのIPアドレスと現在の負荷の完全なリストを受信してキャッシュします。 その後、アクティブチェックは、プロキシグループ内の現在のプロキシとホストの割り当てに基づいて、そのホストに対応するオンライン状態の正しいプロキシへリダイレクトされます。

ZabbixエージェントのServerActiveパラメータに1つのプロキシしか指定していない場合、指定されたプロキシがオフラインの状態でエージェントが起動または再起動されると、監視データが失われる可能性があります。

Zabbix senderを使用する場合、データリクエストも、プロキシグループ内の現在のプロキシとホストの割り当てに基づいて、そのホストに対応するオンライン状態の正しいプロキシへリダイレクトされます。 ただし、入力ファイルから複数のホストの値を送信する場合は、データが誤ったプロキシに送信されるのを防ぐために、-gオプションを使用してください。

Zabbixエージェントは、ファイアウォールを介してプロキシグループ内のすべてのプロキシに接続できる必要もあります。 そうでない場合、リダイレクトまたはフェイルオーバー中にアクティブチェックがハングしたり、失敗したりする可能性があります。 例:

  • アクティブチェック中に、プロキシがエージェントを別のプロキシへリダイレクトする場合があります。 そのプロキシがファイアウォールによってブロックされていると、応答を待機している間、通信がハングします。
  • 最近リバランスが行われていない安定した高可用性構成では、エージェントがバックアッププロキシに接続することがない場合があります。 ファイアウォールルールが変更され、テストされていなかった場合、フェイルオーバーに失敗する可能性があります。
プロキシの負荷分散のテスト

プロキシの負荷分散をテストするには、次の手順を実行します。

  1. プロキシグループを設定します。
  2. プロキシグループがオンライン状態であることを確認します。
  3. ホストが個々のプロキシではなく、プロキシグループによって監視されていることを確認します(ホストの一括更新を使用して、ホストをプロキシからプロキシグループに移動できます)。
  4. 設定の更新とプロキシグループ内のプロキシ間でのホストの分散が行われるまで、数秒待ちます。

管理 > プロキシでホスト一覧を更新して、変更を確認します。

重要な注意事項
  • SNMPトラップは、プロキシグループ内のプロキシではサポートされません。
  • 外部設定に依存するチェック(外部チェック用のスクリプトや、データベース監視用のODBC設定など)では、プロキシグループ内のすべてのプロキシに同じ設定が必要です。
  • データベース監視には、データベースオブジェクトまたはサーバーに対する拡張権限が必要です。
  • プロキシグループによって監視されるVMwareホストは、グループ内のプロキシ間でランダムに分散されます。 これにより、各プロキシがすべてのVMwareデータをキャッシュするため、vCenterの負荷が増加します。
  • プロキシグループ内のプロキシからの自動登録データに基づいて作成されたホストは、そのプロキシグループによって監視されるように設定されます。 ただし、プロキシグループ内のプロキシからのネットワーク検出データに基づいて作成されたホストは、そのプロキシによって監視されるように設定されます。