2 プロキシの負荷分散と高可用性
概要
プロキシ負荷分散により、プロキシグループ単位でホストを監視できます。これにより、プロキシ間でのホストの自動分散と高いプロキシ可用性が実現します。
プロキシグループ内の1つのプロキシがオフラインになった場合、そのホストは、グループ内で割り当てホスト数が最も少ない他のプロキシに即座に分散されます。また、プロキシのホスト数がグループ平均と比較して多すぎる/少なすぎる場合は、ホストを均等に分散するグループの再分散がトリガーされます。
ホストの再分散は、オンラインのプロキシグループでのみ行われます。プロキシグループが"オンライン"になるのは、設定された最小数のプロキシがオンラインになっている場合(オフラインまたは不明ではない場合)、そのプロキシグループが"オンライン"になっている状態です。
オンラインプロキシの最小数は、グループ内のプロキシの総数よりも小さくする必要があります。10台のプロキシグループで最小オンラインプロキシ数を10に設定すると、1台のプロキシに障害が発生した場合にグループ全体がオフラインになる状況が発生します。オンラインプロキシは6台必要となるのが理想的です。これにより、4台のプロキシが不健全な状態になっても対応できます。
プロキシの状態は以下のとおりです。
- オンライン - フェイルオーバー遅延 期間中、プロキシとの通信があった場合(パッシブプロキシがサーバーリクエストに応答し、アクティブプロキシがサーバーにリクエストを送信した場合)
- オフライン - フェイルオーバー遅延期間中、プロキシとの通信がなかった場合
- 不明 - プロキシ作成後またはサーバー起動後
プロキシグループの状態は、zabbix[プロキシグループ,<名前>,状態] および zabbix[プロキシグループ,ディスカバリ] 内部アイテムで監視できます。
プロキシの負荷分散と高可用性は、プロキシグループマネージャ プロセスによって管理されます。プロキシグループマネージャは、他のプロキシが正常か異常かを常に把握しています。
バージョン互換性
- アクティブモードでのプロキシグループ操作は、Zabbixエージェント7.0以降でのみサポートされます。
- Zabbixバージョン7.0より前のプロキシと、これらのプロキシによって監視されているホストは、アップグレードされるまで再バランス調整操作から除外されます。
Host reassignment
Zabbix server checks the balance between host assignments to the proxies. The group is considered "out of balance" if there is:
- host excess - a proxy has many more hosts than the group average;
- host deficit - a proxy has far fewer hosts than the group average.
The group is considered "out of balance" if the number of hosts assigned to the proxy is above/below the group average by more than 10 and a factor of 2. In this case the group is marked by the server for host reassignment after the grace period (10 x failover delay), if the balance is not restored.
The following table illustrates with example numbers when host reassignment is (or is not) triggered:
| Number of hosts on proxy | Group average | Host reassignment |
|---|---|---|
| >100 | 50 | Yes |
| 60 | 50 | No |
| 40 | 50 | No |
| <25 | 50 | Yes |
| >15 | 5 | Yes |
| 10 | 5 | No |
The proxy group manager will re-distribute hosts in proxy groups in the following way:
- calculate the average number of proxies per host;
- for proxies with host excess - move excess hosts to unassigned hosts;
- for proxies with host deficit - calculate the number of hosts needed to balance proxies;
- remove the missing number of hosts from proxies with most hosts;
- distribute unassigned hosts between proxies with least hosts.
プロキシグループの設定
Zabbix フロントエンドでプロキシグループを設定するには、以下の手順に従います。
- 管理 → プロキシグループ へ移動します。
- プロキシグループの作成 をクリックします。

| パラメータ | 説明 |
|---|---|
| 名前 | プロキシグループ名を入力します。 |
| フェイルオーバー間隔 | フェイルオーバーを実行するまでの間隔を秒単位で入力します(デフォルトは1分、許容範囲は10秒~15分)。 時間サフィックスがサポートされています(例:30秒、1分)。 ユーザーマクロがサポートされています。 |
| プロキシの最小数 | グループをオンラインにするために必要なオンラインプロキシの最小数を入力します(デフォルトは1、許容範囲は1~1000)。 ユーザーマクロがサポートされています。 |
| 説明 | プロキシグループの説明を入力します。 |
| プロキシ | グループ内のプロキシの一覧です。最大5つのプロキシを表示できます(プロキシへの権限に応じて、リンクまたはプレーンテキストで表示されます)。 既存のプロキシグループを編集する場合、グループ内に少なくとも1つのプロキシが存在すると、この一覧が表示されます。 |
プロキシ負荷分散の設定
監視ホストのプロキシ負荷分散を設定するには:
- プロキシグループを作成します(下記の"プロキシグループの設定"を参照)
パッシブチェックの場合、グループ内のすべてのプロキシをエージェントの Server パラメータにリストする必要があります。
監視対象ホストの ServerActive エージェントパラメータに、グループ内のすべてのプロキシを追加することは有益ですが、必須ではありません。アクティブエージェントは、ServerActive フィールドにプロキシを 1 つだけ指定してもプロキシ負荷分散は機能します。エージェントサービスが起動すると、エージェントはすべての Zabbix プロキシの IP アドレスの完全なリストを受信し、メモリにロードして保持します。アクティブチェック(および Zabbix 送信データリクエスト)は、現在のプロキシとホストの割り当てに基づいて、ホストの適切なオンラインプロキシにリダイレクトされます。
ServerActive フィールドにプロキシを 1 つだけ指定すると、そのプロキシがオフラインのときにエージェントを起動または再起動すると、監視データが失われる可能性があります。
-
プロキシグループがオンラインであることを確認します。
-
ホストをプロキシグループ単位で監視するように設定します(個々のプロキシ単位で監視するわけではありません)。ホストの一括更新(/manual/config/hosts/hostupdate)を使用して、ホストをプロキシグループに移動できます。
単一のプロキシ(プロキシグループに属している場合でも)で監視されているホストは、負荷分散/高可用性には適用されません。 また、プロキシグループに割り当てられているホストが10台未満の場合、グループ内のプロキシ間でホストの配分が不均等になる可能性があります。
- 設定の更新と、プロキシグループ内のプロキシ間でのホストの配分が完了するまで数秒待ちます。[監視] -> [ホスト] でホストリストを更新して、変更内容を確認します。
プロキシグループに属するプロキシからの自動登録/ネットワーク検出データに基づいてホストが作成されると、そのホストはこのプロキシグループで監視されるように設定されます。
プロキシ負荷分散のテスト
プロキシ負荷分散をテストするには、以下の手順に従います。
- プロキシグループを設定します。
- プロキシグループがオンライン状態であることを確認します。
- ホストが個々のプロキシではなく、プロキシグループによって監視されていることを確認します(ホストの一括更新を使用して、プロキシからプロキシグループにホストを移動できます)
- 設定が更新され、プロキシグループ内のプロキシ間でホストが分散されるまで数秒待ちます。 監視 > ホスト でホストリストを更新して、変更内容を確認します。
制限事項
- プロキシグループ内のプロキシでは、SNMPトラップはサポートされません。
- 外部設定に依存するチェックは、プロキシグループ内のすべてのプロキシで同じ設定にする必要があります。これには以下が含まれます。
- 外部チェック - スクリプト
- データベースチェック - ODBC設定
- "データベース監視"項目を使用する場合、DBオブジェクト/サーバーに拡張権限が必要です。
- プロキシグループで監視する場合、VMwareホストはグループ内のプロキシ間でランダムに分散され、各プロキシがすべてのVMwareデータをキャッシュするため、vCenterへの負荷が増加します。