こんにちわ。
コンサルティング&テクノロジー部の Azure チームの開發(@mamikaihatsu)です。
前回の記事では、IaaS で構築した Web サーバーを Azure Monitor で監視 を紹介しました。
今回は、PaaS 編となります。
PaaS では、「OS・ミドル」側がマイクロソフト(クラウド業者)管理となる為、
Webサーバーの監視方法が異なってきます。
AppService の Web Apps(Webアプリのホストサービス)では、Application Insights での監視がとても便利です。
Application Insights も、その他の監視サービスと同様に
Azure Monitor に統合して管理する事もできます。
今回の記事では、PaaS の環境を Azure Monitor を使った
Web Apps の監視について紹介します。
PaaS の監視方法
Azure Monitor で何ができるか、主要なものを下記にまとめました。(★・・・設定が必要)
|
用途 |
収集設定 |
Azure Monitor |
アーカイブ |
アラート |
インフラ
|
Azure障害情報の確認 Azureメンテナンス情報 |
|
Azureの正常性 |
|
|
Azureリソースの正常性
|
|
Azureの正常性 >Azureリソースの正常性 |
|
|
|
|
アクティビティログ イベントカテゴリ:リソースの正常性 |
★アクティビティログExport |
★ Azureの正常性>正常性アラート |
||
Azureリソースのメトリックの監視
|
|
メトリック |
★診断設定 |
★メトリック>メトリックアラートの追加 例:CPU80%以上でアラート |
|
OS・
|
Webサーバーログ (IISの監視)
|
★App Serviceの診断ログ Webサーバーログ ・詳細なエラーログ(HTTP状態など) ・失敗した要求トレース(失敗要求詳細) ・Webサーバーログ(W3C拡張ログ/要求数/IP) |
|
★App Serviceの診断ログ Webサーバーログ |
|
★AppService > Application Insights |
Application Insights > 調査 (例外・応答時間 など) |
★Application Insights > 構成 > 連続エクスポート |
★アラート>新しいアラート ルール (Application Insights) |
||
Webサーバーのメトリック
|
|
メトリック (CPU使用率・サーバーエラーなど) |
|
★メトリック>メトリックアラートの追加 (App Service Plan/App Service) |
|
★AppService > Application Insights |
Application Insights > 調査 (CPU使用率 など) |
★Application Insights > 構成 > 連続エクスポート |
★アラート>新しいアラート ルール (Application Insights) |
||
アプリケーションログ
|
★App Serviceの診断ログ |
|
★App Serviceの診断ログ |
★ログ検索 > New Alert Rule |
|
★AppService > Application Insights |
Application Insights > 調査 > 検索 |
|
★アラート>新しいアラート ルール (Application Insights) |
||
潜在的なパフォーマンス問題の警告 (応答時間低下など) |
★AppService > Application Insights |
|
|
Application Insights > 構成 > スマート検出の設定 |
|
アプリ
|
Webサイトのエンドポイント監視
|
|
メトリック(TrafficManager) (TrafficManager経由でWeb Appsの場合) |
★診断設定 |
★メトリック>メトリックアラートの追加 例:エンドポイントが停止中でアラート |
|
★Application Insights > 可用性 |
|
★Application Insights > 可用性>テストの追加 |
![]() |
用途順だと、「OS・ミドル」が複雑に見えてしまいますね。 そこで、抜粋して下記のように収集設定をベースにまとめてみました。 |
|
用途 |
収集設定 |
Azure Monitor |
アーカイブ |
アラート |
OS・
|
Webサーバーログ アプリケーションログ |
★App Serviceの診断ログ Webサーバーログ |
|
★App Serviceの診断ログ Webサーバーログ |
|
Webサーバーのメトリック |
|
メトリック (CPU使用率・サーバーエラーなど) |
|
★メトリック>メトリックアラートの追加 (App Service Plan/App Service) |
|
Webサーバーログ Webサーバーのメトリック アプリケーションログ |
★AppService > Application Insights
|
Application Insights > 調査 (例外・CPU使用率 など) |
★Application Insights > 構成 > 連続エクスポート
|
★アラート>新しいアラート ルール (Application Insights) |
|
潜在的なパフォーマンス問題の警告 (応答時間低下など) |
|
|
Application Insights > 構成 > スマート検出の設定 |
上の表のように、WebApps に、Application Insightsを設定するだけで
Webサーバーログやメトリック、アプリケーションログを取得し、
パフォーマンスアラートを自動で出す事ができます。
しかし、Application Insights「だけ」設定すればOKという事ではなく
それぞれ要件や用途に応じて使用する事が重要です。
では、Web Apps の監視方法を記載します。
Web Apps の監視
■ログデータ収集設定
[App Service] から、任意のWebアプリを指定し、 [設定]の[Application Insights]から作成します。
Visual Studioから追加したり、Webアプリの新規作成時に 一緒に作成する事も可能です。
※WebアプリとApplication Insightsをリンク付けるだけで、パフォーマンスや例外ログなど取得できますが
さらにカスタムテレメトリなど取得したい場合は、別途任意のコード追加する事でカスタマイズ出来ます。
■ログデータの検索
[Application Insights]の左ブレード[調査]>[検索]から
フィルターや検索ワードを入力する事でログデータを検索する事が出来ます。
さらに複雑な検索を行いたい場合は、上側メニューにある[分析]をクリックすると
Analyticsポータルを表示し、クエリで検索が可能です。
■アラートの設定
サーバーエラーでアラートを設定したい場合のサンプルを記載します。
また、アラートが下記の2種類あるので、それぞれの設定方法を記載します。
- [メトリック]による[アラート(クラシック)]
ログメトリックを設定
設定が容易であり、アラート方法は、メール・Webhook・Logic Apps - [メトリック(プレビュー)]による[アラート]
Application Insightsのログを検索クエリで抽出して設定。再通知までの期間設定可能。
Analyticsポータルでスキーマ確認や検索チェックをしてからクエリ設定が望ましい
アラート方法は、アクショングループ(メール/SMS/プッシュ/音声/Azure Funcion/Logic Apps/Webhookなど)で指定
[メトリック]による[アラート(クラシック)]
[アラート(クラシック)] > [+メトリックアラートの追加(クラシック)]から作成出来ます。
前回のIaaS編でのアラートと、アラート対象が今回はApplication Insightsとなり、条件クエリが異なるだけで、他の設定方法は同じです。
規則の追加
メトリック | Server exceptions |
条件 | 次の値以上 |
しきい値 | 1 |
期間 | 直近5分 |
[メトリック(プレビュー)]による[アラート]
[アラート] > [+新しいアラート ルール]から作成出来ます。
規則の追加
メトリック | Server exceptions |
条件 | 次の値以上 |
しきい値 | 1 |
期間 | 直近5分 |
ルールの作成では、[+条件追加]でApplication Insightsの「Custom log search」を選択します。
検索クエリ
requests |where resultCode == "500" |where url == "http://xxxxxxxx.azurewebsites.net/"
アラート ロジック
基準 | 結果の数 |
条件 | 次の値より大きい |
しきい値 | 0 |
評価基準
期間(分単位) | 5 |
頻度(分単位) | 5 |
アラートの詳細とアクショングループを定義します。
同じエラーが連続して送らないようにするには
[アラートを表示しない] にチェックを入れ、アラート表示しない期間を入力する事により
その期間は連続して送らなくなります。
アクショングループでは、メールやWebhookなどアラート方法を指定して設定完了です。
最後に
PaaS の監視は、Application Insights をアプリに設定するだけでも、
パフォーマンスなどのログを収集してくれるので、とても便利です。
アラートに関しては、メトリック(クラシック)のアラートでまかなえる部分も多いため、
複雑な要件設定の必要が無い監視については、簡単なメトリック(クラシック)で十分だと思います。
■Azure関連記事
Azureで構築したWebサーバーの監視 - IaaS編 -Azure Blob Storage の不変ストレージ
Azure Blob Storage で HTTPS カスタムドメインの静的 Web サイトを構築
Microsoft de:code 2018 MRPP出展レポート
...Azure関連記事一覧へ