This is a translation of the original English documentation page. Help us make it better.

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 Senderを使用する

入力ファイル内の異なるホストからの値をプロキシグループ内のプロキシに送信する場合は、-g オプションを使用して、一部の値が間違ったプロキシに送信されることを回避します。

プロキシ負荷分散の設定

監視ホストのプロキシ負荷分散を設定するには:

  1. プロキシグループを作成します(下記の"プロキシグループの設定"を参照)

パッシブチェックの場合、グループ内のすべてのプロキシをエージェントの Server パラメータにリストする必要があります。

監視対象ホストの ServerActive エージェントパラメータに、グループ内のすべてのプロキシを追加することは有益ですが、必須ではありません。アクティブエージェントは、ServerActive フィールドにプロキシを 1 つだけ指定してもプロキシ負荷分散は機能します。エージェントサービスが起動すると、エージェントはすべての Zabbix プロキシの IP アドレスの完全なリストを受信し、メモリにロードして保持します。アクティブチェック(および Zabbix 送信データリクエスト)は、現在のプロキシとホストの割り当てに基づいて、ホストの適切なオンラインプロキシにリダイレクトされます。

ServerActive フィールドにプロキシを 1 つだけ指定すると、そのプロキシがオフラインのときにエージェントを起動または再起動すると、監視データが失われる可能性があります。

  1. プロキシグループがオンラインであることを確認します。

  2. ホストをプロキシグループ単位で監視するように設定します(個々のプロキシ単位で監視するわけではありません)。ホストの一括更新(/manual/config/hosts/hostupdate)を使用して、ホストをプロキシグループに移動できます。

単一のプロキシ(プロキシグループに属している場合でも)で監視されているホストは、負荷分散/高可用性には適用されません。 また、プロキシグループに割り当てられているホストが10台未満の場合、グループ内のプロキシ間でホストの配分が不均等になる可能性があります。

  1. 設定の更新と、プロキシグループ内のプロキシ間でのホストの配分が完了するまで数秒待ちます。[監視] -> [ホスト] でホストリストを更新して、変更内容を確認します。

プロキシグループに属するプロキシからの自動登録/ネットワーク検出データに基づいてホストが作成されると、そのホストはこのプロキシグループで監視されるように設定されます。

制限事項
  • プロキシグループ内のプロキシでは、SNMPトラップはサポートされません。
  • 外部設定に依存するチェックは、プロキシグループ内のすべてのプロキシで同じ設定にする必要があります。これには以下が含まれます。
  • 外部チェック - スクリプト
  • データベースチェック - ODBC設定
  • "データベース監視"項目を使用する場合、DBオブジェクト/サーバーに拡張権限が必要です。
  • プロキシグループで監視する場合、VMwareホストはグループ内のプロキシ間でランダムに分散され、各プロキシがすべてのVMwareデータをキャッシュするため、vCenterへの負荷が増加します。
ファイアウォールで発生する可能性のある問題

エージェントは、ファイアウォールレベルですべてのプロキシに常にアクセスできるようにする必要があります。以下のシナリオを検討してください。

  • Zabbixエージェントのアクティブチェックにおいて、エージェント起動時に最初のプロキシが応答し、別のプロキシにリダイレクトします。もう一方のプロキシはファイアウォールの問題のためにアクセスできず、もう一方のプロキシの応答を待つ状態で通信が停止します。この状況の根本的な原因は、最初のプロキシがもう一方のプロキシが確実に正常であることを認識していたことです。最初のプロキシに障害が発生した場合、これは問題ではありません。その場合、最初のプロキシは"ServerActive"パラメータで設定された別のアドレスを試します。
  • HA設定は数ヶ月間安定しています。ホストの再バランス調整は行われておらず、必要ありません。エージェントは他のプロキシへの"バックアップ"チャネルを検証する必要はありません。フェイルオーバーシナリオでは、半年前にファイアウォールが変更されたために失敗する可能性があります。

プロキシグループの設定

Zabbix フロントエンドでプロキシグループを設定するには、以下の手順に従います。

  • 管理 → プロキシグループ へ移動します。
  • プロキシグループの作成 をクリックします。

パラメータ 説明
名前 プロキシグループ名を入力します。
フェイルオーバー間隔 フェイルオーバーを実行するまでの間隔を秒単位で入力します(デフォルトは1分、許容範囲は10秒~15分)。
時間サフィックスがサポートされています(例:30秒、1分)。
ユーザーマクロがサポートされています。
プロキシの最小数 グループをオンラインにするために必要なオンラインプロキシの最小数を入力します(デフォルトは1、許容範囲は1~1000)。
ユーザーマクロがサポートされています。
説明 プロキシグループの説明を入力します。
プロキシ グループ内のプロキシの一覧です。最大5つのプロキシを表示できます(プロキシへの権限に応じて、リンクまたはプレーンテキストで表示されます)。
既存のプロキシグループを編集する場合、グループ内に少なくとも1つのプロキシが存在すると、この一覧が表示されます。