Azure Front Doorのバックエンド正常性監視
Azure Front Doorのバックエンド状態(正常に応答しているかどうか)の確認をしてみました。
また、Azure Monitorの機能を利用してバックエンドの状態が異常な場合に検知するようにしてみました。Azure Monitorを使ってますのでメール送信等を行う事も標準機能で出来ます。
Application Gatewayの正常性プローブの監視についてはこちらに記載しております。
Azure Front Doorのメトリックを使うと正常性プローブの応答率がわかる
マイクロソフト様のサイトを確認するとAzure Front Doorのメトリックで、バックエンドへの正常性プローブの応答率がわかるようです。
Azure Front Door でのメトリックとログの監視(公式サイト)
※マイクロソフト様のサイトでは、バックエンドの正常性の割合と記載されています。
実際にAzure Portal上で確認してみました。
メニューのメトリックを選択すると、下記画面が表示されます。ここでBackend Health Percentageを選択するとバックエンドプール全体での応答率(正常な割合)が表示されます。
応答率になるので、バックエンドプールに所属するバックエンドがすべて正常な場合は100%になります。
※バックエンド落としてないにも関わらず、なぜか100%になってなかったりするので、この編は調査が必要かも。という感じです。
バックエンドホスト単位で確認するには、フィルターの追加を使います。
フィルターの追加を選択すると、BackendとBackend Poolが表示されますので、Backendを選択します。そうすると、値の部分に設定しているバックエンドホスト名が表示されます。確認したいバックエンドのホスト名を選択します。
選択するとバックエンドホスト単位での応答率が確認できました。
ここの数値が低い場合は、バックエンドホストがAzure Front Doorの正常性プローブに応答を返せてないという状態になります。
Azure Front Doorのタイムアウト値確認変更についても試しております。
Azure Front Doorのバックエンドが正常かAzure Monitorで監視する
Azure MonitorでAzure Front DoorのBackend Health Percentageをメトリック監視する事が出来ます。
まず、Azure Front Doorのメニューで、警告を選択します。表示された画面で新しいアラートルールを選択します。
そうすると、アラートルールの作成画面が表示されます。
スコープはすでにFrontDoorが選択されています。(Azure Monitorから設定を行った場合はスコープで今回設定するFront Doorを選択します。)
条件を選択します。
シグナルロジックの構成画面が表示されますので、Backend Health Percentageを選択します。
そうするとシグナルロジックの構成画面が表示されます。ここで実際の設定を行います。
-
-
- ディメンション:バックエンドホスト、バックエンドプールすべて監視する
- アラートロジック:しきい値(平均)が95%より小さい場合はアラートを発生させる
- 評価基準:15分単位での確認とする
-
上記のような設定の場合は、下記のような画面になります。
バックエンドホスト単位、バックエンドプール全体の状態どれを監視するかを選択します。
個別に設定可否を判断する場合は、ディメンションで対象を選択します。すべてを選択する場合は、選択にチェックを入れるとすべての項目が選択されます。
※注意点ですが、選択にチェックを入れるとAzure Front Door側でバックエンドやバックエンドホストを追加すると自動的に監視項目にも追加になります。
何%以下(より小さい)というしきい値を設定すると、バックエンドホスト側へのアクセスに問題がある場合、Azure Monitorで検知ができます。
上記設定が終わったら、完了をクリックします。
アクショングループや、名前等を付けて保存すれば、Azure Monitorでの監視設定が完了になります。
Azure Monitorで実際に送信されたメール
実際にアラートメールを送信すると、以下のような内容が記載されたメールが送信されます。
Metric name | BackendHealthPercentage |
---|---|
Metric namespace | frontdoors/フロントドア名 |
Dimensions | ResourceId = /subscriptions/サブスクリプションID/resourcegroups/リソースグループ名/providers/Microsoft.Network/frontdoors/フロントドア名
ApplicationEndpoint = バックエンドホスト名(1) ApplicationEndpointPool = バックエンドホスト名(2) |
Time Aggregation | Average |
Period | Over the last 15 mins |
Operator | LessThan |
Threshold | 95 |
Criterion Type | StaticThresholdCriterion |