メトリック、アラート、リソース正常性を使用した Standard Load Balancer の診断

Azure Load Balancerでは、次の診断機能が公開されています。

  • 多次元メトリックとアラート: Azure Load Balancer構成のAzure Monitorによる多次元診断機能を提供します。 ご利用の Standard Load Balancer リソースの監視、管理、トラブルシューティングを行うことができます。

  • Resource health: ロード バランサーのResource Healthの状態は、Resource health ページの Monitor で確認できます。 この自動チェックによって、Load Balancer リソースの現在の可用性が通知されます。

この記事では、これらの機能の概要、および Standard Load Balancer でこれらの機能を使う方法について説明します。

多次元メトリックを使用して Azure Load Balancer を監視する

Azure Load Balancerは、Azure ポータルの Azure メトリックを使用して多次元メトリックを提供し、ロード バランサー リソースに対するリアルタイムの診断分析情報を取得するのに役立ちます。 Basic Load Balancer では、多次元メトリックはサポートされないので注意してください

Load Balancer をさまざまに構成することで、次のメトリックを取得できます。

メトリック リソースの種類 説明 推奨される集計
データパスの可用性 パブリックおよび内部ロード バランサー Load Balancer は、リージョン内から Load Balancer フロントエンドを経て、VM をサポートする根ネットワークに至るまでのデータ パスを継続的に学習します。 正常なインスタンスが保持されていれば、測定ではアプリケーションの負荷分散されたトラフィックと同じパスに従います。 使用中のデータ パスが検証されています。 測定はアプリケーションには見えないので、他の操作と干渉することはありません。 Average
正常性プローブの状態 パブリックおよび内部ロード バランサー Load Balancer では、構成設定に従ってアプリケーション エンドポイントの正常性を監視する、分散型の正常性プローブ サービスが使われます。 このメトリックは、ロード バランサー プールのインスタンス エンドポイントの集計ビューまたはエンドポイントごとのフィルター ビューを提供します。 正常性プローブ構成で示されているアプリケーションの正常性を、Load Balancer がどのように表示するのかを確認できます。 Average
SYN Count (SYN 数) パブリックおよび内部ロード バランサー Load Balancer は、伝送制御プロトコル (TCP) 接続を終了したり、TCP または ユーザー データグラム パケット (UDP) のパケット フローと対話したりすることはありません。 フローとハンドシェイクは、常にソースと VM インスタンスの間で発生します。 TCP プロトコルのシナリオのトラブルシューティングを適切に行うために、SYN パケット カウンターを使用して TCP 接続試行の数を把握できます。 このメトリックは、受信済みの TCP SYN パケットの数を報告します。 SUM
送信元ネットワーク アドレス変換 (SNAT) の接続数 パブリック ロード バランサー Load Balancer は、パブリック IP アドレス フロントエンドにマスカレードされた送信フローの数を報告します。 SNAT ポートは有限のリソースです。 このメトリックはアプリケーションが送信フローで SNAT にどれくらい依存しているかを示すことができます。 送信 SNAT フローの成功および失敗のカウンタが報告されます。 カウンターは、トラブルシューティングや送信フローの健全性を解釈するために使用できます。 SUM
割り当てられた SNAT ポート パブリック ロード バランサー Load Balancer では、バックエンド インスタンスごとに割り当てられる SNAT ポートの数が報告されます。 Average
使用された SNAT ポート パブリック ロード バランサー Load Balancer からは、バックエンド インスタンスごとに活用されている SNAT ポートの数が報告されます。 Average
Byte Count (バイト数) パブリックおよび内部ロード バランサー Load Balancer は、フロントエンドごとの処理済みデータ量を報告します。 バックエンド インスタンス間でバイト数が均等に配布されていないことがわかります。 これは、Azure Load Balancer アルゴリズムがフローに基づいていると想定されます SUM
パケット数 パブリックおよび内部ロード バランサー Load Balancer は、フロントエンドごとに処理されたパケット数を報告します。 SUM

