Azure Resource Graph でリソース管理を可視化する

この記事の内容

  • Azure Resource Graph を使うと、サブスクリプション内のリソースをクエリ言語で柔軟に検索・集計できます
  • Azure Resource Graph エクスプローラーから GUI でクエリを実行し、結果をグラフやマップで視覚化できます
  • 集計結果はダッシュボードにピン留めでき、JSON 形式でエクスポート・インポートも可能です
  • GitHub で公開されているサンプルダッシュボードを読み込んで、すぐに活用できます
  • スロットリング(調整)が発生した場合はリクエストで上限を引き上げてもらうことができます

Azure Resource Graph とは

Azure Resource Graph は、Azure サブスクリプション内のリソースをクエリ言語(KQL ライクな構文)で検索・集計できるサービスです。Azure Monitor や Azure Log Analytics と同様の構文で操作できるため、これらを使い慣れている方にはすぐに馴染めるでしょう。


Resource Graph エクスプローラーを開く

Azure ポータルの検索バーで「Resource Graph エクスプローラー」と入力するとアクセスできます。エクスプローラー上でクエリを入力して実行するだけで、サブスクリプション内のリソース情報を取得できます。


基本的なクエリの書き方

すべてのリソースを取得する

resources

このクエリを実行すると、idnametypelocationresourceGroupsubscriptionIdmanagedBy などのカラムを含むリソース一覧が取得できます。Azure ポータルの「すべてのリソース」画面で見るものと同等の情報です。

表示する列を絞り込む

resources
| project name, type

project 演算子で表示するカラムを指定できます。Shift + Enter でクエリを実行します。

件数を絞り込む

resources
| project name, type
| top 10 by name

top を使うと上位 N 件だけ表示できます。

名前でソートする

resources
| order by name asc

タイプでフィルタリングする

仮想マシンだけを絞り込む場合は以下のようにします。

resources
| where type == "microsoft.compute/virtualmachines"

ストレージアカウントの場合は次のように変更します。

resources
| where type == "microsoft.storage/storageaccounts"

リソース数をカウントする

resources
| summarize count()

ロケーション別にグループ化してカウントする

resources
| summarize count() by location

結果をグラフで視覚化する

集計結果は数値として出力されるため、グラフ表示に切り替えることもできます。エクスプローラー上部のグラフオプションから以下のような表示が選択可能です。

  • 棒グラフ
  • ドーナツグラフ
  • マップ表示

ロケーション別のリソース分布など、視覚的にわかりやすい形で確認できます。


ダッシュボードにピン留めする

クエリ結果をダッシュボードにピン留めして、自分専用の管理画面を作成できます。

  1. クエリを実行して結果を表示する
  2. 「ダッシュボードにピン留め」を選択する
  3. 新しいダッシュボードを作成するか、既存のものを選択する

作成したダッシュボードは Azure ポータルの「ダッシュボード」から確認できます。


ダッシュボードのエクスポートとインポート

ダッシュボードは JSON 形式でエクスポートできます。エクスポートした JSON を他の環境にインポートすることで、同じダッシュボードを共有・配布することが可能です。


GitHub のサンプルダッシュボードを活用する

Microsoft が GitHub で Azure のサンプルダッシュボードを公開しています。azure-samples リポジトリの portal-dashboard にサンプルが用意されており、JSON ファイルをダウンロードして Azure ポータルからアップロードするだけで利用できます。

サンプルダッシュボードには以下のような情報が含まれています。

  • すべてのリソースの総数と種類の棒グラフランキング
  • 仮想マシンの一覧と OS の種別
  • ストレージアカウントの一覧
  • ディスクサイズの合計
  • 仮想ネットワークの数

既存のクエリを確認したい場合は、ダッシュボード上のタイルをクリックすることで、裏で動いている実際のクエリを確認できます。


スロットリングについて

短時間に大量のクエリを実行するとスロットリング(調整)が発生し、リクエストが制限される場合があります。利用量が多くなる場合は、上限の引き上げをリクエストすることができます。


まとめ

Azure Resource Graph を使うと、Azure Monitor や Log Analytics と同様の KQL ライクな構文で、サブスクリプション内のリソースを柔軟に検索・集計できます。グラフやマップによる視覚化、ダッシュボードへのピン留め、JSON によるエクスポート・インポートなど、リソース管理を効率化するための機能が揃っています。GitHub のサンプルダッシュボードをベースにカスタマイズするのもよい出発点です。ぜひ自分の環境に合わせたクエリを書いて、Azure Resource Graph を活用してみてください。