NEXTSCAPE blog

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

MENU

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

こんにちわ。
コンサルティング&テクノロジー部の Azure チームの開發(@mamikaihatsu)です。

 

サービスを運用するにあたって、
問題が発生した際に、迅速に原因を解明し 解決させる為に
どこに どのような 監視をするかは、とても重要です。

 

また、サービスの構築が IaaS と PaaS でユーザの管理範囲が異なる為、監視する対象が変わってきます。

IaaS の場合は、Operations Management Suite(OMS) を活用する必要がありますが、
OMS を含む Azure の監視サービス は Azure Monitor に統合されているので、
Azure Monitor から様々な監視を行うことができます。

 

今回の記事では、IaaS の環境を Azure Monitor を使ってどのように監視ができるのかという部分を、
Web サーバー(IIS)の監視を題材として紹介します。

アプリの部分については、次回の PaaS 編で紹介する予定です。

 

f:id:nextscape_blog:20210911200104p:plain



Azure Monitor の機能概要



Azure Monitor は Azure リソース監視のプラットフォーム機能であり、
Azure ポータルから各リソースの監視データの確認や検索が行え、アラートも設定する事ができます。

詳細な機能としては、サービス正常性、メトリック・アクティビティログ・アラート、ログの分析(Log Analytics)、 そしてOMSソリューションや Application Insights などを統合し管理出来ます。




IaaS の監視方法



Azure Monitor で何ができるか、主要なものを下記にまとめました。(★・・・設定が必要)

 

用途

収集設定

Azure Monitor

アーカイブ

アラート

インフラ

Azure障害情報の確認

Azureメンテナンス情報

 

Azureの正常性

 

 

Azureリソースの正常性


 

 

Azureの正常性 >Azureリソースの正常性

 

 

 

アクティビティログ

イベントカテゴリ:リソースの正常性

★アクティビティログExport

★ Azureの正常性>正常性アラート

Azureリソースのメトリックの監視

 

 

メトリック

★診断設定

★メトリック>メトリックアラートの追加

例:CPU80%以上でアラート

OS・

ミドル

 


 

Windowsイベントの監視

★VMの診断設定

★ログの分析(Log Analytics)

(仮想マシンログ/Event)

★VMの診断設定

★ログ検索 > New Alert Rule

内部パフォーマンスカウンターの監視


 

★VMの診断設定

メトリック

★VMの診断設定

★メトリック>メトリックアラートの追加

 

★ログの分析(Log Analytics)

(仮想マシンログ/Perf)

 

★ログ検索 > New Alert Rule

仮想マシンの死活監視

★VMの診断設定

★ログの分析(Log Analytics)

(仮想マシンログ/HeartBeat)

 

★ログ検索 > New Alert Rule

IISの監視

★VMの診断設定

★ログの分析(Log Analytics)

(仮想マシンログ/W3CIISLog)

★VMの診断設定

★ログ検索 > New Alert Rule

例:内部サーバーエラーでアラート

アプリ

Webサイトのエンドポイント監視


 


 

 

メトリック(TrafficManager)

(TrafficManager経由で仮想マシンアクセスの場合)

★診断設定

★メトリック>メトリックアラートの追加

例:エンドポイントが停止中でアラート

 

メトリック(Standard Load Balancer)

(Standard Load Balancer経由で仮想マシンアクセスの場合)

★診断設定

★メトリック>メトリックアラートの追加

例:DIP可用性が100未満でアラート

 

★Application Insights > 可用性

 

★Application Insights > 可用性>テストの追加

 

設定無しでも参照可能なものもありますが、
まずはデータの収集やログのアーカイブを事前に設定しておく事が重要です。

 

では、Web サーバーの監視として、IIS の監視方法を記載します。




Webサーバーの監視(IIS監視)




■ログデータ収集設定

 

f:id:nextscape_blog:20210911200125p:plain

まず、[Azure Monitor] > [ログの分析]から[LogAnalyticsワークスペース]の作成後、
ログ分析(LogAnalytics)のブレードから、[ワークスペースのデータソース] > [仮想マシン] で
監視をしたい仮想マシンを指定して OMS に接続します。



f:id:nextscape_blog:20210911200140p:plain

次に、[詳細設定]>[Data]>[IISログ]
[W3C形式のIISログファイル]にチェックを入れて上の[Save]ボタンで保存します。
これでログデータの収集設定は完了です。

イベントログパフォーマンスカウンターなどを収集する場合も、ここで指定します。




■ログデータの検索

 

f:id:nextscape_blog:20210911200155p:plain

 

[ログ検索]から以下のいずれかのクエリで、すべての IIS ログが取得できます

W3CIISLog
search in (W3CIISLog) * 
search * | where Type == "W3CIISLog" 

f:id:nextscape_blog:20210911200211p:plain


参考までにいくつかクエリサンプルを載せておきます

 

●指定した仮想マシンのIISの過去1日間の HTTP ステータス集計

W3CIISLog
| where Computer == "webapp02"
| where TimeGenerated  > ago(1d)
| summarize count() by scStatus

f:id:nextscape_blog:20210911200233p:plain



●指定した仮想マシンのIISの過去1日間の404ステータスのタイムチャート

W3CIISLog
| where Computer == "webapp02"
| where TimeGenerated  > ago(1d)
| where scStatus == 404
| summarize  NotFound = count() by TimeGenerated
| render timechart 

f:id:nextscape_blog:20210911200249p:plain



■アラートの設定

 

ログ検索の上メニューの[+New Alert Rule] または
左ブレードの[アラート] > [+新しいアラートルール]から作成できます。

 

内部サーバーエラー(500)でアラートを設定したい場合のサンプルは下記になります。

 

f:id:nextscape_blog:20210911200305p:plain

検索クエリ

W3CIISLog
| where Computer == "webapp02"
| where scStatus == 500


アラート ロジック

基準 結果の数
条件 次の値より大きい
しきい値 0


評価基準

期間(分単位) 5
頻度(分単位) 5




f:id:nextscape_blog:20210911200323p:plain

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

 

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

 

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




最後に



IaaS の監視は、Azureメトリックやアクティビティログでは
カバーしきれない部分が可能だったりするため、ログ分析(Log Analytics)は必須となります。

Log Analytics ではいくつか検索クエリのサンプルが用意されているので
色々と試してみるのもよいかもしれません。

もし、サンプルでエラーが出る場合は「Type == W3CIISLog」を「Type == "W3CIISLog"」など
ダブルコーテーションで囲んでみてください。




■Azure関連記事

Azure Blob Storage の不変ストレージ
Azure Blob Storage で HTTPS カスタムドメインの静的 Web サイトを構築
Microsoft de:code 2018 MRPP出展レポート 
【de:code2018レポート】HoloLens×AI×IoTセッションに登壇しました! 

...Azure関連記事一覧へ