Azure MonitorでApplication Gateway正常性プローブを監視

 

Application GatewayはL7のレイヤーでWEBアクセスを負荷分散してくれるAzure上のロードバランサーになります。

Application Gatewayの負荷分散先(バックエンド)にある、WEBサーバ(HTTP(S))が正常に応答していないと、WEBサイトがエラーになる等の事象になってしまいます。

その為、WEBサイトに障害が発生していた場合の切り分けの1つとして、Application GatewayからWEBサーバへの通信状況(正常性プローブ)の状態を監視する事は非常に重要になってきます。

今回は、Azure  Monitorの機能を利用してApplication Gatewayの正常性プローブのステータスの変化を検知するようにしてみました。

Application Gatewayの構築についてはこちらに記載しております。

Azure Application Gatewayを構築してみた

1.Application Gatewayのメトリックで正常なホストの数、異常なホストの数がわかる

Application Gatewayの正常性プローブの変化は、正常なホストの数、異常なホストの数の変化で分かります。

Application Gatewayのメトリックでは、この正常なホストの数、異常なホストの数を検知する事ができます。これはV1、V2どちらでも可能です。
このホストの数は、正常性プローブによって正常もしくは異常と判断されたバックエンドの数になります。

正常性プローブ自体は、バックエンドにあるWEBサーバへHTTP(S)のヘルスチェックで確認されます。

マイクロソフト様のサイトに記載があります。

https://docs.microsoft.com/ja-jp/azure/application-gateway/application-gateway-metrics#backend-metrics

マイクロソフト様のサイトを読むと、以下のような事が言えます。

      • 正常なホストの数が0の場合は、すべてのバックエンドプールに問題が発生しており、サイトが表示されない状態
      • 異常なホストの数が1以上の場合は、1つ以上のバックエンドプールで異常が発生している状態(特定のバックエンドにあるホストが停止している状態

したがって、正常なホストの数や異常なホストの数状態を監視することにより、Application Gatewayのバックエンド正常性状態がわかります。

2.Application GatewayでWEBサーバへのヘルスチェック状況をAzure Monitorで検知する(正常なホストの数が0になった場合)

Azure MonitorでApplication Gatewayのメトリックを監視することができます。

まず、モニター>アラート>新しいアラートルールを選択します。

そうすると、下記画面が表示されますので、リソースの選択でアプリケーションゲートウェイを選択します。

    選択が終わったら、完了を押します。

ルールの作成画面に戻りますので、次に条件の項目で追加を選択してください。

そうすると、下記のようにシグナルロジックの構成が表示されます。

ここに項目が表示されるのですが、今回対象とする項目は下記2つになります。

    • Unhealthy Host Count が異常なホストの数になります
    • Healthy Host Count が正常なホストの数になります

すべて正常性プローブがNGになった場合の検出は正常なホストの数で設定をします。

Healthy Host Countを選択をすると下記のような画面が表示されます。バックエンドのサーバが1つ(ルールもHTTP用1つ)で検証していますので、以下のように1となります。

これが、0になると、正常なバックエンドがなくなる為、すべてのアクセスが停止する状態になります。ですので以下のような設定とします。

    • しきい値:Static
    • 演算子:より小さい
    • 集計の種類:平均
    • しきい値(演算子の方):1

1より小さいとなりますので、バックエンドにあるWEBサイトからのヘルスチェックがすべてNGだった場合(一時的な状態を含む)が検出される事になります。

評価基準は適時選択してください。最後に完了ボタンを選択します。

ルールの作成画面に戻りますので、アクショングループの選択、アラートの詳細を適時記入し、アラートルールの作成をクリックします。

これで、Azure MonitorでApplication Gatewayのバックエンド正常性がすべてNGになった場合に、アラートを発生させることができます。

3.Application GatewayのバックエンドのWEBサーバに異常があった場合に検知する

Application GatewayのバックエンドにいるWEBサーバに異常があった場合(ヘルスチェックがNG)になった場合の検出は異常なホスト数で行います。

シグナルロジックの構成で、Unhealthy Host Countを選択します。

そうすると、下記画面が表示されます。

すべてのバックエンド正常性がOKなので、0になります。

これが0より大きい場合は、バックエンド正常性に問題が発生している事を示します。ですので、下記のように設定にします。

    • しきい値:Static
    • 演算子:より大きい
    • 集計の種類:平均
    • しきい値(演算子):0

評価基準は適時選択し完了ボタンを選択します。

ルールの作成画面に戻りますので、同様に、アクショングループの選択、アラートの詳細を適時記入し、アラートルールの作成をクリックします。

Application GatewayのバックエンドにあるWebサーバが1つでもNGになっている場合に、Azure Monitorを使ってアラートを発生させることができます。

Azure Front Doorのバックエンド正常性監視については、こちらで試しております。

Azure Front Doorのバックエンド正常性監視