アラートルールの推奨設定

2 minute read

この記事は 旧 Japan Azure PaaS Support Blog からのコピーとなります。
記載されている内容は 2016 年 12 月 19 日 時点のものとなり、現時点におきましては変更されている可能性がありますので、ご注意下さい。

こんにちは。

Azure CIE サポートの村山です。

今日は、最近流行りの Azure メトリックを利用した監視方法の注意点に関してご案内します。

Azure メトリックではテレメトリを利用して、各リソースのパフォーマンスや、正常性を確認することができます。

Microsoft Azure のメトリックの概要

https://docs.microsoft.com/ja-jp/azure/monitoring-and-diagnostics/monitoring-overview-metrics

Azure Web Appsの場合、CPU や メモリなどを監視して、高負荷がかかった場合には、スケールアウトやスケールアップを行い、アクセスの増加に対応することもできます。

また、HTTP 500 エラーなどを監視して、アラートを設定することで、内部で何か問題が発生した際にその通知をメールで受け取ることが可能になります。

このアラートルールですが、下記画像のように、最短で ”直近 5 分間“ から “直近 6 時間” まで設定することが可能です。 しかしながら、この “直近 5 分間” は場合によってはうまく通知が送られないことがあります。

2018 年現在では、直近 5 分間でも動作することが確認されております。(2018/01/30 現在)

一番安定して動作する中で最短の時間は “直近 15 分間” であるため、確実にアラートを受け取りたい場合は、” 直近 15 分間 ” の設定をご利用ください。

blog2

また、特に Web App に関しては、アーキテクチャの仕組み上、エラーの種類によってはメトリックで検知されない場合がございます。

具体的には、Web App の Front End インスタンス (Application Request Routing で Web Worker インスタンスに要求をルーティングするロール インスタンス) や Web Worker のカーネルドライバーである HTTP.SYS でハンドルされた場合には、Web Worker のユーザーモード プロセスまで HTTP 要求が到達しないため、HTTP ステータス コードを基にしたメトリックでは検知されません。

例えば、以下のようなシナリオでは HTTP エラーが検知されないため、今後 Web Apps の運用を検討されている方は、十分にご注意ください。

  1. Front End が応答を返す場合
  2. Web Worker のカーネルモード ドライバーである HTTP.SYS が応答を返す場合
  3. Kudu サイトに対する処理

Front End が応答を返す場合

  • クライアント証明書の認証が失敗した場合: Front Endでは証明書が提示されているかどうかに関してチェックを行います。
  • Web Worker 上でのアプリケーションの実行に時間がかかりFront End 側でFront End の Application Request Routingタイムアウトしてエラーを返す場合: Front End のタイムアウトに比べ Web Worker 上のアプリケーションのタイムアウト設定が長い場合が該当します。
  • Azure プラットフォーム上の負荷上昇等が発生した際に、プラットフォーム全体が負荷上昇状態を防ぐ場合: この際、Web Worker への要求を一時的に制御する場合がございます。

Web Worker のカーネルモード ドライバーである HTTP.SYS が応答を返す場合

  • Azure Web Apps 側でのアプリケーションや Web.config での設定ミス
  • Free プランでの上限にあたった

Kudu サイトに対する処理

  • Kudu サイトにアクセスする際の認証が失敗した場合
  • Web Job の実行結果や、エラーが発生した場合

それでは、また!

本情報の内容 (添付文書、リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。