Note

SYN パケット、バイト数、パケット数などの帯域幅関連のメトリックでは、UDR を介する (たとえば、NVA またはファイアウォールからの) 内部 Load Balancer へのトラフィックはキャプチャされません。

SYN 数、パケット数、SNAT 接続数、バイト数のメトリックでは、最大値と最小値を集計できません。 データ パスの可用性と正常性プローブの状態にはカウントの集計をお勧めしません。 正常性データを最適に表すためには、代わりに平均を使用します。

Note

ロード バランサーの作成または更新後、データ パスの可用性メトリックがAzure Monitorメトリックに表示されるまでに最大 10 分かかる場合があります。

Azure ポータルでロード バランサーのメトリックを表示する

Azureポータルでは、メトリクスページを通じてロードバランサーのメトリクスを公開します。 このページは、特定のリソースのロード バランサーのリソース ページとAzure Monitor ページの両方で使用できます。

Note

Azure Load Balancer は、割り当て解除された仮想マシンにヘルス プローブを送信しません。 仮想マシンが解除されると、ロードバランサーはそのインスタンスのメトリクスの報告を停止します。 利用できない指標はポータル上で破線で表示されたり、指標が取得できないエラーメッセージが表示されたりします。

Load Balancer リソースのメトリックを表示するには:

  1. [メトリック] ページに移動し、次のいずれかを実行します。

    • ロード バランサー リソース ページで、ドロップダウン リストからメトリックの種類を選択します。

    • Azure Monitor ページで、ロード バランサー リソースを選択します。

  2. 適切なメトリック集計の種類を設定します。

  3. 必要に応じて、フィルター処理およびグループ化を構成します。

  4. 必要に応じて、時間の範囲と集計を構成します。 既定では、時刻は UTC で表示されます。

Note

データは 1 分間に 1 回サンプリングされるため、時間の集計は、特定のメトリックを解釈する場合に重要になります。 時間を5分に設定し、SNAT割り当てなどの指標にSumというメトリック集約タイプを使うと、グラフには割り当てられたSNATポート数の5倍が表示されます。

推奨事項:Sum and Count のメトリクス集計タイプを分析する際は、1分を超える時間集計値を使用してください。

API を使用してプログラムで多次元メトリックを取得する

多次元メトリクスの定義や値の取得に関するAPIガイダンスについては、Azure Monitoring REST APIのウォークスルーをご覧ください。 これらの指標は、すべての指標カテゴリの診断設定を追加することでストレージアカウントに書き込むことができます。

一般的なAzure Load Balancer診断シナリオと推奨ビュー

データ パスが稼働していて Load Balancer Frontend に使用可能か?

展開する

データ パスの可用性メトリックでは、VM が存在するコンピューティング ホストまでの、データ パスのリージョン内の正常性が示されます。 メトリックは、構成とAzure インフラストラクチャに基づいて、ロード バランサーの正常性を反映したものです。 このメトリックは次の目的に使うことができます。

  • サービスの外部可用性を監視します。

  • サービスがデプロイされているプラットフォームを調査し、正常かどうかを判断します。 ゲスト OS またはアプリケーション インスタンスが正常かどうかを確認します。

  • イベントがサービスと基盤のデータ プレーンのどちらに関係するかを切り分けます。 このメトリックと正常性プローブの状態メトリックを混同しないようにしてください。

Load Balancer リソースのデータ パスの可用性を取得するには:

  1. 正しいロード バランサー リソースが選ばれていることを確認します。

  2. [メトリック] ドロップダウン リストで [Data Path Availability](データ パスの可用性) を選択します。

  3. [集計] ドロップダウン リストで [平均] を選択します。

  4. さらに、必要なフロントエンド IP アドレスまたはフロントエンド ポートを含むディメンションとしてフロントエンド IP アドレスまたはフロントエンド ポートに対するフィルターを追加します。 次に、選択したディメンションでグループ化します。

