Azure Tableストレージに格納されたゲストOS診断データを時間指定で削除する

nmikuni

こんにちは、Azureサポートチームの三國です。

今回は、Azure Tableストレージに格納されたゲストOS診断データを時間指定で削除する方法についてご案内します。

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

はじめに


Azure Table ストレージには、表形式で情報を格納できます。たとえば、仮想マシンの"ゲストOSの診断"情報を格納できます。格納は仮想マシン作成時などに設定できます。

この"ゲストOSの診断"を利用することで、VMのパフォーマンス情報などを得ることができ、それはポータルから確認ができます。

 

"ゲストOSの診断"データは、たとえばストレージエクスプローラなどで下図のように蓄積されていることを確認できます。

さて、このデータはどれくらいの期間保管されるのでしょうか?

ストレージアカウントの診断ログアーカイブはリテンションというパラメータがあり、保管期間を指定することができます。

しかし、現時点では"ゲストOSの診断"データについては保管期間の管理ができません。

そのため、過去にさかのぼって診断データを確認できるメリットはありますが、保管しているデータの容量に対して課金が発生します。課金体系の詳細はこちらをご覧ください。

今回は、Tableストレージに蓄積されたゲストOS診断データについて時間を指定して削除するPowerShellスクリプトをご紹介します。

クラシックモデルについては、こちらで同機能の PowerShell のサンプルが公開されていましたが、ARM についてはサンプルはありませんでしたので、今回、公開する事にしました。

スクリプトのご紹介


以下、powershellスクリプトになります。.ps1形式で保存し、powershellとしてお使いください。

ClearOutAzureTableStorageEntity_ARM

必要な引数は以下です。

StorageAccountName: "ストレージアカウント名"

TableName: "テーブル名"

ResourseGroupName: "リソースグループ名"

StartTime: "削除開始時間"

EndTime: "削除終了時間"

 

StartTime(削除開始時間)、EndTime(終了時間)はGMT(グリニッジ標準時)で以下のフォーマットで指定してください。

mm/dd/yyyy hh:mm:ss AM(or PM)

例: 10/13/2017 06:00 AM

以下は実行例です。

PS > .\scriptForBlog.ps1 -StorageAccountName saforblog -ResourseGroupName rgForBlog -TableName WADPerformanceCountersTable -StartTime "10/13/2017 06:30 AM" -EndTime "10/13/2017 06:33 AM"

(アカウント情報略)

saforblog

Deleting the entity whose ETag is 'W/"datetime'2017-10-13T06%3A30%3A34.4238714Z'"'.

Deleting the entity whose ETag is 'W/"datetime'2017-10-13T06%3A30%3A34.4238714Z'"'.

Deleting the entity whose ETag is 'W/"datetime'2017-10-13T06%3A30%3A34.4238714Z'"'

(中略)

Totally deleted 183 entities in 'WADPerformanceCountersTable' Table Storage.

 

ストレージエクスプローラを見ると下図のようになっています。6:30-6:33のデータが削除されていることがわかります。

以上です。

皆様のお役に立ちましたら幸いです。

なお、スクリプトのご利用にあたっては免責事項をご参照願います。