診断設定ストレージ保持から Azure Storage ライフサイクル管理に移行する
- [アーティクル]
-
-
診断設定ストレージの保持機能は非推奨となっています。 Azure Storage アカウントに送信されるログとメトリックの保持を構成するには、Azure Storage のライフサイクル管理を使用します。
このガイドでは、Azure 診断設定ストレージ保持の使用から、Azure Storage ライフサイクル管理を使用した保持に移行する手順について説明します。
Log Analytics ワークスペースに送信されるログの場合、ワークスペースの [テーブル] ページにあるテーブルごとに保持が設定されます。
重要
非推奨のタイムライン。
- 2023 年 3 月 31 日 – 診断設定ストレージの保持機能は、ログ データの新しい保持規則を構成するために使用できなくなります。 これには、ポータル、CLI PowerShell、および ARM と Bicep テンプレートの使用が含まれます。 保持設定を構成した場合でも、ボータルでそれらを表示して変更することができます。
- 2024 年 3 月 31 日 – これらを 0 に変更しない限り、API (CLI、Powershell、またはテンプレート) または Azure portal を使用して保持設定を構成することはできなくなります。 既存の保持規則は引き続き尊重されます。
- 2025 年 9 月 30 日 – 診断設定ストレージの保持機能のすべての保持機能は、すべての環境で無効になります。
前提条件
ストレージ アカウントに対する既存の診断設定ログ。
移行手順
診断設定の保持規則を移行するには、次の手順のようにします。
ログ リソースの [診断設定] ページに移動し、移行する診断設定を見つけます
ログされるカテゴリの保持期間を 0 に設定します
[保存] を選びます。
ログ先のストレージ アカウントに移動します
[データ管理] で、[ライフサイクル管理] を選んでライフサイクル管理ポリシーを表示または変更します
リスト ビューを選び、[規則の追加] を選びます
[規則名] を入力します
[規則の範囲] で、[フィルターを使用して BLOB を制限する] を選びます
[BLOB の種類] で [Append Blobs] (追加 BLOB) を選び、[Blob subtype] (BLOB のサブタイプ) で [基本 BLOB] を選びます。
[次へ] を選びます
保持期間を設定して、[次へ] を選びます
[フィルター] タブの [BLOB プレフィックス] で、保持規則を適用するコンテナーまたはログへのパスまたはプレフィックスを設定します。 パスまたはプレフィックスはコンテナー内の任意のレベルにすることができ、そのパスまたはプレフィックスの下にあるすべての BLOB に適用されます。
たとえば、"すべての" 分析情報アクティビティ ログのためには、コンテナー insights-activity-logs を使用して、そのコンテナー ログ内のすべてのログに対して保持期間を設定します。
特定の webapp アプリのルールを設定するには、"insights-activity-logs/ResourceId=/SUBSCRIPTIONS/<サブスクリプション ID>/RESOURCEGROUPS/<リソース グループ>/PROVIDERS/MICROSOFT.WEB/SITES/<webapp 名>" を使用します。
パスまたはプレフィックスを見つけるためにストレージ ブラウザーを使用します。
次の例は、特定の Web アプリのプレフィックスを示します: *insights-activity-logs/ResourceId=/SUBSCRIPTIONS/d05145d-4a5d-4a5d-4a5d-5267eae1bbc7/RESOURCEGROUPS/rg-001/PROVIDERS/MICROSOFT.WEB/SITES/appfromdocker1。
このリソース グループ内のすべてのリソースにルールを設定するには、insights-activity-logs/ResourceId=/SUBSCRIPTIONS/d05145d-4a5d-4a5d-4a5d-5267eae1bbc7/RESOURCEGROUPS/rg-001 を使用します。
[追加] を選んで規則を保存します。
az storage account management-policy create コマンドを使用して、ライフサイクル管理ポリシーを作成します。 診断設定のリテンション期間は、引き続き「0」に設定する必要があります。 詳しくは、上記の「Azure portal」セクションをご覧ください。
az storage account management-policy create --account-name <storage account name> --resource-group <resource group name> --policy @<policy definition file>
次のサンプル ポリシー定義ファイルでは、指定されたサブスクリプション ID の insights-activity-logs コンテナー内のすべての BLOB に対してリテンション期間を設定します。 詳しくは、「ライフサイクル管理ポリシーの定義」をご覧ください。
{
"rules": [
{
"enabled": true,
"name": "Susbcription level lifecycle rule",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"delete": {
"daysAfterModificationGreaterThan": 120
}
}
},
"filters": {
"blobTypes": [
"appendBlob"
],
"prefixMatch": [
"insights-activity-logs/ResourceId=/SUBSCRIPTIONS/ABCD1234-5849-ABCD-1234-9876543210AB"
]
}
}
}
]
}
ライフサイクル管理ポリシーを作成するには、次のテンプレートを適用します。 診断設定のリテンション期間は、引き続き「0」に設定する必要があります。 詳しくは、上記の「Azure portal」セクションをご覧ください。
az deployment group create --resource-group <resource group name> --template-file <template file>
次のテンプレートでは、insights-activity-logs コンテナー内にあるサブスクリプション ID ABCD1234-5849-ABCD-1234-9876543210AB のすべてのリソースにおいて、すべての BLOB に対してストレージ アカウント azmonstorageaccount001 のリテンション期間を設定します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Storage/storageAccounts/managementPolicies",
"apiVersion": "2021-02-01",
"name": "azmonstorageaccount001/default",
"properties": {
"policy": {
"rules": [
{
"enabled": true,
"name": "Susbcription level lifecycle rule",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"delete": {
"daysAfterModificationGreaterThan": 120
}
}
},
"filters": {
"blobTypes": [
"appendBlob"
],
"prefixMatch": [
"insights-activity-logs/ResourceId=/SUBSCRIPTIONS/ABCD1234-5849-ABCD-1234-9876543210AB"
]
}
}
}
]
}
}
}
]
}
次のステップ
ライフサイクル管理ポリシーを構成する。