メトリックは、トラフィックをシミュレートするリージョン内のプローブ サービスによって生成されます。 プローブ サービスでは、展開のフロントエンドと負荷分散規則に一致するパケットが定期的に生成されます。 パケットはその後、送信元からバックエンドプール内のVMのホストまでリージョンを通過します。 ロード バランサー インフラストラクチャは、他のすべてのトラフィックの場合と同じ負荷分散操作と変換操作を実行します。 バックエンド プール内の VM が存在するホストにプローブが到達した後に、ホストはプローブ サービスへの応答を生成します。 VM はこのトラフィックを認識しません。

データ パスの可用性メトリックは、負荷分散規則を使用するフロントエンド IP 構成でのみ生成されるこので注意してください。

データ パスの可用性メトリックは、次の理由により機能が低下する可能性があります。

  • 展開のバックエンド プールに正常な VM が残っていない。

  • インフラストラクチャ障害が発生した。

診断の目的で、データ パスの可用性メトリックと共に正常性プローブの状態を使うことができます。

ほとんどのシナリオでは集計として平均を使います。

Load Balancer のバックエンド インスタンスはプローブに応答しているか?

展開する

正常性プローブ状態メトリックでは、ユーザーがロード バランサーの正常性プローブを構成するときにユーザーによって構成されたアプリケーションのデプロイの正常性が示されます。 ロード バランサーは、正常性プローブの状態を使って、新しいフローの送信先を決めます。 正常性プローブは、Azure インフラストラクチャ アドレスから送信され、VM のゲスト OS 内に表示されます。

Load Balancer リソースの正常性プローブの状態を取得するには:

  1. Health Probe StatusメトリックをAvg集約タイプで選択します。

  2. 必要なフロントエンドの IP アドレスまたはポート (またはその両方) にフィルターを適用します。

正常性プローブは次の理由で失敗します。

  • リッスンしていないポート、応答していないポート、または正しくないプロトコルを使用しているポートに対して、正常性プローブを構成している。 サービスが Direct Server Return またはフローティング IP ルールを使っている場合は、サービスが、NIC の IP 構成の IP アドレスとフロントエンド IP アドレスで構成されたループバックでリッスンしていることを確認します。

  • ネットワーク セキュリティ グループ、VM のゲスト OS ファイアウォール、またはアプリケーション層フィルターが、正常性プローブのトラフィックを許可していません。

ほとんどのシナリオでは集計として平均を使います。

送信接続の統計情報を確認する方法

展開する

SNAT接続数指標は 、アウトバウンドフローの成功した接続と失敗した接続の量を表します。

接続容量が0を超える失敗はSNATポートの消耗を示します。 これらの故障の原因を特定するために、さらに調査が必要です。 SNAT ポートの不足は、送信フロー確立の失敗として示されます。 シナリオおよび動作メカニズムを理解し、SNAT ポートの不足を軽減する方法または回避する設計の方法を学習するには、送信接続に関する記事をご覧ください。

アウトバウンド接続が断続的に故障する場合は、SNATポートの消耗が原因かもしれません。 SNATポート利用率と割り当て指標を確認し、SNATポート枯渇ガイダンスを確認してください。 より大きなSNAT容量を使いたい場合は、Azure NAT Gatewayをご利用ください。

SNAT 接続の統計情報を取得するには:

  1. トリックの種類として [SNAT Connections](SNAT 接続) を、集計として [合計] を選択します。

  2. SNAT 接続の成功と失敗のカウントを異なる行に表示するには、 [接続の状態] でグループ化します。

SNAT ポートの使用状況と割り当てを確認する方法

展開する

[使用された SNAT ポート] メトリックでは、送信フローを保持するために使用されている SNAT ポートの数が追跡されます。 この指標は、インターネットソースとロードバランサーの背後にあるバックエンドのVMや仮想マシンスケールセットとの間で、パブリックIPアドレスを持たないユニークなフローの数を示します。 使用しているSNATポート数と割り当て済みSNATポートの指標を比較することで、サービスがSNAT耗尽やアウトバウンドフロー障害のリスクがあるかどうかを判断できます。

