2 プロキシの負荷分散と高可用性
概要
Zabbixプロキシはプロキシグループに編成して、プロキシの負荷分散と高可用性を実現できます。
プロキシの負荷分散と高可用性とは、プロキシグループ内のプロキシ間でホストを自動的に再分配する機能です。
- プロキシがオフラインになると、そのホストは他のプロキシに移動され、プロキシの高可用性が維持されます。
- あるプロキシのホスト数が他のプロキシより大幅に多い、または少ない場合、そのホストは他のプロキシに移動され、プロキシの負荷が均等化されます。
ホストの再分配は、次の条件を満たすグループ内のプロキシ間でのみ機能します。
- プロキシがZabbix 7.0以降を実行している。
- プロキシのバージョンがZabbixサーバーのバージョンと一致している。 Zabbixエージェント(パッシブ)を使用する場合、プロキシのバージョンがエージェントのバージョンと一致している必要があります。 アクティブエージェントでは、Zabbix 7.0以降のみが必要です。
- プロキシグループがオンライン状態である。
- ホストが個々のプロキシではなく、プロキシグループによって監視されるように設定されている。
プロキシグループに割り当てられた任意のホストで、内部チェックを使用してプロキシグループの状態を監視できます。 ただし、グループ内の単一のプロキシの状態を監視するには、ホストをそのプロキシに割り当ててください。そうしない場合、結果に一貫性がなくなる可能性があります。
ホストの再分配
プロキシの負荷分散と高可用性は、プロキシグループマネージャによってZabbixサーバーが管理します。これは、各プロキシグループ内のすべてのプロキシの状態とホストの分配を継続的に監視します。
グループ内のプロキシの高可用性は、プロキシのフェイルオーバーによって保証されます。プロキシがオフラインになると、そのホストは直ちに他のプロキシに再分配されます。 また、ホストが最も少ないプロキシに再割り当てされるため、プロキシの負荷分散も行われます。
さらに、プロキシのホスト数がグループの平均値から少なくとも10台かつ2倍以上(ホスト過剰またはホスト不足)異なる場合にも、プロキシの負荷分散がトリガーされます。 猶予期間(10 x フェイルオーバー遅延)後も不均衡が続く場合、プロキシグループはホストの再分配のためにキューに入れられます。
プロキシグループマネージャは、次のロジックでホストを再分配します。
- プロキシごとのホストの平均数を計算します。
- ホストが過剰なプロキシについては、過剰なホストをプロキシの未割り当てプールに移動します。
- ホストが不足しているプロキシについては、バランスを取るために必要なホスト数を計算します。
- 最も多くのホストを持つプロキシから必要な数のホストを削除します。
- 未割り当てのホストを、ホスト数が最も少ないプロキシに移動します。
ホストの再分配の例:
| プロキシ上のホスト数 | グループ平均 | ホストの再割り当て |
|---|---|---|
| 100 | 50 | はい |
| 60 | 50 | いいえ |
| 40 | 50 | いいえ |
| 25 | 50 | はい |
| 15 | 5 | はい |
| 10 | 5 | いいえ |
プロキシグループで監視されているホストが10台未満の場合、グループ内のプロキシ間でホストの分配が不均等になる可能性があります。
プロキシグループの設定
ZabbixのWebインターフェースでプロキシグループを設定するには、次の手順を実行します。
- 管理 > プロキシグループ に移動します。
- プロキシグループの作成 をクリックします。

