クラウド上で稼働する仮想マシン(VM:Virtual Machine)やアプリケーション、ネットワークの運用では、正常かつ効率的に稼働しているかどうか常に監視する必要があります。トラフィックやデータベースの容量が増加する場合は、適切なスケーリングを行い、システムの安定性の確保とパフォーマンスを改善しなければなりません。
「Azure Monitor」は、Azureで構築したクラウドとオンプレミスの利用に関わる統計情報を収集し、障害の発生を防ぐとともに、最大のパフォーマンスを発揮できるように支援する包括的な監視ツールです。複数のツールで構成され、インフラストラクチャー、アプリケーション、ネットワークの状況を監視し、問題点の発見と適切なリソースを確保するために役立ちます。
ここでは、Azure Monitorの構成と全体像の概要とともに、機能について解説します。
Azure Monitorの構成と監視できる領域
Azure Monitorはクラウドの利用状況の全体を把握できます。監視できるデータのリソース、使用するデータの2つの形式、収集したデータを用いた機能の概要を解説します。
Azure Monitorで監視できるデータのリソースと機能の概要
Azure Monitorで監視できるデータのリソースには次のようなものがあります。
IaaS系 |
・仮想マシンのメモリやディスク容量など ・オペレーティングシステム |
PaaS系 |
・アプリケーション ・サブスクリプション ・テナント(複数ユーザーにおける共有状態) など |
収集されたリソースの状態や分析結果は「Log Analyticsダッシュボード」と「Azure Monitorブック」で視覚的な把握が可能です。
「Log Analyticsダッシュボード」は、保存されたあらゆるログクエリを可視化して、組織の IT運用データを関連付け、すばやく検索したり共有したりできるようにします。「Azure Monitorブック」では、豊富な内容の対話型レポートを作成可能で、チームで運用している場合は、同じリソースを共有してメンバーがレポートを編集できます。
IaaS系のインフラストラクチャーのデータ検出は「Azure Monitor for VMs」によって行います。一方、PaaS系でアプリケーションのデータ検出には「Azure Application Insights」「Azure Monitor for Containers」があります。
運用時のトラブルシューティングや正常な状態を診断や分析するためには「Log Analytics」を利用します。大規模な開発環境やアプリケーションの運用にあたっては、機械学習アルゴリズムで自動的に作成されるスマートグループのアラート、自動化されたアクションによるサポートが用意され、運用負荷を軽減します。
Azure Monitorで使用する2つのデータ形式
Azure Monitorで利用するデータ形式には「メトリック」と「ログ」があります。2つのデータは、データストアに格納されます。大きく用途を分けると、アラートの発行であればメトリック、複雑な分析にはログが適しています。
■メトリック
メトリックは、定期的に収集される特定の時点におけるシステムの状況データです。データが軽量なメトリックを使うと、シンプルなロジックで迅速にアラートを生成できます。したがって、アラート発行の目的に適しています。
メトリックのデータを活用して、Azureメトリックスエクスプローラーによるデータのグラフ化や、「ブック」の機能を使って複数の対話型レポートをまとめることができます。また、結果に対するアクションやスケーリングは自動化が可能です。データへのアクセスは、PowerShellコマンドレット、REST API、CLIを使用できます。エクスポートやアーカイブの機能も備えています。
Azure portalの「Overview(概要)」ページに表示される仮想マシンのパフォーマンスは、Azure Monitorで収集しています。グラフをクリックするとAzureメトリックスエクスプローラーで、時系列の数値データを確認できます。
■ログ
Azure Monitorのログは、複雑な分析に適しています。メトリックのデータは数値が中心ですが、ログのデータには詳細な説明のテキストが付加されます。メトリックとは異なり、定期的にデータを収集しません。また、データの構造も異なっています。ログとして格納されたAzureの利用統計情報は、他のデータと組み合わせて活用できます。
Azure Monitorの機能
Azure Monitorはさまざまなデータを収集しますが、全体像としては、以下のような機能を備えています。
Insight(洞察) |
・仮想マシン(VM)の監視による洞察 ・アプリケーション、コンテナーの監視による洞察 ・監視結果によるソリューション支援 |
Visualize(可視化) |
・ダッシュボードによる可視化 ・カスタムビューによる可視化 ・Power BIによる可視化 ・ブックによる可視化 |
Analyze(分析) |
・メトリックスの分析 ・ログの分析 |
Respond(対応) |
・アラートの発行 ・アラート発行やスケーリングなどの自動化 |
Integrate(統合) |
・Logic Apps ・APIへのエクスポート |
詳細については、以下をご覧ください。
Azure Monitorの3つの機能
Azure Monitorが収集したデータは可視化され、KPI(重要業績評価指標)に適合したパフォーマンスを発揮しているかどうか視覚的に洞察を得られます。重要な機能は「Azure Application Insights」「Azure Monitor for Containers」「Azure Monitor for VMs」です。
この3つの機能の概要を紹介します。
Azure Application Insights
Azure Application Insightsは、Webアプリケーションのパフォーマンス管理 (APM:Application Performance Management)の機能です。使用状況の正常性をモニタリングして、障害に対する高可用性の維持、パフォーマンスの最大の発揮に役立ちます。
特長としてAzure Application Insightsは、オンプレミス、クラウド、ハイブリッドクラウドなど、Webアプリケーションがホストされている場所を問いません。.NET、Node.js、Java EEなどの多様なプラットフォームで機能します。パフォーマンスの異常を自動的に検出し、強力な分析ツールによって診断して、問題解決をサポートします。
異常検知の仕組みとしては、Webアプリケーションにインストルメンテーションパッケージをインストールしておくことによって、テレメトリデータを収集します。バックグラウンドのコンポーネントやWeb ページ内のJavaScriptも監視可能です。アクセスが多く人気のあるページは何か、応答率と待機時間、エラー率などを検出します。応答時間がかかったりエラーが表示されたりするページは、早急に改善する必要があります。
収集したデータはシンプルなスマート検出と手動アラートのほか、アプリケーションマップ、メトリックスエクスプローラー、リアルタイムによるライブメトリックスストリームなど、さまざまなグラフィカルな表示方法があります。また、ダッシュボードで複数のデータを組み合わせて表示し、チームのメンバーと共有することもできます。
Azure Monitor for Containers
Azure Monitor for Containersは、コンテナー化によるアプリケーションのデプロイと管理を行う「Azure Kubernetes Service(AKS)」の管理機能です。
Kubernetes はオープンソースによるコンテナーによるデプロイやスケーリングの運用自動化のためのツールですが、開発チームと運用チームを連携し、継続的なインテグレーションとデプロイを行うことで、エンタープライズレベルの開発を迅速化します。
Kubernetesのコントローラー、ノード、コンテナーからメトリックならびにログを収集して、パフォーマンスを把握します。メトリックとログの収集は、コンテナー化されたLinux 向けの Log Analytics エージェントを使うことで自動的に収集されます。
Azure Monitor for VMs
IaaS系の監視ツールとして、仮想マシンやネットワークの状態を監視する機能がAzure Monitor for VMsです。特長としては、Azure上のWindows やLinuxの仮想マシンのパフォーマンスだけでなく、Azureの外部にあるオンプレミスや別のクラウドの監視もサポートされています。つまり、あらゆるオンプレミスやクラウドの大規模な監視が可能です。
Azure Monitor for VMsによって、アプリケーションのパフォーマンスと可用性を予測することが可能になり、障害の早期発見、最大のパフォーマンスを発揮するためのボトルネックの検討、ネットワークの問題をサービス全体で把握できます。問題が発生したときに、メインの仮想マシン以外のオンプレミスや他のクラウドに関連しているかどうかを確認するときにも役立ちます。
まとめ
すばらしいアプリケーションをリリースしても、アクセスの急増などによってパフォーマンスが低下した場合、ビジネスの機会損失になるばかりか、サービスの顧客満足度を低下させる原因になります。あるいは異常値を示している状態を放置しておくことは、企業にとっては大きなリスクです。
Azure Monitorを利用すれば、詳細な監視と問題解決の自動化ができるとともに、柔軟なスケーリングを実現します。ビジネスでクラウドを運用する場合には、負荷を軽減しつつ効率的な監視を考慮する必要があります。