Azure Queue Storage の監視

Azure リソースに依存するクリティカルなアプリケーションとビジネス プロセスがある場合は、それらのリソースの可用性、パフォーマンス、操作を監視する必要があります。 この記事では、Azure Queue Storage によって生成される監視データについてと、Azure Monitor の機能を使用してこのデータに関するアラートを分析する方法について説明します。

監視の概要

Azure portal で、各 Queue Storage リソースの [概要] ページには、リソースの要求や時間ごとの課金など、リソースの使用状況の要約が表示されます。 この情報は役立ちますが、使用できる監視データはごくわずかです。 このデータの一部は自動的に収集され、リソースを作成するとすぐに分析に使用できるようになります。 一定の構成によって追加の種類のデータ収集を有効にすることができます。

Azure Monitor とは

Azure Queue Storage では、Azure のフルスタック監視サービスである Azure Monitor を使用して監視データを作成します。 Azure Monitor には、Azure リソースのほか、他のクラウドおよびオンプレミスのリソースを監視するための完全な機能セットが用意されています。

まず「Azure Monitor を使用した Azure リソースの監視」にある次の事項の説明をお読みください。

  • Azure Monitor とは
  • 監視に関連するコスト
  • Azure で収集される監視データ
  • データ収集の構成
  • 監視データの分析とアラート生成のための Azure の標準ツール

以下のセクションでは、この記事に基づき、Azure Storage から収集された特定のデータについて説明します。 例では、Azure ツールを使用してデータ コレクションを構成し、このデータを分析する方法について説明します。

データの監視

Azure Queue Storage では、他の Azure リソースと同じ種類の監視データが収集されます。これについては、Azure リソースのデータの監視に関するページをご覧ください。

Azure Queue storage によって作成されるメトリックとログの詳細については、「Azure Queue Storage 監視データのリファレンス」を参照してください。

Azure Monitor のメトリックとログでは、Azure Resource Manager ストレージ アカウントのみがサポートされています。 Azure Monitor では、従来のストレージ アカウントはサポートされていません。 従来のストレージ アカウントでメトリックまたはログを使用する場合、Azure Resource Manager ストレージ アカウントに移行する必要があります。 Azure Resource Manager への移行に関するページを参照してください。

必要に応じて、従来のメトリックとログの使用を続けることができます。 実際に、従来のメトリックとログを Azure Monitor のメトリックとログと並行して使用できます。 このサポートは、Azure Storage で従来のメトリックとログのサービスが終了するまで引き続き提供されます。

収集とルーティング

プラットフォーム メトリックとアクティビティ ログは自動的に収集されますが、診断設定を使用して他の場所にルーティングすることもできます。

リソース ログは、診断設定を作成して 1 つ以上の場所にルーティングするまでは収集および格納されません。

リソース ログを収集するには、診断設定を作成する必要があります。 設定を作成するときに、ログを有効にするストレージの種類として [キュー] を選択します。 次に、ログ収集の対象とする操作のカテゴリを次のいずれかから指定します。

カテゴリ 説明
StorageRead オブジェクトに対する読み取り操作。
StorageWrite オブジェクトに対する書き込み操作。
StorageDelete オブジェクトに対する削除操作。

Azure portal、CLI、PowerShell を使用して診断設定を作成するプロセスの詳細については、「Azure でプラットフォーム ログとメトリックを収集するための診断設定を作成する」を参照してください。 また、Azure Resource Manager テンプレートまたは Azure Policy 定義を使用して診断設定を作成する方法に関する情報へのリンクも見つかります。

宛先の制限事項

一般的な宛先の制限については、「宛先の制限事項」を参照してください。 次の制限は、Azure Storage アカウントの監視にのみ適用されます。

  • この設定で監視している対象と同じストレージ アカウントにログを送信することはできません。

    そのため、ログ エントリが別のログ エントリの書き込みを記述する再帰的なログになります。 ログ情報を格納するために、アカウントを作成するか、別の既存のアカウントを使う必要があります。

  • アイテム保持ポリシーを設定することはできません。

    ログをストレージ アカウントにアーカイブする場合、ライフサイクル管理ポリシーを定義することにより、ログ コンテナーの保持ポリシーを管理できます。 方法については、「Azure Blob Storage アクセス層の自動化によるコストの最適化」を参照してください。

    ログを Log Analytics に送信する場合は、ワークスペース レベルで Log Analytics のデータ保有期間を管理したり、データの種類ごとに異なる保持設定を指定したりすることもできます。 方法については、「データ保有期間 の変更」を参照してください。

メトリックの分析

(Azure Queue Storage を含む) すべての Azure Monitor サポート メトリックの一覧については、Azure Monitor でサポートされるメトリックに関する記事をご覧ください。

