Azure Monitorで依存しているリソースを監視

<1.概要>

<1.Azure Monitor>

クラウド上で稼働している仮想マシンや各種アプリケーション、ネットワークの運用において、正常かつ効率的に稼働しているかの監視を行う必要があります。

常時、Azureが安定して稼働をしているか監視するためのツールとして「Azure Monitor」を使用します。

「Azure Monitor」と、Azureで構築したクラウドとオンプレミスの利用に関わる統計情報を収集して、事前に障害発生を防ぐとともに、最大限のパフォーマンスを発揮できるように支援する包括的監視ツールです。

複数のツールから成り立っており、インフラストラクチャー、アプリケーション、ネットワークの運用状況を常時監視して、障害の発見、対処と適切なリソース確保に役立っています。

<2.Azure Monitorの機能>

<1.Azure Application Insights>

Webアプリケーションパフォーマンスを管理する機能です。使用状況の正常性を常にモニタリングして障害発生に備えています。

特長は、オンプレミス、クラウド、ハイブリッドクラウド等のWebアプリケーションがホストされている場所を問わず、.Net,Nde.jp,Java EE等の多様なプラットフォームで昨日できます。パフォーマンスの異常が自動検出された場合は、強力な分析ツールを使用して診断を行い、問題解決をサポートします。

パフォーマンスの異常の検出の仕組みは、Webアプリケーションにインストルメンテーションパッケージをインストールすることによってテレメトリデータを収集し、バックグランドのコンポーネントやWebページ内のJavaScriptの監視も可能になります。

収集されたデータは、シンプルなスマート検出と手動アラートやアプリケーションマップ、メトリックエクスプローラー等のグラフィカルな方法で表示します。また、ダッシュボードで複数のデータを組み合わせて表示する事で、チームメンバーと情報の共有が行えます。

<2.Azure Monitor for Contents>

コンテナー化によるアプリケーションのデプロイと管理を行う「Azure Kubernetes Service(ASK)」の管理機能です。

AKSクラスターやデプロイされたアプリケーションが、どのように稼働しているかを知るために、コンテナーの正常性に関するAzure Monitorがコンテナー、ノード、およびコントローラーからメモリとプロセッサのメトリックを収集します。

メトリックとログの収集はコンテナー化されたLinux向けのLog Analyticsエージェントを使用することで自動的に収集することが可能です。

<3.Azure Monitor for VMs>

IaaS系の監視ツールとして、仮想マシンやネットワークの状態、仮想マシンスケールセットのパフォーマンスの正常性を監視する機能です。

Azure上でのWindowsやLinux搭載の仮想マシンのパフォーマンスのみならず、Azure外部にあるオンプレミスや別クラウドの監視サポートといった大規模な監視を可能としています。

またアプリケーションのパフォーマンスと可用性を予測することで、障害の早期発見やパフォーマンスを最大限発揮できるようにするためにボトルネックの検討、そしてネットワーク問題をサービス全体を通して把握することができます。

<3.監視できるデータ>

<1.データのリソースと機能>

IaaS系・仮想マシンのメモリ、ディスク容量等
・オペレーティングシステム
PaaS系・アプリケーション
・サブスクリプション
・テナント(複数のユーザーと共有状態)等

各形式によって収集されたリソースの状態、分析結果のデータは「Log Analyticsダッシュボード」
、「Azure Monitorブック」
を介して視覚的に把握することができます。

「Log Analyticsダッシュボード」は保存されているすべてのログクエリを可視化し、組織のITデータを検索、関連付けおよび共有できるようにします。

「Azure Monitorブック」は、単一ツールでテキスト、分析クエリ、メトリック、パラメーターを組み合わせて内容豊富な「対話型レポート」を作成します。チームで運用している場合、同一のリソースを共有してメンバーがレポートの編雌雄を行えます。

<4.各形式のデータ検出と運用時の対応>

IaaS系のインフラストラクチャーのデータの検出は「Azure Monitor for VMs」によって行われます。

「Azure Monitor for VMs」は、実行中のプロセス、他のリソースへの依存関係等、仮想マシンと仮想マシンスケールセットのパフォーマンスと正常に稼働しているかどうかの監視がされています。

パフォーマンスのボトルネック、ネットワークの問題を識別することによって、重要なアプリケーションのパフォーマンスとの可用性を予測したり、発生した問題が他の依存関係に関連してかどうかの把握もします。

PaaS系におけるアプリケーションのデータ検出には「Azure application Insights」「Azure Monitor for Contents」があります。

