こんにちわ。
コンサルティング&テクノロジー部の 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
|
評価基準
アラートの詳細とアクショングループを定義します。
同じエラーが連続して送らないようにするには
[アラートを表示しない] にチェックを入れ、アラート表示しない期間を入力する事により
その期間は連続して送らなくなります。
アクショングループでは、メールや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関連記事一覧へ