【Microsoft Azure】Azure Monitorでできることを理解する

こんにちは。今日は、Azure Monitorの機能について勉強したことを整理しておこうと思います。

Azure Monitorとは?

はじめに、Microsoftの公式ドキュメントはこちらから確認できます。記載が充実しているので、お時間がある方はこちらを読んでおくことをお勧めします。

https://docs.microsoft.com/ja-jp/azure/azure-monitor/overview

Azure Monitor は、クラウドおよびオンプレミス環境の利用統計情報を収集、分析し、それに対応する包括的なソリューションを提供することにより、アプリケーションとサービスの可用性とパフォーマンスを最大化します。 このツールは、ご利用のアプリケーションがどのように実行されているかを把握するのに役立ちます。さらに、このツールにより、そのアプリケーションに影響している問題点およびアプリケーションが依存しているリソースを事前に明らかにしておくことができます。

公式ページの説明より
Azure Monitorのアーキテクチャ

公式ドキュメントなどを読んでみた結果、以下がポイントなのかなと思いました。

  • 監視対象リソースからメトリクス情報とログ情報を収集し、可視化から分析、洞察、アクションの実行までを統合的に行えるソリューション
  • 収集できる情報は、サーバレベルの情報のみならず、Application Insightsと統合することによりアプリケーションレベルの情報も収集できたり、ユーザ操作に関する情報であったり、幅広いレベルで収集できる
  • Azureサービスの監視だけでなく、オンプレ環境も含めて一元的な監視が行える
Application InsightsやLog Analyticsとの関係
  • 以下の説明の通り、元々は独立した機能でしたが、Azure Monitorを構成する機能の一部として位置付けられているようです。
  • 2018年9月にAzure Monitor、Log Analytics、Application Insights が 1 つのサービスに結合され、アプリケーションとそれらが依存するコンポーネントをエンドツーエンドで監視できるようになりました。 
  • Log Analytics と Application Insights の機能は変更されていませんが、一部の機能は、新しい対象範囲がより適切に反映されるように、Azure Monitor にブランド変更されています。

https://docs.microsoft.com/ja-jp/azure/azure-monitor/faq#whats-the-difference-between-azure-monitor-log-analytics-and-application-insights

Azure Monitorの価格

下のキャプチャは東日本リージョンの2020年11月時点の価格です。最新の価格体系については以下を確認してください。

