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

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


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


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

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


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

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






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




■ログデータ収集設定



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





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

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




■ログデータの検索




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

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





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


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

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




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

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




■アラートの設定

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


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




検索クエリ
W3CIISLog
| where Computer == "webapp02"
| where scStatus == 500

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

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





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


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


アクショングループでは、メールや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関連記事一覧へ

ネクストスケープ企業サイトへ

NEXTSCAPE

検索する

タグ

メタデータ

投稿のRSS