こんにちわ。
コンサルティング&テクノロジー部の 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」を選択します。