メトリックが送信フロー障害のリスクを示している場合は、サービスの正常性を確保するために、こちらの記事を参照し、この問題を軽減するための手順を実行してください。

SNAT ポートの使用状況と割り当てを確認するには:

  1. グラフの時間の集計を 1 分に設定して、目的のデータが表示されるようにします。

  2. メトリックの種類として [使用された SNAT ポート] および/または [割り当てられた SNAT ポート] を選択し、集計として [平均] を選択します。

    • 既定では、これらのメトリックは、各バックエンド VM または仮想マシン スケール セットに割り当てられた、またはこれらによって使用されている SNAT ポートの平均数です。 これらは、Load Balancer にマップされているすべてのフロントエンド パブリック IP に対応し、TCP と UDP を介して集計されます。

    • ロード バランサーが使用している、またはロード バランサーに割り当てられた SNAT ポートの合計数を確認するには、メトリック集計の [Sum](合計) を使用します。

  3. フィルター処理によって、特定のプロトコルの種類、一連のバックエンド IP、および/またはフロントエンド IP に絞り込みます。

  4. バックエンドまたはフロントエンド インスタンスごとに正常性を監視するには、分割を適用します。

    • 分割では、一度に 1 つのメトリックしか表示できないので注意してください。
  5. 例えば、マシンごとのTCPフローのSNAT使用状況を監視し、 平均で集約し、 バックエンドIPで分割し、 プロトコルタイプでフィルタリングします。

サービスの受信および送信接続試行をどうやって確認すればいいですか?

展開する SYN パケット メトリックは、特定のフロントエンドに関連付けられている、到着した TCP SYN パケットまたは送信された TCP SYN パケット (送信フローの場合) の量を示します。 このメトリックを使用して、サービスへの TCP 接続の試行を把握できます。

アウトバウンド接続の詳細については、「アウトバウンド接続に送信元ネットワーク アドレス変換 (SNAT) を使用する」を参照してください。

ほとんどのシナリオでは、集計として Sum を使用します。

ネットワーク帯域幅の消費量を確認する方法

展開する

バイト カウンターおよびパケット カウンターのメトリックは、フロントエンドごとにサービスによって送信または受信されたバイトおよびパケットの量を示します。

ほとんどのシナリオでは、集計として Sum を使用します。

バイト数またはパケット数の統計情報を取得するには:

  1. Bytes CountとPacket Countのメトリクスタイプを選択し、Sumをアグリゲーションとして使います。

  2. 以下のいずれかを実行します。

    • 特定のフロントエンド IP、フロントエンド ポート、バックエンド IP、またはバックエンド ポートにフィルターを適用します。

    • フィルターを適用せずにロード バランサー リソースの全体的な統計情報を取得します。

ロードバランサーのデプロイメントをどうやって診断すればいいですか?

展開する

データ パスの可用性メトリックと正常性プローブの状態メトリックを 1 つのグラフに組み合わせて使用すると、問題を探して解決する必要がある場所を特定することができます。 Azureが正しく動作していることを保証し、この知識を使用して、構成またはアプリケーションが根本原因であると確定的に判断できます。

正常性プローブ メトリックを使用して、Azureが指定した構成に従ってデプロイの正常性を表示する方法を理解できます。 正常性プローブを確認することは、常に、原因を監視または特定するのに適した第一歩です。

さらに一歩進み、データ パスの可用性メトリックを使用して、特定のデプロイを担当Azure基になるデータ プレーンの正常性を表示する方法を把握できます。 次の例に示すように、両方のメトリックを組み合わせると、障害の可能性がある場所を分離できます。

データ パスの可用性メトリックと正常性プローブの状態メトリックの組み合わせ。