Azure メトリックス エクスプローラーを使用して、他の Azure サービスのメトリックと共に Azure Storage のメトリックを分析できます。 メトリックス エクスプローラーを開くには、 [Azure Monitor] メニューの [メトリック] を選択します。 このツールの使用方法の詳細については、「Azure メトリックス エクスプローラーの概要」をご覧ください。

次の例は、アカウント レベルでトランザクションを表示する方法を示しています。

Azure Portal でのメトリック アクセスのスクリーンショット

ディメンションをサポートするメトリックについては、目的のディメンション値でメトリックをフィルター処理できます。 次の例は、 [API 名] ディメンションの値を選択することで特定の操作に対するアカウント レベルのトランザクションを表示する方法を示しています。

Azure Portal におけるディメンションでのメトリック アクセスのスクリーンショット

Azure Storage でサポートされるディメンションの完全な一覧については、「メトリックのディメンション」をご覧ください。

Azure Queue Storage のメトリックは、次の名前空間にあります。

  • Microsoft.Storage/storageAccounts
  • Microsoft.Storage/storageAccounts/queueServices

ログの分析


リソース ログには、ストレージ アカウント内の BLOB として、イベント データとして、またはログ分析クエリを使用してアクセスできます。 これらのログを見つける方法については、「Azure リソース ログ」を参照してください。

Azure Monitor 内のすべてのリソース ログには、同じフィールドの後にサービス固有のフィールドがあります。 共通のスキーマの概要については、Azure Monitor リソース ログのスキーマに関する記事をご覧ください。 Azure Queue Storage リソース ログのスキーマは、「Azure Queue Storage 監視データのリファレンス」にあります。

ログに記録された SMB と REST の各操作の一覧を取得するには、Storage によって記録される操作やステータス メッセージに関するページを参照してください。

ログ エントリが作成されるのは、サービス エンドポイントに対して行われた要求がある場合に限られます。 たとえば、ストレージ アカウントのファイル エンドポイントにはアクティビティが存在するが、テーブルまたはキュー エンドポイントには存在しない場合、Azure Queue Service に関連したログだけが作成されます。 Azure Storage ログには、ストレージ サービスに対する要求の成功と失敗についての詳細な情報が含まれています。 この情報を使って個々の要求を監視したり、ストレージ サービスに関する問題を診断したりできます。 要求は、ベスト エフォートでログに記録されます。

ログ エントリが作成されるのは、サービス エンドポイントに対して行われた要求がある場合に限られます。 たとえば、ストレージ アカウントのキュー エンドポイントにはアクティビティが存在するが、テーブルおよび BLOB のいずれのエンドポイントにも存在しない場合、Queue Storage に関連したログだけが作成されます。 Azure Storage ログには、ストレージ サービスに対する要求の成功と失敗についての詳細な情報が含まれています。 この情報を使って個々の要求を監視したり、ストレージ サービスに関する問題を診断したりできます。 要求は、ベスト エフォートでログに記録されます。

アクティビティ ログは、サブスクリプションレベルのイベントに関する分析情報を提供する Azure にあるプラットフォーム ログの一種です。 個別に表示できるほか、Azure Monitor ログにルーティングして、Log Analytics を使用してより複雑なクエリを実行することもできます。

認証済み要求をログに記録する

次のタイプの認証済み要求が記録されます。

  • 成功した要求
  • 失敗した要求 (タイムアウト、スロットル、ネットワーク、承認などに関する各種エラー)
  • Shared Access Signature (SAS) または OAuth を使用した要求 (失敗した要求と成功した要求を含む)
  • 分析データ ( $logs コンテナーの従来のログ データと、 $metric テーブルのクラス メトリック データ) に対する要求

Queue Storage サービス自体による要求 (ログの作成や削除など) はログされません。 ログに記録されるデータの完全な一覧については、ストレージのログに記録された操作とステータス メッセージに関するページと、ストレージのログの形式に関するページをご覧ください。

匿名要求をログに記録する

次のタイプの匿名要求が記録されます。

  • 成功した要求
  • サーバー エラー
  • クライアントとサーバーの両方のタイムアウト エラー
  • エラーコード 304 (Not Modified) で失敗した GET 要求

その他の失敗した匿名要求は一切記録されません。 ログに記録されるデータの完全な一覧については、ストレージのログに記録された操作とステータス メッセージに関するページと、ストレージのログの形式に関するページをご覧ください。

サンプル Kusto クエリ

Log Analytics にログを送信する場合、Azure Monitor ログ クエリを使用してそれらのログにアクセスできます。 詳細については、「Log Analytics のチュートリアル」を参照してください。

キューの監視に役立つ、 [ログ検索] バーに入力できるクエリをいくつか紹介します。 これらのクエリは新しい言語で使用できます。

