HAProxy (エンタープライズ)との統合
IBM® NS1 Connect® HAProxy エンタープライズアカウントを持つ顧客は、 ロードバランサーによって収集された重要な負荷関連メトリクスを に送信し、アプリケーションのエンドポイントとサービス全体でグローバル・サーバー負荷分散(GSLB)を構成することができる。 HAProxy NS1 Connect
ロードバランシングまたはロードシェディングは、負荷やデータセンターの容量制限に関連する障害を防止することで、アプリケーション配信の最適化を支援する重要なツールです。 NS1 Connect は、さまざまなロードバランサーとの統合をサポートしており、システム負荷、クライアントの応答時間、接続数などの負荷メトリクスをプラットフォームにプッシュし、DNSトラフィックのステアリング決定を最適化することができます。
準備
- HAProxy エンタープライズ版 1.8 以降にアクセスできる必要があります。
- 有効な NS1 Connect API キーを持ち、以下の権限を有効にしている必要があります:データフィードへのプッシュ、データソースの管理、データフィードの管理。
- HAProxy Enterprise の地理的に分散したインスタンスを2つ以上用意する必要があります。
- 以下の手順は、お客様のドメインのエンドポイントとサービスに対応するDNSレコードと応答がすでに作成済みであることを前提としています。
手順
HAProxy を使用して NS1 Connect 内で自動負荷分散を設定するには、以下の手順を実行する。
カスタムデータソースを作成する方法については 、「サードパーティデータソースの作成」 を参照してください。データソースの種類として NS1 API を選択します。 設定が完了したら、 の下にあるデータ ソースの横にある一意のソース ID を記録します。
前のステップで作成した NS1 Connect API データソースからデータフィードを作成する手順については、 データフィードの作成を参照してください。 監視対象のエンドポイントまたはサービスごとに、1つのデータフィードを作成する必要があります。
HAProxy データフィードからの負荷関連メタデータの自動更新を有効にするには、各アンサーの負荷関連メタデータを変更し、トラフィックのステアリング動作を通知するために低水位線と高水位線を設定する必要があります。
- 各データ フィードを対応する DNS 応答に接続する手順については、「モニターまたはデータ ソースを DNS 応答に接続する」 を参照してください。 この統合を行うには、データフィードを負荷関連メタデータフィールド(負荷平均、アクティブリクエスト、アクティブ接続)のいずれかに接続する必要があります。
- 各回答について、 NS1 Connect プラットフォームがエンドポイントへのトラフィック配信を減速し始めるべき時点を示すために、 Low watermark メタデータフィールドを編集します。 この値は、 HAProxy によって提供される現在の負荷メトリックと比較される。
- 各回答について、 「High watermark」 メタデータフィールドを編集し、 NS1 Connect がエンドポイントへのトラフィック配信を停止すべき時点を示します。 この値は、 HAProxy によって提供される現在の負荷メトリックと比較される。
- (推奨) Filter Chain の Up フィルタを使用して利用できないエンドポイントを排除する予定の場合は、ネイティブの NS1 Connect モニタまたはサードパーティーのデータソースを Up/down アンサーのメタデータフィールドに接続して、自動更新を有効にします。
NS1 Connect にデータを送信するように HAProxy ロードバランサーを設定するには、以下の手順に従います。 例えば、 HAProxy "Send Metrics" モジュールを使って、各ロードバランサーから NS1 Connect にアクティブな接続数を送ることができます。
- 各ロードバランサーサーバーにログインし、 HAProxy のSend Metricsモジュールをインストールします。
- HAProxy 設定ファイルを編集し、アクティブな接続に関連するデータを NS1 Connect に送信する。 をステップ 1 で生成したデータソース ID に置き換えます。 <sourceID> をステップ 1 で生成したデータソース ID に、 <$NSONE_API_KEY> を有効な NS1 Connect API キーに、そして <feed_name> をこのロードバランサーサーバーに対応する特定のデータフィードの名前に置き換えます。
module-path /opt/hapee-1.8/modules module-load hapee-lb-send-metrics.so send-metrics-url POST https://api.nsone.net/v1/feed/<sourceID> xdelay 1m 5s 1s 1s timeout 100ms retries 3 log verify none send-metrics-header 'X-NSONE-Key: <$NSONE_API_KEY>' send-metrics-content-type application/json send-metrics-data '{ "<feed_name>": { "connections": "%ac" }}' - HAProxy をリロードする。
- HAProxy のアクセスログが、Send Metricsモジュールがデータを正常に送信したことを示していることを確認します
送信済みメトリクス:メトリクスデータが正常に更新されました(1/0)
- 各ロードバランサーに対して、これらの手順を繰り返します。
設定を有効にするには、 HAProxy -connected DNSアンサーを含むDNSレコードの Filter Chain 。 Filter Chain 、Shed Loadフィルターが含まれていなければならない。 Up フィルタ、Shed Load フィルタ、Select First N フィルタ(この順)を含む、 自動負荷開 放で説明した Filter Chain の構成を参照。 これにより、アップとマークされ、負荷メトリックが許容範囲内にあるエンドポイントのみが考慮されることが保証されますが、リクエストを送信したクライアントには、リストの最初の回答のみが返されます。