Azure Application Gatewayのバックエンド正常性確認方法と監視設定手順
Azure Application Gatewayのバックエンド正常性の確認方法と、Azure Monitorを使った監視アラートの設定方法についてまとめました。
Azure Application Gatewayは、Webアクセスを受け付けてバックエンドサーバーへトラフィックを分散する、L7(アプリケーション層)で動作するロードバランサー(負荷分散装置)です。
Application Gatewayは、バックエンド(振り分け先)のホスト(サーバー)の状態をヘルスプローブ(正常性を確認する仕組み)によって定期的に監視し、正常と判断されたホストのみに通信を振り分けます。
このバックエンドの正常性はAzure Portal上から確認することができます。
また、正常なホストの数を示すHealthy Host Countや、異常なホストの数を示すUnhealthy Host Countといったメトリックでも把握できます。
Application Gateway – バックエンドの正常性
Webサービスを安定して稼働させるためには、このバックエンドの正常性を監視しておくことが重要になります。
今回は、Azure Application Gatewayのバックエンド正常性をAzure Portal、Azure CLI、Azure PowerShellで確認する方法と、Azure Monitorを使った監視アラートの設定方法をまとめました。
※本記事では、一部を除きAzure Application Gatewayとして表記しています。メニュー上の表記でアプリケーションゲートウェイとある場合は、メニュー表記に合わせて表記しています。
Azure Application Gatewayのバックエンド正常性を確認する方法
今回利用した環境
今回利用したApplication Gatewayの設定内容です。
バックエンドターゲットとしてIISをインストールした仮想マシンを2台配置しています。
| Application Gatewayの設定値 | |
| 名前 | agw-01 |
| レベル | Standard V2 |
| バックエンドプール名 | backend-pool-01 |
| バックエンドターゲット | Webサーバー(仮想マシン)2台 |
| バックエンド設定名 | backend-01 |
| バックエンドプロトコル | HTTP |
| バックエンドポート | 80 |
※カスタムプローブなどは使用していません。
Azure Portalでバックエンド正常性を確認
監視にバックエンド正常性のメニューが用意されています。
| Azure Portalでバックエンド正常性を確認 | |
| ホスト(サーバー)単位でバックエンドの正常性を確認できます。 異常が発生した場合はエラー内容が表示されます。 バックエンドポートなどの情報も表示されるため、同じホスト(サーバー)で異なるポートを指定している場合でも、それぞれの状態を確認できます。 |
【正常時】 |
|
【異常時】 |
|
メトリックでバックエンド正常性を確認
メトリックとは、Azure Monitorが収集する、Azureリソースの稼働状況を数値で可視化する機能です。
バックエンド正常性に関連するメトリックとして、正常なホストの数(Healthy Host Count)と異常なホストの数(Unhealthy Host Count)があります。
それぞれ、バックエンドプール内にあるホストの状態(正常/異常)ごとの台数を示しています。
| メトリックでバックエンド正常性を確認 | |
| 正常なホストの数(Healthy Host Count)の例です。 途中で正常なホストの数が2から1に減少していることが確認できます。 |
![]() |
|
異常なホストの数(Unhealthy Host Count)の例です。 |
![]() |
※Azure Portalの画面例は、バックエンドのサーバー2台のうち1台が異常になった場合です。
Azure PowerShellでバックエンド正常性を確認
Azure PowerShellでバックエンド正常性を確認する場合は、Get-AzApplicationGatewayBackendHealthコマンドレットを使用します。
Get-AzApplicationGatewayBackendHealth
| Azure PowerShellでバックエンド正常性を確認 | |
|
※PowerShell 7.6.0、Az Module 15.4.0、Az.Network 7.25.1の環境で確認してます。
Azure CLIでバックエンド正常性を確認
Azure CLIでバックエンド正常性を確認する場合は、az network application-gateway show-backend-healthコマンドを使用します。
az network application-gateway show-backend-health
| Azure CLIでバックエンド正常性を確認 | |
|
※Azure CLIは、2.84.0の環境で確認してます。
—広告—
Application Gatewayのバックエンド正常性を監視するアラートルールをAzure Monitorで作成
Azure Monitorのアラートルールを使うと、メトリックの値が指定した条件に該当した場合にメール通知などのアクションを自動実行できます。
ここでは、バックエンドの正常性を監視するアラートルールを作成します。
アラートルールの設定値
今回設定したアラートルールの設定値です。
異常なホストの数(Unhealthy Host Count)と正常なホストの数(Healthy Host Count)を、それぞれ監視するアラートルールを作成しています。
ディメンションを設定することで、バックエンドプール(バックエンド設定)単位での検知ができるようになります。
なお、今回の設定は検証用です。
バックエンドの正常性が一度でもエラーになった場合にアラート扱いとなり、5分間正常な状態が継続した場合に復旧となります。
実際の運用環境で利用する場合は、これらの値を適切に調整してください。
| アラートルールの設定値 | |
| 異常なホストの数(Unhealthy Host Count)を監視するアラートルール | |
| アラート ルール名 | AGW Unhealthy Host Count |
| シグナル名 | Uhealthy Host Count |
| しきい値の種類 | Static |
| 集計の種類 | 平均 |
| 値 | 次の値より大きい |
| しきい値 | 0 |
| ディメンション | BackendPool HttpSettings (ディメンション値 : backend-pool-01~backend-01) |
| 確認する間隔 | 1分 |
| ルックバック期間 | 5分 |
| 正常なホストの数(Healthy Host Count)を監視するアラートルール | |
| アラート ルール名 | AGW Healthy Host Count |
| シグナル名 | Healthy Host Count |
| しきい値の種類 | Static |
| 集計の種類 | 平均 |
| 値 | 次の値より小さい |
| しきい値 | 2 |
| ディメンション | BackendPool HttpSettings (ディメンション値 : backend-pool-01~backend-01) |
| 確認する間隔 | 1分 |
| ルックバック期間 | 5分 |
また、このようなしきい値設定も可能です。
このようなしきい値のアラートルールを併用することで、バックエンドプールに設定したサーバーで1台でも異常が発生した場合と、すべてが停止した場合の両方を検知できます。
-
- 異常なホストの数(Unhealthy Host Count)を監視
- アラートルール名:AGW Unhealthy Host Count
- 条件:Unhealthy Host Countの値が5分平均で0より大きい場合
- 正常なホストの数(Healthy Host Count)を監視
- アラートルール名:AGW Healthy Host Count
- 条件:Healthy Host Countの値が5分平均で1より小さい場合
- 異常なホストの数(Unhealthy Host Count)を監視
| アラートルール名 | 異常なサーバーの数 | ||
| 0台 | 1台 | 2台 | |
| AGW Unhealthy Host Count | × | 〇 | 〇 |
| AGW Healthy Host Count | × | × | 〇 |
※監視間隔(確認する間隔、ルックバック期間)なども調整可能です。
異常なホストの数(Unhealthy Host Count)を監視するアラートルールを作成
異常なホストの数(Unhealthy Host Count)を監視するアラートルールを作成します。
Unhealthy Host Countのメトリックを監視することで、バックエンドのサーバーで異常が発生したことを検知できます。
今回は、サーバー1台以上に異常が発生した場合にアラートを検知するように設定しています。
正常なホストの数(Healthy Host Count)を監視するアラートルールを作成
正常なホストの数を監視することで、バックエンドのサーバーが一定数を下回った場合(全台停止など)に異常が発生したことを検知できます。
今回は、正常なサーバーがなくなった場合(平均が1を下回った場合)にアラートを検知するように設定しています。
作成したアラートルールを確認
作成したアラートルールを確認します。
| アラートルールを確認 | |
| アラートルールが2つ作成されていることを確認できます。 | ![]() |
バックエンド正常性のアラート検知を確認
作成したアラートルールで、バックエンド正常性のアラートが検知されるかを確認します。
今回は、バックエンドプールに設定したサーバー1台のWebサービスを停止させて、アラートを発生させています。
| アラート検知の例 | |
| 両方のアラートルールで、アラート検知されていることが確認できます。 | ![]() |
| Healthy Host Countのアラートメール例です。 5分間の平均で2より小さくなっていることが、メール本文から確認できます。 |
![]() |
![]() |
|
| Unhealthy Host Countのアラートメール例です。 5分間の平均で1より大きくなっていることが、メール本文から確認できます。 |
![]() |
![]() |
|
—広告—
最後に
今回は、Azure Application Gatewayのバックエンド正常性の確認方法から、Azure Monitorによる監視設定までをまとめてみました。
バックエンドの正常性は、Azure PortalやAzure PowerShell、Azure CLIなどで確認できることが分かりました。
正常なホストの数(Healthy Host Count)や異常なホストの数(Unhealthy Host Count)といったメトリックでも確認できました。
これらのメトリックを活用することで、バックエンドの正常性の変化やサービス停止をAzure Monitorで監視、検知することができました。
引き続き、いろいろ試してみたいと思います。
Azure Front Doorのバックエンド正常性監視については、こちらで紹介しています。
Azure Application Gatewayの構築手順については、こちらで紹介しています。
Azure Application Gatewayのカスタムエラーページ設定手順については、こちらで紹介しています。
Azure Application Gatewayのパスベースルーティング規則を使ったサーバー振り分け設定については、こちらで紹介しています。
今回、バックエンドのWebサーバーにはIISをインストールした仮想マシンを利用しています。
こちらの手順でインストールを実施しています。





















