2 プロキシの負荷分散と高可用性
概要
プロキシ負荷分散により、プロキシグループ単位でホストを監視できます。これにより、プロキシ間でのホストの自動分散と高いプロキシ可用性が実現します。
プロキシグループ内の1つのプロキシがオフラインになった場合、そのホストは、グループ内で割り当てホスト数が最も少ない他のプロキシに即座に分散されます。また、プロキシのホスト数がグループ平均と比較して多すぎる/少なすぎる場合は、ホストを均等に分散するグループの再分散がトリガーされます。
ホストの再分散は、オンラインのプロキシグループでのみ行われます。プロキシグループが"オンライン"になるのは、設定された最小数のプロキシがオンラインになっている場合(オフラインまたは不明ではない場合)、そのプロキシグループが"オンライン"になっている状態です。
オンラインプロキシの最小数は、グループ内のプロキシの総数よりも小さくする必要があります。10台のプロキシグループで最小オンラインプロキシ数を10に設定すると、1台のプロキシに障害が発生した場合にグループ全体がオフラインになる状況が発生します。オンラインプロキシは6台必要となるのが理想的です。これにより、4台のプロキシが不健全な状態になっても対応できます。
プロキシの状態は以下のとおりです。
- オンライン - フェイルオーバー遅延 期間中、プロキシとの通信があった場合(パッシブプロキシがサーバーリクエストに応答し、アクティブプロキシがサーバーにリクエストを送信した場合)。
- オフライン - フェイルオーバー遅延期間中、プロキシとの通信がなかった場合。
- 不明 - プロキシ作成後またはサーバー起動後。
プロキシグループの状態は、zabbix[プロキシグループ,<名前>,状態] および zabbix[プロキシグループ,ディスカバリ] 内部アイテムで監視できます。
プロキシの負荷分散と高可用性は、プロキシグループマネージャ プロセスによって管理されます。プロキシグループマネージャは、他のプロキシが正常か異常かを常に把握しています。
バージョン互換性
- アクティブモードでのプロキシグループ操作は、Zabbixエージェント7.0以降でのみサポートされます。
- Zabbix 7.0より前のバージョンのプロキシと、それらのプロキシによって監視されているホストは、アップグレードされるまで再バランス調整操作から除外されます。
ホストの再配分
プロキシの負荷分散と高可用性は、Zabbixサーバーのプロキシグループマネージャを介して管理されます。このマネージャは、各プロキシグループ内のすべてのプロキシの状態とホストの配分を継続的に監視します。
グループ内のプロキシの高可用性は、プロキシがオフラインになると起動され、そのホストは即座に他のプロキシに再配分されます。
また、プロキシの負荷分散も発生し、ホストは割り当てホスト数が最も少ないプロキシに再割り当てされます。
さらに、プロキシのホスト数がグループ平均から10台以上かつ2倍以上の差(ホスト超過またはホスト不足)がある場合にも、プロキシの負荷分散が起動されます。
猶予期間(10 x フェイルオーバー遅延)が経過しても不均衡が続く場合、プロキシグループはホストの再配分キューに登録されます。
プロキシグループマネージャは、以下のロジックを使用してホストを再配分します。
- プロキシあたりの平均ホスト数を計算します。
- ホストが過剰になっているプロキシの場合、超過ホストを未割り当てのプロキシプールに移動します。
- ホストが不足しているプロキシの場合、バランスをとるために必要なホスト数を計算します。
- ホストが最も多いプロキシから必要な数のホストを削除します。
- 未割り当てのホストを、ホストが最も少ないプロキシに移動します。
ホストの再配分の例:
| プロキシ上のホスト数 | グループ平均 | ホストの再割り当て |
|---|---|---|
| 100 | 50 | はい |
| 60 | 50 | いいえ |
| 40 | 50 | いいえ |
| 25 | 50 | はい |
| 15 | 5 | はい |
| 10 | 5 | いいえ |
::: 重要 単一のプロキシ(プロキシグループに属している場合でも)によって監視されるホストは、負荷分散/高可用性には影響しません。 また、プロキシグループ内のホストが10台未満の場合、グループ内のプロキシ間でホストの分散が不均一になる可能性があります。 :::
プロキシグループの設定
Zabbix フロントエンドでプロキシグループを設定するには、以下の手順に従います。
- 管理 → プロキシグループ へ移動します。
- プロキシグループの作成 をクリックします。

