【入門編】Azure Monitorでできることは? 機能・メリットについて解説
従来のオンプレミスに代わり、サーバインフラをクラウドに移行する企業が増えています。Azureはマイクロソフトが提供するクラウドサービスで、マイクロソフト製品と親和性が高く、システムを迅速かつ継続的に提供する仕組みとして人気がありますが、安定稼働のためにはやはりシステム監視が欠かせません。Azureが提供している「Azure Monitor」は、Azureクラウドやオンプレミスを含めて統合的なシステム監視や分析を可能とした統合監視ソリューションです。本記事では、Azure Monitorの概要、機能とメリット・デメリットなどについて解説します。
Azure Monitorとは
Azure Monitorは、Azure上で提供されているシステム監視のマネージド・サービスです。Azure上で動作する仮想マシンのアプリケーションやITインフラの統計情報の収集・可視化・分析を統合的に行います。Azure Monitorは、元々Azureが提供していたApplication InsightsやLog Analyticsなどの個別の監視・分析機能を統合監視ソリューションとして統合したものです。
Azure Monitorにおける階層と取得できる監視データ
Azure Monitorで取得できる監視データは、Azureによって定義されている階層ごとに異なります。そして取得する監視データは「ログ」と「メトリック」という基本的な2種類のデータに分けられ、Azure Monitorにより処理されます。
図引用元:Microsoft「Azure Monitor で使用する監視データのソース」https://docs.microsoft.com/ja-jp/azure/azure-monitor/agents/data-sources
上記の図で言うと、左側にあるのがデータを取得する各階層で、中央にあるのが収集したデータ(メトリック/ログ)、そして右側がAzure Monitorが提供している各種機能(インサイト・可視化・分析・反応・統合)になります。Azure Monitorの理解を深めるために、まずはAzureにおける階層(レイヤー)について解説します。
・アプリケーション(Application)
アプリケーションは、最上位の階層で、Azureにデプロイするアプリケーションそのものを指します。アプリケーションの監視は、アプリケーションからデータを収集する Application Insights を通じて行われ、アプリケーションのパフォーマンスと操作に関するメトリックとログが収集されます。具体的には、アプリケーションの運用データ(ページビュー・アプリケーション要求・例外・トレースなど)や、アプリケーションの可用性や応答性のテスト結果、定義したカスタムメトリックなどです。
・ゲストOS(Operating System)
ゲストOSとは、Azure・他のクラウド・オンプレミス上にある監視対象のOSを指します。エージェントをインストールすることで、CPUやメモリなど対象OSのリソースに関するメトリックおよびログを収集できます。以前はLog Analyticsエージェントを使用していましたが、現在は後継としてAzure Monitorエージェントの使用が推奨されています。これにより、Azure MonitorログとAzure Monitorメトリックにデータを集約し、データの管理や活用をよりスケーラブルに構成できるようになりました。しかし、一部まだサポートされていないログファイルや連携先などがあるため、注意が必要です。
参考:Microsoft「Azure Monitor エージェントの概要」https://docs.microsoft.com/ja-jp/azure/azure-monitor/agents/agents-overview
・Azureリソース(Azure Resource)
ゲストOSより下の階層はAzureプラットフォームの各種コンポーネントのデータとなります。
Azureリソースは、仮想マシン・ネットワーク・ストレージなど、利用しているリソースのレイヤーを指します。プラットフォームのメトリックは、ほとんどのAzureサービスからそのパフォーマンスと操作に関するメトリックが直接メトリック・データベースに送信されます。リソースログからは、Azureリソースの内部操作に関する情報を得られます。具体的には、Key Vaultからのシークレットの取得や、データベースに関する要求などが挙げられます。リソースログの内容はAzureサービスとリソースによって異なります。以前は「診断ログ」と呼ばれていたものです。
・Azureサブスクリプション(Azure Subscription)
Azureサブスクリプションは、利用しているAzureサービスにおけるリソース横断的なプラットフォームのレイヤーを指します。アプリケーションやリソースが依存するAzureサービスの正常性(Azure Service Health)と、リソースに対して行われた構成の変更などの管理(Azureアクティビティログ)といった情報を収集できます。
・Azureテナント(Azure Tenant)
Azureテナントは、Azure Active Directoryなど、ユーザーのテナント全体に関わるレイヤーです。Azure Active Directoryのサインインアクティビティの履歴や、特定のテナント内で行われた変更の証跡など、監査ログをAzure Monitorで収集・統合して他の監視データと共に分析することができます。
参考:Microsoft「Azure Monitor で使用する監視データのソース」https://docs.microsoft.com/ja-jp/azure/azure-monitor/agents/data-sources
Azure Monitorでできること
では、実際にAzure Monitorではどのような監視が実現できるのでしょうか。Azure Monitorで可能な、主な監視機能は以下の通りです。
・アプリケーション監視
・インフラストラクチャー監視
・ログ監視
・アラート通知
・可視化・分析
アプリケーション監視
アプリケーション監視は、実行中のアプリケーションの可用性の監視やパフォーマンス管理を可能にします。Azure Monitorを構成するApplication Insightsの機能を利用して、実行中のアプリケーションの使用状況とパフォーマンスの監視・分析を行うことができます。また、定期的にWebサービスに人工的な要求を送信するWebテストを実施するようなことも可能なほか、収集したデータをAzure Monitorに集約し、アラート機能や検索・分析機能と連携することが可能です。Application InsightsはAzure上のアプリケーションだけでなく、オンプレミスやさまざまなプラットフォーム上にホストされているアプリの監視を実現します。
インフラストラクチャー監視
インフラストラクチャー監視は、Azure上のレイヤーではゲストOSのレイヤーにあたる仮想マシン・ネットワーク・ストレージなどのインフラストラクチャーの正常性とパフォーマンスを監視します。Azure Monitorを構成するVM Insightsの機能と、Azure Monitorのメトリックとログを利用して、仮想マシンのリソース使用状況やインフラの状態監視を行うことができます。パフォーマンスのボトルネックを発見し、将来的な予測をすることや、問題が他の関係に依存しているかなどを把握することにも役立ちます。
ログ監視
ログ監視は、システムが出力するログを収集し異常がないか監視を行う機能です。Azure Monitorを構成するLog Analyticsの機能を利用して、監視対象としているAzureサービスのログと、オンプレミスも含めたOSのログを統合的に収集・監視を行うことができます。なお、Log Analyticsでログ監視を行うためには対象サーバーにエージェントの導入が必要です。
アラート通知
アラート機能は、監視で異常を検出した場合にアラート(警告)を発行する機能です。例えば収集したメトリックやログから、マシンリソースが事前に設定した閾値を超えた場合や、特定のメトリックやログを検出した場合など、アラートルールにしたがってアラートを発行することができます。アクショングループを使用すると、Webhookを使用してツールと連携したり、外部アクションを起動することもできます。また、機械学習アルゴリズムによって自動的に作成されるスマートグループを利用することで、1つの問題に関連するアラートが集約され、多数のアラートによるノイズを減らすことができるだけでなく、アラートについて考えられる一般的な根本原因を参照することができます。
可視化・分析
可視化機能は、収集したメトリックやログをわかりやすく表示して視覚化する機能です。Workbooks、Azureダッシュボード、Power BIなど、監視データの分析や共有の目的によって使い分けることができます。
Azure Monitorの料金
Azure Monitorが提供する機能の利用状況に応じて課金される仕組みとなっています。一定の無償枠が設けられている機能もあり、それを超えた場合に使った分だけ料金がかかる従量課金モデルとなっています。
ログ関連
・ログデータのインジェスト(取り込み)
Log AnalyticsとApplication Insightsで取り込んだデータ容量に対して課金されます。シンプルに使用した分だけ支払う従量課金のプランと、コミットメントレベルと呼ばれるあらかじめ使用するデータ量に応じたプランがあります。コミットメントレベルは使用するデータ量が多いほどGBあたりの単価が安くなるので、大量のログデータを扱う場合はそちらを利用した方がコストを削減できるでしょう。1ヶ月あたり課金アカウントごとに5GBのデータ取り込みは無償となっています。
・ログデータの保持
Log Analyticsワークスペースに取り込まれたデータは最初の31日間まで、Application Insightsに取り込まれたデータは90日間まで無料で保持できますが、無料期間を超えた場合は1GBごとに課金されます。
メトリック関連
・メトリック
Azureのリソースやサービスなどから取得できる標準メトリックについては無制限・無料となっています。カスタムメトリックについては1ヶ月あたり150MBまで無償、それ以降は従量課金となります。
アラート関連
・アラートルール
監視対象となるシグナル(メトリック・ログ・アクティビティログ)の種類と数に応じて課金されます。1ヶ月あたりのメトリック時系列10個までは無償で利用でき、それを超える場合は従量課金となります。ログに対するアラートルールは無償枠が無く、監視の間隔(15分以上・10分・5分・1分)に応じて料金が変わります。アクティビティログの監視についてはサブスクリプションあたり100ルールが上限になっていますが、無料で利用できます。
・アラート通知
アラートルールがトリガーされたタイミングで通知されます。通知の種類と数に基づいて課金されます。1ヶ月あたりメール1,000通、プッシュ通知1,000件、Web hook 100,000件まで無料で利用できます。
参考:Microsoft「Azure Monitorの価格」
Azure Monitorのメリット・デメリット
Azure Monitorは、安定かつ継続的にサービスを提供するために必要な監視の仕組みを提供するサービスですが、改めてメリットとデメリットについて見てみましょう。
Azure Monitorのメリット
Azure Monitorを利用するメリットは下記の通りです。
・迅速な異常検知による大規模障害の発生防止
・オンプレミス、クラウド、ハイブリッドクラウドを統合的に監視可能
・ダッシュボード・カスタムビューやPowerBIとの連携による可視性の高さ
監視そのもののメリットに加え、オンプレミス、クラウドとプラットフォームを選ばず監視を行うことができ、PowerBI等のツールとの連携もしやすく、統合的な監視・分析を行うえることが大きなメリットと言えるでしょう。
Azure Monitorのデメリット
Azure Monitorにデメリットはあるのでしょうか。Azure Monitor単独で見た場合のデメリットは特にありませんが、Azure Monitorは個別の監視・分析ツールを統合したサービスであるため、豊富な機能を持っています。そのため、Azure Monitor独自の概念や仕組みを理解しないと設定が難しいという点はデメリットと言えるかもしれません。
また、ログの取り込みや監視データの保持など、データ容量に応じた従量課金となるため、大量のログを保存するような設定にしていると意図せず高額な利用料となってしまう可能性があるため注意が必要でしょう。
まとめ
監視とは、Azureに限らず、システムを安定的かつ継続的に提供するために必要な仕組みです。Azure Monitorは、Azureクラウドとオンプレミスも含めて統合的な監視・分析ソリューションを提供するサービスです。Azure Monitorは豊富な機能を持つ統合監視サービスであるため、使いこなせば高度な監視や分析が可能になりますが、自社のシステムにあった適切な監視設定をするのは少々ハードルが高いかもしれません。もし自社で設定・運用する自信がない、インフラの構成や監視運用を最適化したい、監視障害対応が負担となっているといったお悩みがあれば、インフラ構築・監視運用のプロに相談してみるのはいかがでしょうか。