| パラメーター | 説明 |
|---|---|
| 名前 | プロキシグループの名前。 |
| フェイルオーバー期間 | プロキシグループ内のプロキシがオンラインと見なされるために、Zabbixサーバーと通信する必要がある期間(秒単位)(デフォルト: 1m、範囲: 10s-15m)。この期間内にプロキシが通信しない場合、プロキシの状態はオフラインに変更され、そのホストは直ちに他のプロキシに再分配されます。プロキシの負荷分散は、この期間の10倍が経過した後に開始されます。 時間のサフィックス(例: 30s、1m)およびユーザーマクロをサポートします。 |
| プロキシの最小数 | プロキシグループをオンラインに維持するために必要なオンラインプロキシの最小数(デフォルト: 1、範囲: 1-1000)。 ユーザーマクロをサポートします。 この値は、グループ内のプロキシの総数より少なくする必要があります。たとえば、10台のプロキシで構成されるグループで最小数を10に設定すると、いずれかのプロキシに障害が発生した場合にグループがオフラインになります。オフラインのグループ内にあるオンラインプロキシは通常どおり機能し続けますが、負荷分散/高可用性は実行されないことに注意してください。 |
| 説明 | プロキシグループの説明。 |
| プロキシ | プロキシを含むグループを編集する際に、最大5台のプロキシの一覧を表示します(プロキシに対するユーザー権限に応じて、リンクまたはプレーンテキストで表示されます)。 |
プロキシの負荷分散の設定
プロキシの負荷分散を使用するには、ZabbixのWebインターフェースでプロキシグループを設定し(上記を参照)、ホストが個々のプロキシではなくプロキシグループによって監視されていることを確認する必要があります(ホストの一括更新を使用して、ホストをプロキシからプロキシグループに移動できます)。
Zabbixエージェントを使用する場合は、次のように設定します。
- パッシブチェックの場合、プロキシグループ内のすべてのプロキシをServerパラメータに指定します。
- アクティブチェックの場合、プロキシグループ内のすべてのプロキシ、またはZabbixサーバーをServerActiveパラメータに指定することを推奨します。 Zabbixエージェント7.0以降のみ、アクティブモードでプロキシグループを使用できます。
ServerActiveパラメータにプロキシグループ内の1つのプロキシ(またはZabbixサーバー)しか指定されていない場合でも、エージェントは正しいプロキシに接続できます。
エージェントサービスが起動して指定されたプロキシに接続すると、エージェントはグループ内のすべてのプロキシのIPアドレスと現在の負荷の完全なリストを受信してキャッシュします。
その後、アクティブチェックは、プロキシグループ内の現在のプロキシとホストの割り当てに基づいて、ホストに対応するオンラインのプロキシにリダイレクトされます。
ZabbixエージェントのServerActiveパラメータに指定するプロキシが1つだけの場合、指定されたプロキシがオフラインの状態でエージェントが起動または再起動されると、監視データが失われる可能性があります。
Zabbix senderを使用する場合も、プロキシグループ内の現在のプロキシとホストの割り当てに基づいて、データ要求がホストに対応するオンラインのプロキシにリダイレクトされます。
ただし、入力ファイルから複数のホストの値を送信する場合は、データが誤ったプロキシに送信されないように-gオプションを使用してください。
Zabbixエージェントは、ファイアウォールを介してプロキシグループ内のすべてのプロキシに接続できる必要もあります。 そうでない場合、リダイレクトまたはフェイルオーバー中にアクティブチェックが停止したり、失敗したりする可能性があります。 例:
- アクティブチェック中に、プロキシがエージェントを別のプロキシにリダイレクトする場合があります。 そのプロキシがファイアウォールによってブロックされていると、応答を待機している間、通信が停止します。
- 最近リバランスが行われていない安定した高可用性構成では、エージェントがバックアッププロキシに接続することがない場合があります。 ファイアウォールルールが変更され、テストされていない場合、フェイルオーバーに失敗する可能性があります。
プロキシの負荷分散のテスト
プロキシの負荷分散をテストするには、次の手順を実行します。
- プロキシグループを設定します。
- プロキシグループがオンライン状態であることを確認します。
- ホストが個々のプロキシではなく、プロキシグループによって監視されていることを確認します(ホストの一括更新を使用して、ホストをプロキシからプロキシグループに移動できます)。
- 設定の更新と、プロキシグループ内のプロキシ間でのホストの分散が完了するまで、数秒待ちます。
管理 > プロキシでホスト一覧を更新して、変更を確認します。
重要な注意事項
- SNMPトラップは、プロキシグループ内のプロキシではサポートされません。
- 外部設定に依存するチェック(外部チェック用のスクリプトや、データベース監視用のODBC設定など)では、プロキシグループ内のすべてのプロキシに同じ設定が必要です。
- データベース監視には、データベースオブジェクトまたはサーバーに対する拡張権限が必要です。
- プロキシグループによって監視されるVMwareホストは、グループ内のプロキシ間にランダムに分散されます。 これにより、各プロキシがすべてのVMwareデータをキャッシュするため、vCenterの負荷が増加します。
- プロキシグループ内のプロキシからの自動登録データに基づいて作成されたホストは、そのプロキシグループによって監視されるように設定されます。 ただし、プロキシグループ内のプロキシからのネットワーク検出データに基づいて作成されたホストは、そのプロキシによって監視されるように設定されます。