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フロントエンドでプロキシグループを設定するには:
- 管理 > プロキシグループ に移動します
- プロキシグループの作成 をクリックします

| パラメータ | 説明 |
|---|---|
| 名前 | プロキシグループの名前。 |
| フェイルオーバー期間 | プロキシグループ内のプロキシがオンラインと見なされるために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パラメータに単一のプロキシのみを指定した場合、指定したプロキシがオフラインの状態でエージェントが起動/再起動されると、監視データが失われる可能性があります。
Zabbix senderを使用する場合も、プロキシグループ内の現在のプロキシ-ホスト割り当てに基づいて、データリクエストはホストに対して正しいオンラインプロキシにリダイレクトされます。
ただし、入力ファイルから複数のホストの値を送信する場合は、-gオプションを使用して、誤ったプロキシへのデータ送信を防止してください。
Zabbixエージェントは、ファイアウォールを介してプロキシグループ内のすべてのプロキシに接続できる必要があります。 そうでない場合、リダイレクトやフェイルオーバー時にアクティブチェックがハングしたり失敗したりする可能性があります。例:
- アクティブチェック中に、プロキシがエージェントを別のプロキシにリダイレクトする場合があります。そのプロキシがファイアウォールでブロックされていると、応答を待っている間に通信がハングします。
- 最近リバランスされていない安定した高可用性構成では、エージェントがバックアッププロキシに一度も接続しない場合があります。ファイアウォールルールが変更されてテストされていない場合、フェイルオーバーが失敗する可能性があります。
プロキシの負荷分散のテスト
プロキシの負荷分散をテストするには:
- プロキシグループを設定します。
- プロキシグループがオンライン状態であることを確認します。
- ホストが個々のプロキシではなく、プロキシグループによって監視されていることを確認します(ホストをプロキシからプロキシグループに移動するには、ホストの一括更新を使用できます)。
- 設定の更新とプロキシグループ内のプロキシ間でのホストの分散のために数秒待ちます。管理 > プロキシでホストリストを更新して変更を確認します。
重要な注意事項
- SNMPトラップは、プロキシグループ内のプロキシではサポートされていません。
- 外部設定に依存するチェック(外部チェックのスクリプトや、データベースチェックのODBC設定など)は、プロキシグループ内のすべてのプロキシで同じ設定にする必要があります。
- データベースチェックには、データベースオブジェクト/サーバーに対する拡張権限が必要です。
- プロキシグループによって監視されているVMwareホストは、グループ内のプロキシ間でランダムに分散されます。これにより、各プロキシがすべてのVMwareデータをキャッシュすることになり、vCenterへの追加負荷が発生します。
- プロキシグループ内のプロキシからの自動登録データに基づいて作成されたホストは、そのプロキシグループによって監視されるように設定されます。ただし、プロキシグループ内のプロキシからのネットワークディスカバリデータに基づいて作成されたホストは、そのプロキシによって監視されるように設定されます。