NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

Azure で構築した Web サーバーの監視 - PaaS編 -

こんにちわ。
コンサルティング&テクノロジー部の 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 の監視について紹介します。

 

f:id:nextscape_blog:20210911202211p:plain



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 の監視




■ログデータ収集設定

f:id:nextscape_blog:20210911202244p:plain

[App Service] から、任意のWebアプリを指定し、 [設定]の[Application Insights]から作成します。
Visual Studioから追加したり、Webアプリの新規作成時に 一緒に作成する事も可能です。

※WebアプリとApplication Insightsをリンク付けるだけで、パフォーマンスや例外ログなど取得できますが
さらにカスタムテレメトリなど取得したい場合は、別途任意のコード追加する事でカスタマイズ出来ます。




■ログデータの検索

f:id:nextscape_blog:20210911202301p:plain

[Application Insights]の左ブレード[調査]>[検索]から
フィルターや検索ワードを入力する事でログデータを検索する事が出来ます。

さらに複雑な検索を行いたい場合は、上側メニューにある[分析]をクリックすると
Analyticsポータルを表示し、クエリで検索が可能です。

 

f:id:nextscape_blog:20210911202322p:plain




■アラートの設定

 

サーバーエラーでアラートを設定したい場合のサンプルを記載します。

また、アラートが下記の2種類あるので、それぞれの設定方法を記載します。

  • [メトリック]による[アラート(クラシック)]
    ログメトリックを設定
    設定が容易であり、アラート方法は、メール・Webhook・Logic Apps
  • [メトリック(プレビュー)]による[アラート]
    Application Insightsのログを検索クエリで抽出して設定。再通知までの期間設定可能。
    Analyticsポータルでスキーマ確認や検索チェックをしてからクエリ設定が望ましい
    アラート方法は、アクショングループ(メール/SMS/プッシュ/音声/Azure Funcion/Logic Apps/Webhookなど)で指定


[メトリック]による[アラート(クラシック)]

f:id:nextscape_blog:20210911202343p:plain

[アラート(クラシック)]  > [+メトリックアラートの追加(クラシック)]から作成出来ます。

前回のIaaS編でのアラートと、アラート対象が今回はApplication Insightsとなり、条件クエリが異なるだけで、他の設定方法は同じです。

規則の追加

メトリック Server exceptions
条件 次の値以上
しきい値 1
 期間  直近5分




[メトリック(プレビュー)]による[アラート]

f:id:nextscape_blog:20210911202359p:plain



[アラート]  > [+新しいアラート ルール]から作成出来ます。


規則の追加

メトリック Server exceptions
条件 次の値以上
しきい値 1
 期間  直近5分

ルールの作成では、[+条件追加]でApplication Insightsの「Custom log search」を選択します。


f:id:nextscape_blog:20210911202415p:plain



検索クエリ
requests
|where resultCode == "500" 
|where url == "http://xxxxxxxx.azurewebsites.net/" 

アラート ロジック
基準 結果の数
条件 次の値より大きい
しきい値 0

評価基準
期間(分単位) 5
頻度(分単位) 5



f:id:nextscape_blog:20210911202458p:plain




アラートの詳細とアクショングループを定義します。


同じエラーが連続して送らないようにするには
[アラートを表示しない] にチェックを入れ、アラート表示しない期間を入力する事により
その期間は連続して送らなくなります。


アクショングループでは、メールやWebhookなどアラート方法を指定して設定完了です。




最後に



PaaS の監視は、Application Insights をアプリに設定するだけでも、
パフォーマンスなどのログを収集してくれるので、とても便利です。

アラートに関しては、メトリック(クラシック)のアラートでまかなえる部分も多いため、
複雑な要件設定の必要が無い監視については、簡単なメトリック(クラシック)で十分だと思います。




■Azure関連記事
Azureで構築したWebサーバーの監視 - IaaS編 -
Azure Blob Storage の不変ストレージ
Azure Blob Storage で HTTPS カスタムドメインの静的 Web サイトを構築
Microsoft de:code 2018 MRPP出展レポート 
...Azure関連記事一覧へ