図: データ パスの可用性メトリックと正常性プローブの状態メトリックの組み合わせ

このグラフには次の情報が表示されます。

  • グラフの先頭では、VM をホストするインフラストラクチャは使用できず、0% でした。 その後、インフラストラクチャは正常で、VM に到達可能になり、複数の VM がバックエンドに配置されていました。 データパスの利用可能性を示す青いトレースは、後に100%に更新され、この情報を示しています。

  • 紫色のトレースで示されている正常性プローブの状態は、グラフの先頭では 0% です。 緑色の円で囲んだ領域は正常性プローブ状態が正常になった場所を示し、この時点で、ユーザーのデプロイは新しいフローを受け付けることができるようになりました。

このチャートは、他の問題が起きているかどうかを推測したりサポートに尋ねたりすることなく、デプロイメントのトラブルシューティングに役立ちます。 このサービスは、誤った構成またはアプリケーションの障害によって正常性プローブが失敗したため、利用できませんでした。

多次元メトリックのアラートを構成する

Azure Load Balancerでは、多次元メトリックに対して簡単に構成可能なアラートがサポートされます。 タッチレスのリソース監視エクスペリエンスを強化するには、特定のメトリックのカスタムしきい値を、さまざまなレベルの重大度でアラートをトリガーするように構成します。

アラートを構成するには、以下の手順に従います。

  1. Load Balancer のアラート ページに移動する

  2. 新しいアラート ルールの作成

    1. アラート条件の設定(ノイズの多いアラートを避けるために、集計タイプを平均に設定し、5分間のデータウィンドウを振り返り、閾値95%でアラートを設定してください)

    2. (省略可能) 自動修復のアクション グループを追加します。

    3. アラートの重大度、名前、直感的な反応を可能にする説明を割り当てます。

受信可用性のアラート

Note

もしロードバランサーのバックエンドプールが空なら、ロードバランサーには有効なデータパスがテストされていません。 その結果、データパスの可用性メトリックは利用できず、データパス可用性メトリック上のAzureアラートもトリガーされません。

インバウンドの可用性に関するアラートを出すには、データパスの可用性指標とヘルスプローブの状態指標を使って別々のアラートを作成できます。 顧客ごとに特定のアラートロジックが必要なシナリオが異なる場合がありますが、以下の例はほとんどの設定に役立ちます。

データパスの可用性を利用することで、特定の負荷分散ルールが利用できなくなった際にアラートを発送できます。 このアラートを構成するには、データ パスの可用性に関するアラート条件を設定し、フロントエンド ポートとフロントエンド IP アドレスの両方について、すべての現在値と将来値で分割します。 アラートロジックを0以下に設定すると、負荷分散ルールが応答しなくなったときにこのアラートが発動します。 どのような評価が望ましいかに応じて、集計の粒度と評価の頻度を設定してください。

ヘルスプローブの状態を使うことで、特定のバックエンドインスタンスが長期間ヘルスプローブに応答しなかったときにアラートを出すことができます。 アラート条件をヘルスプローブステータスメトリックに設定し、バックエンドIPアドレスとバックエンドポートで 平均集約 タイプを使って分割します。 これにより、個々のバックエンド インスタンスが特定のポートでトラフィックを処理できるかどうかについて、個別にアラートを送信を確実に行えます。

送信可用性のアラート

アウトバウンドの可用性については、SNAT接続数と使用済みSNATポートメトリクスを使って2つの別々のアラートを設定することができます。

アウトバウンド接続障害を検出するには、SNAT接続数メトリックを使用し、 Connection State = Failedにフィルターをかけてアラートを設定してください。 集計は合計を使用します。 その後、この指標をバックエンドIPアドレスごとに分割し、現在および将来の値すべてを含めるように設定し、接続が失敗した各バックエンドインスタンスごとに個別にアラートを出せます。 送信接続エラーの発生が予想される場合は、しきい値を 0 以上の数値に設定してください。

