Azure WorkBooksとは
Azure WorkBooksはAzure内のデータを使ってグラフ等の視覚的にわかりやすいレポートを作れるサービス。とざっくり理解しています。
公式ドキュメント
WorkBooksの画面へはAzure Portalの色々なところから遷移できます。
Monitor、Advisor、Application Insights等。
Azure Monitorから遷移するのがわかりやすいですかね。
レポート作成
VMの稼働状態を一覧表示するレポートを作ってみます。
Advisorに停止VMの一覧表示するWorkBooksがあるのでそちらを参考にします。
参考
まずはブックの作成。
一覧の対象サブスクリプションを選択ができるようにします。
パラメータの追加をし、サブスクリプションの設定をします。
一覧表示させる内容はまとめたいため、グループを追加し、その中にパラメータを追加していきます。
リソースグループ、タグでフィルタリングできるようにしていきます。
次にVMの稼働状態のフィルタリングのパラメータ設定。
VMの一覧を表示するオブジェクトを作ります。
こちらはクエリの追加。
どのデータソースを使うか、どう表示するかの設定をします。
KQL全文はこちら。
今まで設定したパラメータをKQLで呼び出すようにします。
resources
| where type =~ 'microsoft.compute/virtualmachines' and tostring(properties.extended.instanceView.powerState.displayStatus) in~ ({vmstatus})
| where resourceGroup in ({ResourceGroup})
| extend PowerState=tostring(properties.extended.instanceView.powerState.displayStatus), VMLocation=location, resourceGroup=strcat('/subscriptions/',subscriptionId,'/resourceGroups/',resourceGroup), VMSize = properties.hardwareProfile.vmSize
| order by id asc
| project id, PowerState, VMLocation, resourceGroup, subscriptionId, VMSize
| join kind = innerunique(
resources
| extend replaced_tags = replace('{}', 'null', tostring(tags))
| extend replaced_tags = parse_json(replaced_tags)
| mv-expand replaced_tags
| extend tagName = tostring(bag_keys(replaced_tags)[0])
| extend tagValue = tostring(replaced_tags['{TagName}'])
| where tagName has '{TagName}' and tagValue has '{TagValue}'
| distinct id
)
on id
| project-away id1
別のオブジェクトで各状態の合計数も表示するようにします。
resources
| where type =~ 'microsoft.compute/virtualmachines'
| extend stat = tostring(properties.extended.instanceView.powerState.displayStatus)
| summarize count() by stat
レポートの表示
全体像は以下のような感じです。
VMの状態のフィルタリングを触ってみます。
稼働中
停止(割当解除)
停止
おわりに
設定が大変ですが好みの情報を表示できるのは良いですね。
今後も活用していきたいと思います。