どうも、フリーランスエンジニアのMakotoです。
今回は、Azure Monitorについて解説します。
Azureで構築したシステムを運用管理していく上で欠かせないサービスです。
インフラの監視を担うサービスでもありますがその機能は多岐にわたるため、最初に全体像を知ることが大切です。
Azureポータルの画面も交えながら解説しますので、ぜひ、最後までお読みください。
それではいってみましょう!
Azure Monitorとは?
Azure Monitorは、クラウドやオンプレミスのサーバなどの利用統計情報を収集して、分析や監視をするためのサービスの総称になります。AWSでいうところの「Cloud Watch」です。
AZ-900試験の対策として、監視とくればAzure Monitorを思い浮かべてください。
Azure Monitorは複数のサービスを統合した(ひとまとめにした)サービスとして取り扱われます。もともとバラバラだったものをAzure Monitorというサービス名に統合した経緯があります。
監視や分析のための入り口(ポータルサイト)としてAzure Monitorがあると考えるとわかりやすいかもしれません。
Azureポータルでは「モニター」というメニューからアクセスします。
実際にモニターのメニューを見てみると、メトリックやログ、アプリケーションやネットワークなどの分析情報を確認するための様々なメニューが用意されていることがわかります。
ここに表示されているメニュー(機能)の一部は「すべてのサービス」から検索したりカテゴリを選択して直接アクセスすることもできます。
Azure Monitorの全体像
Azure Monitorの全体像を簡単に表すと次のようになります。
送信元のデータソースとして、仮想マシンなどAzure上のリソースの他、オンプレミス環境のサーバにエージェントをインストールして収集することもできます。
この図では表していませんが、AWSなど他社クラウドのサーバにエージェントをインストールして収集することもできます。
収集するデータの形式は大きく次の2つに分類されます。
データの種類 | 説明 |
---|---|
メトリック | システムの何らかの側面を測定して数値化したもの |
ログ | システム内で発生したイベント |
メトリックはCPUやメモリなどパフォーマンスに関するものや、ネットワークのトラフィックを測定したデータのことで、グラフを表示して確認することができます。数値で表されるもの全般です。
ログはその名の通りシステム内で発生するあらゆるイベントを記録したもので、多くの場合「Log Analyticsワークスペース」というリソースにデータが保存されます。
蓄積されたメトリックやログをモニタリングして、指定した条件に合致した場合にはメールや電話、スマホアプリ(Azure mobile app)などに通知することも可能です(アラート)
他にもクエリを使って分析したり、ダッシュボードで可視化したり、外部システムと連携したりすることもできます。できること多く少々ややこしいですが、試験対策としては特に次の点をおさえておきましょう。
- Azure Monitorはサーバやアプリケーションを監視するための統合サービス
- アラートにより異常時に通知を送信することができる
- Azureだけでなくオンプレミスのサーバも監視できる
Azure Monitorの代表的な機能
すでに軽く触れたものもありますが、Azure Monitorの代表的な機能は次のようなものがあります。
機能 | 説明 |
---|---|
アクティビティログ | リソースに対して行われた操作ログ |
アラート | 異常を通知 |
メトリック | リソースのパフォーマンスを収集 |
ログ(Azure Monitorログ) | ログを収集・分析 |
Application Insights | アプリケーションのパフォーマンス・使用状況を収集 |
アクティビティログ
アクティビティログは、サブスクリプションにあるAzureリソースに対して行われた書き込み操作(作成・変更・削除)を記録したログです。
いつ、誰が、何を操作したのかが記録されているので、監査の観点でも非常に重要なログです。
アクティビティログはデフォルトで90日間のログがAzure基盤上に自動的の保存され、それ以上保管したい場合はLog Analyticsワークスペースへ送信するように構成できます。
アクティビティログは「プラットフォームログ」の中の一つです。プラットフォームログには他にもMicrosoft Entra IDのログ、リソースログがあります。
アクティビティログの例としてわかりやすいところでいうと、仮想マシンを停止すると「Deallocate Virtual Machine」というログが記録されます。(イベント開始者の部分は隠しています)
アラート
アラートでは「アラートルール」を設定することができ、その履歴を確認することができます。
アラートルールの作成では例えば
仮想マシンのCPU使用率の平均が70%を超えた場合
といった条件をトリガーにして
指定した宛先にメールを送信する
というアクションを指定することができます。
メトリック
メトリックでは、メトリックエクスプローラーが表示され、リソースのパフォーマンスデータをグラフで確認することができます。
デフォルトのメトリックは何も設定せずともリソースを作成すれば自動的に収集されます。メトリックの保有期間は93日間です。
次の画面の例では、仮想マシンのCPU使用率の平均を表示しています(起動しているだけなので使用率は多くありません)
ログ(Azure Monitorログ)
ログを選択すると「Azure Monitorログ(旧 Log Analytics)」が起動します。
ここでは、Log Analyticsワークスペースに収集されたログをKQL(Kusto Query Language)と呼ばれるクエリ言語を使って分析することができます。
やや敷居が高く感じるかもしれませんが、SQL文を書いてデータベースからSELECTするような感覚で高速にデータ抽出することができます。
Log Analyticsワークスペースにデータを収集するには、仮想マシンにエージェントをインストールしたり、診断設定を構成して接続します。
保有期間はデフォルトで31日間保存され、最長2年間(730日)まで延長できます。
アクティビティログもそうですが、あらゆるログはLog Analyticsワークスペースに送信するように構成できる場合が多く、ログの一元管理を担う重要なサービスです。
Log Analyticsという用語は「Azure Monitor ログ」に変更されています。データ保存の場所を表す「Log Analyticsワークスペース」はそのままです。詳細は「Azure Monitor の名称と用語の変更」を参照してください。
Application Insights
アプリケーションのメニューでは、アプリケーションのパフォーマンス・使用状況を収集するためのリソースである「Application Insights」を作成したり、既存リソースを参照できます。
Application Insightsにデータを収集するには、アプリケーションにパッケージ (SDK) をインストールするか、Application Insightsエージェントを使用します。
Application Insightsのデータも実際はLog Analyticsワークスペースに保存されるものがあります。
Application Insightsのダッシュボードに遷移すると次のような情報を確認することができます。
- 失敗した要求の数
- サーバ応答時間
- サーバー要求の数
- 可用性
まとめ
今回はAzure Monitorについて解説しました。
Azure MonitorはAzureやオンプレミスのサーバ・アプリケーションを監視するための統合サービスで、異常時にはアラートにより通知することができます。
Azure Monitorの代表的な機能について、それぞれの用途をしっかしおさえておきましょう。
- アクティビティログ
- アラート
- メトリック
- ログ
- Application Insights
それでは、また。