こんにちわ。
コンサルティング&テクノロジー部の 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セッションに登壇しました!