Azure のリソースのメトリックは、各リソースの「メトリック」で確認をすることや、
メトリック エクスプローラー (すべてのサービスのメトリックまたは、Azure Monitor のブレードのメトリック) から確認することができます。
Azure ではデフォルトで Azure Monitor による情報の取得が行われており、Azure Monitor で使用する監視データのソース にデータソースとして使用できる情報が記載されています。
パフォーマンス情報のようなメトリックについては「プラットフォーム メトリック」として、各リソースの診断設定を設定しなくても情報の取得が行われています。
このプラットフォームメトリックについての情報を確認する際には、どの情報を確認すればよいかをよく忘れてしまうので、まとめておきたいと思います。
Contents
プラットフォームメトリック
プラットフォームメトリックは Azure Monitor メトリックの概要 に記載されています。
カテゴリが「ネイティブ プラットフォーム メトリック」として記載されており、ネイティブ プラットフォーム メトリックはコストを発生させることなく利用することができます。
取得されている情報は、各リソースのメトリックや、メトリック エクスプローラー を確認することができます。
Azure のリソースのブレードを開くと、次の画像のようなメトリックを確認することができますが、データソースとなっているものがプラットフォームメトリックと考えるとよいのではないでしょうか。
ポータルでの確認以外でも REST API でメトリックを取得することができ、Azure Monitor REST API リファレンス で API リファレンスが公開されています。
取得されているメトリック
取得可能なメトリックについては、Azure Monitor のサポートされるメトリック で公開されており、これらの情報がプラットフォームメトリックとして活用することができるようになっています。
Kusto でデータを検索するためには
プラットフォームメトリックは、「メトリック」のグラフ操作の操作感や、REST API で情報を取得することになるのが基本的なデータの活用方法となるかと思います。
Kusto でデータを検索したい場合には、各リソースの診断設定などでメトリックの情報を任意の Log Analytics ワークスペースに送信する必要があるかと思います。
Log Analytics ワークスペースに連携した場合の基本的なデータ構造については AzureMetrics の構成となり、「AzureMetrics テーブル」 に情報が取得されることになるかと。
各リソースのブレードの「ログ」で、メトリックの情報が確認できる (AzureMetrics テーブルが作成されている) 場合は、診断設定でメトリックの情報を連携するように設定されており、この情報はプラットフォームメトリックではなく、診断設定により明示的に連携を行ったリソースログであるということになるかと。
保持期間
情報の保持期間については、メトリックの保有期間 に記載されており、「93 日間」保存されます。(各リソースのメトリックのグラフで表示できるのは最大 30 日間分のデータとなっています)
これ以上のデータの保持が必要な場合には REST API で取得し、任意のデータストアに格納するか診断設定を使用して Log Analytics ワークスペースなどにデータを送信する必要があります。
アクセス制御
プラットフォームメトリックについては、IAM でアクセス許可の制御を行うことができ Azure Monitor でのロール、アクセス許可、セキュリティ で解説がされています。
Datadog を例としたプラットフォームメトリックの活用方法
Datadog の Azure Integaration でも、このプラットフォームメトリックの情報が使用されており、Monitoring Data Reader の権限を使用してアクセスが行われています。
SQL Database であれば、Microsoft Azure SQL Database に記載されている情報を取得することができます。この情報は SQL Database にログインをすることなく取得ができているのですが、プラットフォームメトリックで提供されている Microsoft.Sql/servers/databases がベースとなっているかと思います。
サードパーティーの監視ツールがどのようにして、Azure のメトリックを取得しているかについては、このプラットフォームメトリックの存在を意識するとわかりやすいのではないでしょうか。
プラットフォームログ
今回はメトリックについて確認する際の情報を記載していますが、メトリックだけでなくログについても プラットフォームログ として取得が行われているものがあります。
プラットフォームログについては、リソース ログ / アクティビティ ログ / Azure Active Directory (Azure AD) ログ が取得されています。
ログの内容については、次の情報を参考にすると良さそうです。
リソースログ
リソース ログ (診断ログ) については、デフォルトでは取得されていません。
既定では、リソース ログは収集されません。
各リソースの「診断設定」で取得項目を有効にする必要があり、リソース固有の情報を取得することができます。「診断設定」により取得対象の情報を選択し「ログ」から取得したログを確認するのが基本的な操作方法となるのではないでしょうか。
Log Analytics にデータを取得する場合は「AzureDiagnostics テーブル」や、それぞれのリソース固有のテーブルに情報が出力されており、テーブルについては以下の情報でまとめられています。
ログの AzureMetrics テーブルからもメトリックの情報を確認することができますが、これはプラットフォームメトリックではなく、リソースログとして取得したメトリック情報を確認しているということになります。
アクティビティログ
アクティビティ ログ については、サブスクリプションレベルのリソースに対しての操作等のイベントが取得されます。
リソースログとは異なり、アクティビティログはデフォルトで取得が行われており「90日間」プラットフォーム側に保存が行われています。
それ以上の期間データを保持しておきたい場合には、Azure Monitor のブレードの アクティビティログのエクスポートを使用して、Log Analytics ワークスペース等にエクスポートし長期間保持しておくことができます。
Log Analytics にデータを取得する場合は「AzureActivity テーブル」として情報が出力されているかと。
Azure Active Directory ログ
Azure Active Directory に対しての操作ログとなり、Azure 以外でも AAD を使用している場合に情報が出力されるログとなります。
データ保持期間については、Azure Active Directory データ保持 に記載されており、AAD のエディションによって保持期間がことなり、Premium を使用した場合は、アクティビティについては最長で 30 日間は情報が保持されます。
それ以上の期間のデータを保持しておきたい場合には、Azure Active Drecory のブレードのサインインログ / 監査ログ / 診断設定のいずれかからデータ設定のエクスポートをすることで長期保持しておくことができます。
診断設定を行わないでも標準で取得されている情報としてどのようなものがあったかについては、これらの情報を起点とするとよいのではないでしょうか。
モニターブレードを使用したメトリック / ログの確認
ここまでの内容は、Azure の各リソースでのログの確認を主軸としてきましたがモニターのブレード (Azure Monitor) を使用してもメトリック / ログを確認することができます。
確認対象のリソースを切り替えて状況を確認する場合には、リソースへの移動に手間がかかりますので、そのような場合はモニターを使用して確認してみるのもよいのではないでしょうか。
リソースによっては、「分析情報」(Insights) という、リッチな情報の確認を行う機能も提供されています。各リソースからも分析情報を確認することはできますが、モニターのブレードからも確認することができます。