使用済みSNATポートの指標を使えば、SNATの耗尽やアウトバウンド接続障害のリスクが高いアラートを設定できます。 このアラートを使う際は、バックエンドのIPアドレスとプロトコルごとに分けてください。 平均集計を使用します。 安全でないと判断したインスタンスごとに割り当てたポート数の割合以上の閾値を設定してください。 たとえば、バックエンド インスタンスが割り当てられたポートの 75% を使用したときに、重大度の低いアラートを発するように設定します。 割り当てられたポートの 90% または 100% を使用する場合は、重大度の高いアラートを構成します。

リソースの正常性状態

Standard Load Balancer リソースの正常性状態は、 の既存の > によって表示されます。 フロントエンドの負荷分散エンドポイントが利用できるかどうかを判断するデータ パス可用性を見ることで 2 分おきに評価されます。

リソースの正常性状態 説明
利用可能 ご利用の Standard Load Balancer リソースは正常であり、使用可能です。
低下しています Standard Load Balancer のプラットフォームやユーザーが開始したイベントのパフォーマンスが影響を受けます。 [データパスの可用性] メトリックでは、少なくとも 2 分間に 90% を下回るが、25% を上回る正常性が報告されました。 この状態では、パフォーマンスは、中から重大までの影響を受けます。 Azure Load Balancer のSupport とトラブルシューティングを参照して、可用性に影響を与えるユーザーが開始したイベントがあるかどうかを判断します。
使用不可 ご利用の Standard Load Balancer リソースは正常ではありません。 [データパスの可用性] メトリックでは、少なくとも 2 分間に 25% を下回る正常性が報告されました。 この状態では、パフォーマンスが大きな影響を受けたり、受信接続の可用性が不足したりします。 ユーザーまたはプラットフォーム イベントによって可用性が失われる可能性もあります。 Azure Load Balancer のSupport とトラブルシューティングを参照して、可用性に影響を与えるユーザーが開始したイベントがあるかどうかを判断します。
不明 ロード バランサー リソースの正常性状態が更新されていないか、過去 10 分間にデータ パスの可用性に関する情報が受信されていません。 これは一時的な状態であり、データが受信されれば、すぐに正しい状態が反映されます。

パブリック Standard Load Balancer リソースの正常性を表示するには:

  1. [監視]>[サービス正常性] の順に選択します。

  2. [リソース正常性] を選び、[サブスクリプション ID] が選ばれていることと [リソースの種類] = [ロード バランサー] に設定されていることを確認します。

  3. 一覧で、正常性状態の履歴を表示するロード バランサー リソースを選択します。

リソースの正常性状態の一般的な説明については、リソース正常性に関するドキュメントを参照してください。

リソース正常性アラート

Azure Resource Healthアラートは、ロード バランサー リソースの正常性状態が変化したときにほぼリアルタイムで通知できます。 Load Balancer リソースが [機能低下] または [利用不可] 状態になったときに通知するように、リソース正常性アラートを設定することをお勧めします。

ロード バランサー Azureリソース正常性アラートを作成すると、Azureはリソース正常性通知を Azure サブスクリプションに送信します。 次に基づいてアラートを作成およびカスタマイズできます。

  • 影響を受けたサブスクリプション
  • 影響を受けたリソース グループ
  • 影響を受けたリソースの種類 (Load balancer)
  • 特定のリソース (アラートを設定するために選択した任意の Load balancer リソース)
  • 影響を受けた Load Balancer リソースのイベントの状態
  • 影響を受けた Load Balancer リソースの現在の状態
  • 影響を受けた Load Balancer リソースの以前の状態
  • 影響を受けた Load Balancer リソースの理由の種類

次の方法でアラートを送信するユーザーを構成することもできます。

  • 新しいアクション グループ (将来のアラートで使用できます)
  • 既存のアクション グループ

これらのリソース正常性アラートを設定する方法の詳細については、次を参照してください。

次のステップ