Поделиться через


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

こんにちは、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のデータが削除されていることがわかります。

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

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