「Azure application Insights」は、Azure Monitorが有する機能の1つです。開発者やDevOpsプロフェッショナル向けで、拡張可能なアプリケーションパフォーマンス管理サービス(APM)になり、利用すれば、実行中のアプリケーションの監視が行えます。

パフォーマンスの異常を自動検出し、APMに組み込まれている分析ツールを使用して、問題を診断し、ユーザーがアプリを使用して実行している操作の把握が可のです。

「Azure Monitor for Contents」とは、すべてのAzure Cosmos SBリソースの全体的パフォーマンス、エラー、容量、捜査上の正常性のビューを統一して対話型エクスペリエンスで提供した機能です。

運用中のトラブルシューティングや正常な状態を診断、分析するには「Log Analytics」を利用します。

「Log Analytics」は、各種ログを「収集」「検索」「分析」「表示」する機能を提供する「データマイニングサービス」です。

<3.2つのデータ形式>

<1.メトリック>

メトリックとは、特定の時点における定期的に収集されるシステムの状況データを表す数値を言います。

収集したデータを活用してAzureメトリックスエクスプローラーによるデータのグラフ化「ブック」の機能を用いて複数の対話型レポートにまとめることができます。

またデータが軽量なメトリックを使用すると、シンプルなロジックで迅速なアラートの制作ができます。ゆえにアラート発行の目的に適しているといえます。

<2.メトリックでできること>

<データ使用><説明>
・分析メトリックスエクスプローラーを使用し、収集されたメトリックをグラフで分析して異なるリソースからのメトリックを比較します。
・視覚化メトリックスエクスプローラーのグラフをAzureダッシュボードにピン留めします。また、ブックを作成して複数のデータセットを対話型レポートまとめ視覚化できるように表示します。加えて、クエリのGrafanaにエクスポートし、ダッシュボードを利用してほかのデータソースと組み合わせます。
・Alertメトリックがしきい値を超えてしまった時に、通知を送信または自動化されたアクションを実行する「メトリックアラートルール」を実行します。
・自動化自動スケーリングを使用してしきい値を超えるメトリック値に基づいてリソースの増減を行います。
・エクスポートメトリックをログにルーティングしてメトリックデータとログデータを一緒に分析とた93日より長くメトリック値を保存します。
・取得PowerShellコマンドレットを使用して、コマンドラインからメトリック値にアクセスします。カスタムアプリケーションからメトリック値にアクセスには、REST APIを使用します。またコマンドラインからメトリック値のアクセスにはCLIを使用します。
・Archiveコンプライアンス、監査、オフラインレポートの目的で、リソースのパフォーマンスや正常値の履歴をアーカイブします。

<3.ログ>

メトリックのような数値を含めることができるが、通常は詳細な説明付きのテキストデータが付加されます。メトリックとは構造の違いや定期的にデータが収集されないという点がログにはあります。ログとして格納された利用統計データは、他のデータと組み合わせて活用てきます。

<4.ログでできること>

<データ使用><説明>
・分析Azure portalでLog Analyticsを使用してログクエリを書き、強力な
データエクスプローラー分析エンジンを使用してログデータを対話形式で分析します。また、Azure portalでapplication Insights分析コンソールを使用し、ログクエリを記述してapplication Insightsからログデータを対話形式で分析を行います。
・視覚化テーブルかグラフのいずれかで表示されるクエリ結果をダッシュボードにピン留めします。クエリの結果はPower BIにエクスポートして様々な視覚化を施してAzureの外部ユーザーと共有化できるようにします。また、ブックを作成して複数のデータセットを対話型レポートまとめ視覚化できるように表示します。加えて、クエリのGrafanaにエクスポートし、ダッシュボードを利用してほかのデータソースと組み合わせます。
・Alertクエリの結果と特定の結果が一致する時、通知を送信するか自動化したアクションを実行してログ警告ルールを構成します。また、メトリックとして抽出した特定のログデータログに対しては、メトリック警告ルールを構成します。
・取得コマンドラインからログクエリにアクセスする場合は、Azure CIもしくはPowerShellコマンドレットを使用します。また、カスタムアプリケーションからログクエリの結果にアクセスする場合は、REST APIを使用します。
・エクスポートLogic Appsを使用して、ログデータを取得して外部にコピーするワークフローの構築を行います。

<5.まとめ>

優れたアプリケーションをリリースしても、アクセス数の処理等によるパフォーマンスの低下の要因は、顧客満足度の低下に繋がったり、ビジネスの機会損失、信頼の失意になります。

Azure Monitorを利用することで、効率的にクラウド運用が行えるほか、迅速な問題解決など人の手がかかる面を自動化できるといった費用削減やユーザーに安定したサービスの提供が実現できます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です