| パラメータ | 説明 |
|---|---|
| 名前 | プロキシグループ名を入力します。 |
| フェイルオーバー間隔 | フェイルオーバーを実行するまでの間隔を秒単位で入力します(デフォルトは1分、許容範囲は10秒~15分)。 時間サフィックスがサポートされています(例:30秒、1分)。 ユーザーマクロがサポートされています。 |
| プロキシの最小数 | グループをオンラインにするために必要なオンラインプロキシの最小数を入力します(デフォルトは1、許容範囲は1~1000)。 ユーザーマクロがサポートされています。 |
| 説明 | プロキシグループの説明を入力します。 |
| プロキシ | グループ内のプロキシの一覧です。最大5つのプロキシを表示できます(プロキシへの権限に応じて、リンクまたはプレーンテキストで表示されます)。 既存のプロキシグループを編集する場合、グループ内に少なくとも1つのプロキシが存在すると、この一覧が表示されます。 |
プロキシ負荷分散の設定
プロキシ負荷分散を使用するには、Zabbixフロントエンドでプロキシグループを設定(上記参照)し、ホストが個々のプロキシではなくプロキシグループで監視されていることを確認する必要があります(ホストの一括更新を使用して、ホストをプロキシからプロキシグループに移動できます)
さらに、Zabbixエージェントを以下のように設定します。
- パッシブチェックの場合、Serverパラメータに、すべてのプロキシグループプロキシをリストします。
- アクティブチェック の場合、ServerActive パラメータに、すべてのプロキシグループプロキシまたは Zabbix サーバーをリストすることをお勧めします。 Zabbix エージェント 7.0 以降のみが、アクティブモードでプロキシグループと連携して動作します。
ServerActive パラメータにプロキシグループ(または Zabbix サーバー)から 1 つのプロキシのみが含まれている場合でも、エージェントは正しいプロキシに接続できます。
エージェントサービスが起動し、指定されたプロキシに接続すると、エージェントはグループ内のプロキシ IP の完全なリストと現在の負荷を受信してキャッシュします。
その後、アクティブチェックは、プロキシグループ内の現在のプロキシとホストの割り当てに基づいて、ホストの適切なオンラインプロキシにリダイレクトされます。
ZabbixエージェントのServerActiveパラメータにプロキシを1つしか指定していない場合、指定されたプロキシがオフラインの状態でエージェントを起動/再起動すると、監視データが失われる可能性があります。
Zabbix senderを使用する場合、データリクエストは、プロキシグループ内の現在のプロキシとホストの割り当てに基づいて、ホストの適切なオンラインプロキシにもリダイレクトされます。
ただし、入力ファイルから複数のホストの値を送信する場合は、-g オプションを使用して、間違ったプロキシにデータが送信されないようにしてください。
Zabbixエージェントは、ファイアウォールを介してプロキシグループ内のすべてのプロキシに接続できる必要があります。 そうでない場合、リダイレクトまたはフェイルオーバー中にアクティブチェックがハングしたり失敗したりする可能性があります。例:
- アクティブチェック中に、プロキシがエージェントを別のプロキシにリダイレクトすることがあります。当該プロキシがファイアウォールによってブロックされている場合、応答を待つ間、通信がハングアップします。
- 安定した高可用性環境で、最近リバランスが行われていない場合、エージェントがバックアッププロキシに接続しない可能性があります。ファイアウォールルールが変更され、テストが行われていない場合、フェイルオーバーが失敗する可能性があります。
プロキシ負荷分散のテスト
プロキシ負荷分散をテストするには、以下の手順に従います。
- プロキシグループを設定します。
- プロキシグループがオンライン状態であることを確認します。
- ホストが個々のプロキシではなく、プロキシグループによって監視されていることを確認します(ホストの一括更新を使用して、プロキシからプロキシグループにホストを移動できます)
- 設定が更新され、プロキシグループ内のプロキシ間でホストが分散されるまで数秒待ちます。 監視 > ホスト でホストリストを更新して、変更内容を確認します。
制限事項
- プロキシグループ内のプロキシでは、SNMPトラップはサポートされません。
- 外部設定に依存するチェックは、プロキシグループ内のすべてのプロキシで同じ設定にする必要があります。これには以下が含まれます。
- 外部チェック - スクリプト
- データベースチェック - ODBC設定
- "データベース監視"項目を使用する場合、DBオブジェクト/サーバーに拡張権限が必要です。
- プロキシグループで監視する場合、VMwareホストはグループ内のプロキシ間でランダムに分散され、各プロキシがすべてのVMwareデータをキャッシュするため、vCenterへの負荷が増加します。