https://azure.microsoft.com/ja-jp/pricing/details/monitor/

  • 上の説明の通り、Azure MonitorはApplication InsightsやLog Analytics、その他機能の集合体に対するブランド名です。そのため、利用料金も各機能毎に定義されており、その合計として計算されます。
  • Log Analyticsは「データの取り込み」と「データ保持」に対して課金が発生する。(下の価格を見ると、インジェスとの料金が意外と高い・・・。アプリログなどこちらで出力をコントロールできるログについては、最低限必要なデータに絞り込む設計が重要そうです。
Log Analyticsの料金
  • Application Insightsの価格も、Log Analyticsと同様にデータインジェストとデータ保持に対してかかります。ただし、Application InsightsもLog Analyticsも、上のAzure Monitorのアーキテクチャを見るとわかりますが、メトリクス・ログ情報を貯めている場所は同じなので、Application Insightsを利用している場合、Log Analyticsの料金とダブルで課金されることはない(と思います)。
Application Insightsの料金
  • メトリクスの収集は無料。カスタムメトリクスを収集する場合は課金が発生。メトリクスを分析する際のクエリに対しては課金が発生。
メトリクスの料金
  • 正常性監視は、監視するメトリクスの数で料金が変わる
正常性監視の料金
  • アラートは、下記の通り(説明が手抜きになってきた笑)
アラートルールの料金
  • 通知料金は以下の通り。(アラートルールの設定と通知は別料金なんですね・・!)
通知の料金

Azure Monitorの機能を一通り触ってみる

さて、ここからはAzure Monitorの機能を実際の画面をみながらイメージアップしていきたいと思います。Azure Monitorの左側のブレードの順に触っていきます。

アクティビティログを確認する

ここでは、テナント横断で全リソースのアクティビティログを確認することができます。

アクティビティログには、ユーザの操作による変更や、Azureサービスの機能から各リソースへの更新が全て記録されます。

アクティビティログ

アラートを一括管理する

ここでは、各リソースに対して設定したアラートを統合的にモニタリング・管理できます。新たなアラートの作成や、アラート条件の変更といった管理作業も可能です。

この機能に関する詳細はこちらの公式ドキュメントでも確認可能です。

https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/alerts-overview

具体的には、以下の情報に対してアラートを設定可能です。

  • メトリックの値
  • ログの検索クエリ
  • アクティビティ ログのイベント
  • 基になっている Azure プラットフォームの正常性
  • Web サイトの可用性のテスト

それでは実際の画面です。

アラート画面

発生したアラートはドリルダウンで現在の状況や、アラートルールの確認ができます。

アラートの詳細
アラートの重大度(Sev)について
  • 重大度は、以下のように定義されています。
  • 重大度 0 = 重大
  • 重大度 1 = エラー
  • 重大度 2 = 警告
  • 重大度 3 = 情報
  • 重大度 4 = 詳細情報
  • 重大度は、アラート作成時に自分で定義可能です。

リソースのメトリックを監視する

メトリックブレードでは、各リソースのメトリックを監視することができます。ここで確認したメトリックを元に新たなアラートを作成したり、ダッシュボードにピン留めして、カスタムダッシュボードの作成、といったアクションに繋げることができます。

メトリックの監視

さまざまなログを確認する

「ログ」機能は、Log Analyticsとして提供される機能で各リソースのログを確認可能です。ログには、各リソースのHTTP通信ログや、アプリケーションログなどがあります。

ログ検索では、裏側ではLog Analyticsのワークスペース のテーブルに蓄積されたログを参照します。Log Analyticsワークスペース は1つでも複数でも問題ありません。ご参考ではありますが、ワークスペース の設計プラクティスはこちらに説明があります。

https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/design-logs-deployment

Log Analyticsワークスペース の構造

クエリは、Kustoという言語で記述する必要がありますが、SQLが分かる方であれば、微妙に構文は異なりますがおおよそ同じ感覚で使えます。

ログ分析

また、このクエリを元にアラートを作成することも可能です。ログに基づくアラートルールを作成する際は、監視するクエリを定義します。この機能により、アプリケーションログで”XXX”が出力されたらアラートを発生させる、といった制御も可能になります。

ログに基づくアラートの設定画面

サービス正常性 (Service Health) を確認する

こちらは、Azureの障害など、Azureのサービス提供に関わる問題の発生状況を確認したり、それに対するアラートを作成したりできます。

例えば、上の画面では、Azure Active Directoryのサービスで発生した障害について表示されています。障害の場合、ドリルダウンすると、その状況や原因・対策などのレポートを確認することができます。これは便利ですね・・!

問題の詳細

この機能では、その他にも計画メンテナンスの予定や、正常性に関わるアドバイスを受けたり、またはリソースレベルでの正常性確認の状況も監視することができます。(リソース正常性は、各リソース毎に設定を行っておく必要あり)

ブックでレポートを作成する

こちらは、高度なレポート作成機能になります。事前に用意された定型分析用のテンプレート、または一から、レポートを構成することが可能です。Power BIなどと接続して可視化する方法もありますが、この機能を使うとAzure上でも完結させることができますね。

機能の詳細については、以下の公式ドキュメントをご確認ください。

https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/workbooks-overview

Azure Workbookの編集画面

リソース種類別の分析情報を確認する

Azure Monitor左側メニューの「分析情報」セクションでは、リソース種類別に分析を確認することができます。基本的には、各リソースの分析情報へのリンクが一覧でまとめられたような画面になっています。

アプリケーション

ここでは、各リソースのApplication Insightsへのリンクの一覧が提供されています。
Application InsightsはWeb AppやFunctionsなどのリソースで、予め有効化しておく必要があります。

仮想マシン

準備中

ストレージアカウント

こちらも、各ストレージアカウントリソースの「分析情報」ブレードへのリンクが提供されています。

コンテナ

準備中

ネットワーク

準備中

キーコンテナー

Azure Cache for Redis

準備中

各リソースの診断設定を管理する

さて、次は設定セクションの機能についてみていきます。はじめは「診断設定」です。

ここでは、各リソースの診断設定の有効/無効を管理することができます。

診断設定では、リソースの稼働状況の詳細を記録した各種ログを、ストレージアカウントやLog Analyticsなどに転送する設定を行うことができます。この診断設定を有効にしていないと取得できないログもあったりするので、詳細な分析を行いたいリソースに対しては有効化しておくことをお勧めします。

https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/diagnostic-settings

診断設定の管理画面

データ収集ルールを作成する

こちらは、仮想マシンリソース向けの機能です。この機能を使うことで仮想マシンから、プロセスの各稼働時間などといった詳細の稼働状況のデータをAzure Monitorに送信し、監視する仕組みを作ることができます。

https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/data-collection-rule-azure-monitor-agent

上記の公式ドキュメントに記載がありますが、ポータル上から対象のVMに対してこの設定を行うと、VM上で必要な情報を収集してAzure Monitorに送信するAzure Monitorエージェントが自動的にインストールされるという仕組みのようです。また、Azure MonitorとVM間のデータのやりとりはマネージドIDを利用して行われるようで、仮想マシンのマネージドIDが自動的に作成されます。

現在は、特定のリージョンのVMのみサポートされているようですが、そのうち全てのリージョンで使えるようになるんですかね・・。

データ収集ルールの作成

自動スケーリングを一括管理する

次は「自動スケーリング」ブレードです。ここでは、リソースの負荷が高まったときにAzureが自動的に仮想マシンを追加する、「自動スケーリング」機能を一括で設定・管理できます。

ここで一目で状況を確認できるのは便利ですね。

自動スケーリング設定

Azure Monitorとリソース間にPrivate-Linkを構成する

これは、Azure Monitorと監視対象のリソースを、プライベートエンドポイントを使ってセキュアに接続する方法、のようです。ちょっとあまり詳しくわかっていないですが、以下のドキュメントが参考になりそうです。

https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/private-link-security

Private Linkスコープの作画面

コストを確認する

Azure Monitorではコスト管理のメニューも統合されており、Azure Monitorの中で確認することができます。

Azure Advisorによる推奨事項を確認する

最後になりますが、Azure MonitorではAzure Advisorも統合されており、Advisorによる推奨事項の確認も行うことができます。この機能はなかなか強力で、Azureのベストプラクティスをプロアクティブに提案してくれて便利な機能です。

Azure Advisorによる推奨事項

個別の推奨事項は、確認するだけでなく、ボタン一つで対策の実行まで行うことができます。対策スクリプトの実態はARMテンプレートのようで、これがリソースにパッチ適用されるようです。

推奨事項の詳細

以上、Azure Monitorでできることを理解する、でした!

最後までご覧いただきありがとうございました!

おしまい

0

この記事を気に入っていただけたらシェアをお願いします!

ABOUT US

アバター
Yuu113
初めまして。Yuu113と申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。