重要

ストレージ アカウント リソース グループ メニューから [ログ] を選択すると、クエリのスコープが現在のリソース グループに設定された状態で Log Analytics が開きます。 つまり、ログ クエリには、そのリソース グループのデータのみが含まれます。 他のリソースのデータや他の Azure サービスのデータを含むクエリを実行する場合は、Azure Monitor のメニューから [ログ] を選択します。 詳細については、「Azure Monitor Log Analytics のログ クエリのスコープと時間範囲」を参照してください。

これらのクエリを使用すると、Azure Storage アカウントの監視に役立ちます。

  • 過去 3 日間に発生した 10 件の最も一般的なエラーの一覧を表示します。

    StorageQueueLogs
    | where TimeGenerated > ago(3d) and StatusText !contains "Success"
    | summarize count() by StatusText
    | top 10 by count_ desc
    
  • 過去 3 日間で最も多く発生したエラーの原因となった上位 10 件の操作を一覧表示します。

    StorageQueueLogs
    | where TimeGenerated > ago(3d) and StatusText !contains "Success"
    | summarize count() by OperationName
    | top 10 by count_ desc
    
  • 過去 3 日間でエンドツーエンドの待機時間が最も長かった上位 10 個の操作を一覧表示します。

    StorageQueueLogs
    | where TimeGenerated > ago(3d)
    | top 10 by DurationMs desc
    | project TimeGenerated, OperationName, DurationMs, ServerLatencyMs, ClientLatencyMs = DurationMs - ServerLatencyMs
    
  • 過去 3 日間にサーバー側の調整エラーの原因となったすべての操作を一覧表示します。

    StorageQueueLogs
    | where TimeGenerated > ago(3d) and StatusText contains "ServerBusy"
    | project TimeGenerated, OperationName, StatusCode, StatusText
    
  • 過去 3 日間の匿名アクセスを含むすべての要求を一覧表示します。

    StorageBlobLogs
    | where TimeGenerated > ago(3d) and AuthenticationType == "Anonymous"
    | project TimeGenerated, OperationName, AuthenticationType, Uri
    
  • 過去 3 日間に使用された操作の円グラフを作成します。

    StorageQueueLogs
    | where TimeGenerated > ago(3d)
    | summarize count() by OperationName
    | sort by count_ desc
    | render piechart
    

警告

Azure Monitor のアラートは、監視データで重要な状態が見つかると事前に通知します。 これにより、ユーザーが気付く前に、管理者が問題を識別して対処できます。 アラートはメトリックログアクティビティ ログに対して設定できます。

次の表に、監視するシナリオの例とアラートに使用する適切なメトリックを示します。

シナリオ アラートに使用するメトリック
Queue Storage サービスが調整されます。 メトリック: トランザクション
ディメンション名:応答の種類
Queue Storage 要求は 99% の割合で成功します。 メトリック: 可用性
ディメンション名: Geo 型、API 名、認証
Queue Storage エグレスが 1 日に 500 GiB を超えた。 メトリック: エグレス
ディメンション名: Geo 型、API 名、認証

よく寄せられる質問

Azure Storage はマネージド ディスクまたはアンマネージド ディスクのメトリックをサポートしますか?

いいえ。 コンピューティング インスタンスでは、ディスク上のメトリックがサポートされています。 詳細については、マネージド ディスクと非管理ディスクのディスクあたりのメトリックに関するページをご覧ください。

次のステップ

次のいずれかのガイドを参照します。

ガイド 説明
Azure Storage の監視、診断、トラブルシューティング ストレージ アカウントの問題 (手順のガイダンスなど) をトラブルシューティングします。
Azure Monitor Storage 分析情報を使ってストレージを監視する ストレージのパフォーマンス、容量、可用性の統合ビュー
Azure メトリックス エクスプローラーの概要 メトリックス エクスプローラーのツアー。
Azure Monitor の Log Analytics の概要 Log Analytics のツアー。
Azure Monitor メトリックの概要 メトリックとメトリック ディメンションの基本
Azure Monitor ログの概要 ログの基本とその収集と分析の方法
Azure Monitor のメトリックに移行する Storage Analytics のメトリックから Azure Monitor のメトリックに移行します。
Azure Queue Storage 監視データのリファレンス Azure Queue Storage で作成されるログとメトリックのリファレンス
パフォーマンスに関する問題のトラブルシューティング パフォーマンスに関する一般的な問題とそのトラブルシューティング方法に関するガイダンス。
可用性に関する問題のトラブルシューティング 可用性に関する一般的な問題とそのトラブルシューティング方法に関するガイダンス。
クライアント アプリケーション エラーのトラブルシューティング クライアントの接続に関する一般的な問題とそのトラブルシューティング方法。