[comment]: # translation:outdated

[comment]: # ({4eeeebad-150822ec})
# 2 プロキシの負荷分散と高可用性

[comment]: # ({/4eeeebad-150822ec})

[comment]: # ({c68d32c6-9db44722})
#### 概要

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

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

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

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

-   プロキシはZabbix 7.0以降を実行している。
-   [プロキシのバージョン](/manual/appendix/compatibility#supported-zabbix-proxies)がZabbixサーバーのバージョンと一致している。Zabbixエージェント（パッシブ）を使用する場合、プロキシのバージョンはエージェントのバージョンと一致している必要があります。アクティブエージェントはZabbix 7.0以降であれば十分です。
-   プロキシグループが[オンライン状態](/manual/web_interface/frontend_sections/administration/proxy_groups)である。
-   ホストは、個々のプロキシではなく、[プロキシグループによって監視](/manual/config/hosts/host#configuration)されるように設定されている。

::: noteclassic
プロキシグループの健全性は、プロキシグループに割り当てられた任意のホストによって[内部チェック](/manual/config/items/itemtypes/internal#proxy.group.a)で監視できます。
ただし、グループ内の単一のプロキシの健全性を監視するには、そのホストをそのプロキシに割り当ててください。そうしないと、結果が一貫しない場合があります。
:::

[comment]: # ({/c68d32c6-9db44722})

[comment]: # ({ca1e24c8-1abf84b3})
#### ホストの再分配

プロキシの負荷分散と高可用性は、[プロキシグループマネージャ](/manual/concepts/server#server-process-types-and-threads)によってZabbixサーバーが管理します。これは、各プロキシグループ内のすべてのプロキシの状態とホストの分配を継続的に監視します。

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

さらに、プロキシのホスト数がグループの平均値から少なくとも10台かつ2倍以上（ホスト過剰またはホスト不足）異なる場合にも、プロキシの負荷分散がトリガーされます。
猶予期間（10 x [フェイルオーバー遅延](#configuring-a-proxy-group)）後も不均衡が続く場合、プロキシグループはホストの再分配のためにキューに入れられます。

プロキシグループマネージャは、次のロジックでホストを再分配します。

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

ホストの再分配の例：

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

::: noteimportant
[プロキシグループで監視されている](/manual/config/hosts/host#configuration)ホストが10台未満の場合、グループ内のプロキシ間でホストの分配が不均等になる可能性があります。
:::

[comment]: # ({/ca1e24c8-1abf84b3})

[comment]: # ({5515593f-ffeb9a46})
#### プロキシグループの設定

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

1. *Administration > Proxy groups* に移動します
2. *Create proxy group* をクリックします

![](../../../../assets/en/manual/distributed_monitoring/proxy_group.png){width="600"}

|Parameter|Description|
|--|--------|
|*Name*|プロキシグループの名前。|
|*Failover period*|プロキシグループ内のプロキシがオンラインと見なされるために、Zabbixサーバーと通信している必要がある期間（秒単位）（デフォルト: 1m、範囲: 10s-15m）。この期間内にプロキシが通信しない場合、プロキシの状態は *Offline* に変更され、そのホストは直ちに他のプロキシに再分配されます。プロキシの負荷分散は、この期間の 10 倍経過後に開始されます。<br>時間のサフィックス（例: 30s、1m）およびユーザーマクロをサポートします。|
|*Minimum number of proxies*|[プロキシグループをオンライン](/manual/web_interface/frontend_sections/administration/proxy_groups) に維持するために必要な最小の[オンラインプロキシ](/manual/web_interface/frontend_sections/administration/proxies)数（デフォルト: 1、範囲: 1-1000）。<br>ユーザーマクロをサポートします。<br><br>この値は、グループ内のプロキシ総数より少なくする必要があります。たとえば、10 台のプロキシからなるグループで最小値を 10 に設定すると、いずれか 1 台のプロキシに障害が発生した場合にグループはオフラインになります。オフラインのグループ内にあるオンラインプロキシは通常どおり動作し続けますが、負荷分散/高可用性は行われないことに注意してください。|
|*Description*|プロキシグループの説明。|
|*Proxies*|プロキシが含まれるグループを編集する際に、最大 5 台までのプロキシの一覧を表示します（プロキシに対するユーザー権限に応じて、リンクまたはプレーンテキストで表示）。|

[comment]: # ({/5515593f-ffeb9a46})

[comment]: # ({05d503b6-e520307a})
#### プロキシの負荷分散の設定

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

Zabbixエージェントを使用する場合は、以下のように設定してください。

-   [パッシブチェック](/manual/appendix/items/activepassive)の場合、[Server](/manual/appendix/config/zabbix_agentd#server)パラメータにプロキシグループ内のすべてのプロキシを列挙します。
-   [アクティブチェック](/manual/appendix/items/activepassive)の場合、[ServerActive](/manual/appendix/config/zabbix_agentd#serveractive)パラメータにプロキシグループ内のすべてのプロキシまたはZabbixサーバーを列挙することを推奨します。
    アクティブモードでプロキシグループが動作するのは、Zabbixエージェント7.0以降のみであることに注意してください。

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

::: notewarning
Zabbixエージェントの`ServerActive`パラメータに単一のプロキシのみを指定した場合、指定したプロキシがオフラインの状態でエージェントが起動/再起動されると、監視データが失われる可能性があります。
:::

::: noteclassic
[Zabbix sender](/manual/concepts/sender)を使用する場合も、プロキシグループ内の現在のプロキシ-ホスト割り当てに基づいて、データリクエストはホストに対して正しいオンラインプロキシにリダイレクトされます。
ただし、入力ファイルから複数のホストの値を送信する場合は、[`-g`オプション](/manpages/zabbix_sender)を使用して、誤ったプロキシへのデータ送信を防止してください。
:::

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

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

[comment]: # ({/05d503b6-e520307a})

[comment]: # ({2ad23a4a-61149717})
##### プロキシの負荷分散のテスト

プロキシの負荷分散をテストするには:

1. プロキシグループを設定します。
2. プロキシグループが[オンライン状態](/manual/web_interface/frontend_sections/administration/proxy_groups)であることを確認します。
3. ホストが個々のプロキシではなく、プロキシグループによって[監視されている](/manual/config/hosts/host#configuration)ことを確認します（ホストをプロキシからプロキシグループに移動するには、ホストの[一括更新](/manual/config/hosts/hostupdate)を使用できます）。
4. 設定の更新とプロキシグループ内のプロキシ間でのホストの分散のために数秒待ちます。*管理* > [*プロキシ*](/manual/web_interface/frontend_sections/administration/proxies)でホストリストを更新して変更を確認します。

[comment]: # ({/2ad23a4a-61149717})

[comment]: # ({541e455e-9e4321d3})
##### 重要な注意事項

-   [SNMPトラップ](/manual/config/items/itemtypes/snmptrap)は、プロキシグループ内のプロキシではサポートされていません。
-   外部設定に依存するチェック（[外部チェック](/manual/config/items/itemtypes/external)のスクリプトや、[データベースチェック](/manual/config/items/itemtypes/odbc_checks)のODBC設定など）は、プロキシグループ内のすべてのプロキシで同じ設定にする必要があります。
-   [データベースチェック](/manual/config/items/itemtypes/odbc_checks)には、データベースオブジェクト/サーバーに対する拡張権限が必要です。
-   プロキシグループによって[監視されている](/manual/config/hosts/host#configuration)VMwareホストは、グループ内のプロキシ間でランダムに分散されます。これにより、各プロキシがすべてのVMwareデータをキャッシュすることになり、vCenterへの追加負荷が発生します。
-   プロキシグループ内のプロキシからの自動登録データに基づいて作成されたホストは、そのプロキシグループによって[監視される](/manual/config/hosts/host#configuration)ように設定されます。ただし、プロキシグループ内のプロキシからのネットワークディスカバリデータに基づいて作成されたホストは、そのプロキシによって[監視される](/manual/config/hosts/host#configuration)ように設定されます。

[comment]: # ({/541e455e-9e4321d3})
