You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Storage Monitoring for Amazon S3, Google Cloud Storage, and Azure Blob Storage provides deep, prefix-level analytics to help you understand exactly how your storage is being used. It detects potential issues before they impact operations, and helps you make data-driven decisions about storage optimization. Use these insights to track storage growth, investigate access patterns, and optimize costs.
11
11
12
-
This guide explains how to configure Storage Monitoring in Datadog for your S3 buckets, GCS buckets, and Azure Storage Accounts.
12
+
This guide explains how to configure Storage Monitoring in Datadog for your Amazon S3 buckets, Google Cloud Storage buckets, and Azure storage accounts. Access your Storage Monitoring data by navigating to **Infrastructure > Storage Monitoring**.
13
13
14
-
Access your Storage Monitoring data by navigating to **Infrastructure > Storage Monitoring**.
14
+
Select your cloud storage service to access setup instructions.
The fastest way to set up Storage Monitoring is going to **Infrastructure > Storage Monitoring > [Add Buckets][1]**. On the Add Buckets page, you can configure multiple S3 buckets for Storage Monitoring in one go.
23
+
The fastest way to configure Storage Monitoring is through the [Add Buckets][501] page in Datadog, where you can set up multiple S3 buckets at the same time.
24
24
25
-
1. Go to Datadog > Infrastructure > Storage Monitoring.
26
-
27
-
2. Click [Add Buckets][1].
25
+
1. Go to Datadog > **Infrastructure** > **Storage Monitoring**.
26
+
2. Click [Add Buckets][501].
28
27
29
28
{{< img src="integrations/guide/storage_monitoring/add-buckets.png" alt="Select buckets for enabling Storage Monitoring" responsive="true">}}
30
29
31
30
3. Enable Amazon S3 Integration and Resource collection for all the AWS accounts you want to monitor.
32
31
33
-
**Note**: For each AWS account that has the S3 buckets you want to monitor, make sure your Datadog IAM roles include the following permissions: `s3:GetObject`, `s3:ListObjects`, and `s3:PutInventoryConfiguration`.
32
+
1.**Allow Datadog to read from your destination buckets.** Add the following permissions to the Datadog IAM integration role for the account that owns the destination buckets:
33
+
-`s3:GetObject`
34
+
-`s3:ListBucket`
35
+
36
+
Scope these read-only permissions to only the destination buckets containing your S3 inventory files.
37
+
38
+
1.**Allow source buckets to write to destination buckets.** The destination buckets must include a policy that allows the source buckets to write inventory data. See [Creating a destination bucket policy][502] in the AWS documentation for details.
You can also set up Storage Monitoring using the provided CloudFormation templates. This process involves two steps:
54
80
55
-
#### Step 1: Configure inventory generation
56
-
81
+
### Step 1: Configure inventory generation
57
82
58
83
This template configures your existing S3 bucket to generate inventory reports, which Datadog uses to generate detailed metrics about your bucket prefixes.
59
84
@@ -81,7 +106,7 @@ This template configures your existing S3 bucket to generate inventory reports,
81
106
**Note:** This CloudFormation template can be rolled back, but rolling back doesn't delete the created resources. This is to ensure the existing bucket doesn't get deleted. You can manually delete the inventory configurations by going on the **Management** tab in the bucket view.
82
107
83
108
**Note:** Review [Amazon S3 pricing][106] for costs related to inventory generation.
84
-
####Step 2: Configure required permissions
109
+
### Step 2: Configure required permissions
85
110
86
111
This template creates two IAM policies:
87
112
- A policy to allow Datadog to read inventory files from the destination bucket
@@ -100,12 +125,11 @@ This template creates two IAM policies:
100
125
- **SourceBucketPrefix**: This parameter limits the inventory generation to a specific prefix in the source bucket
101
126
- **DestinationBucketPrefix**: If you want to reuse an existing bucket as the destination, this parameter allows the inventory files to be shipped to a specific prefix in that bucket. Ensure that any prefixes do not include trailing slashes (`/`)
- The destination bucket can be your source bucket, but for security and logical separation, many organizations use a separate bucket.
197
+
- The `optional_fields` section is recommended for Datadog prefix metrics.
198
+
199
+
### Post-setup steps
200
+
201
+
Once the inventory configuration is set up and your inventory files begin appearing in the destination bucket, fill out [this form][401] to provide your S3 configuration details. This allows Datadog to begin generating prefix metrics for your storage.
202
+
203
+
### Use modules for complex setups
204
+
205
+
If you need to manage multiple buckets, complex inventory policies, encryption, or cross-account setups, you can use the [terraform-aws-s3-bucket module][402].
206
+
207
+
### Troubleshooting
208
+
209
+
- S3 Inventory files are delivered daily, and may take up to 24 hours to appear after setup.
210
+
- Ensure IAM permissions allow S3 to write inventory files to your destination bucket.
211
+
- If cross-account access is needed, confirm that the inventory destination prefix (`datadog-inventory/` in the example) is correct and accessible to Datadog.
To manually set up the required [Amazon S3 Inventory][206] and related configuration, follow these steps:
128
221
129
-
####Step 1: Create a destination bucket
222
+
### Step 1: Create a destination bucket
130
223
131
224
1.[Create an S3 bucket][201] to store your inventory files. This bucket acts as the central location for inventory reports. **Note**: You must only use one destination bucket for all inventory files generated in an AWS account.
132
225
2. Create a prefix within the destination bucket (optional).
133
226
134
-
####Step 2: Configure the bucket and integration role policies
227
+
### Step 2: Configure the bucket and integration role policies
135
228
136
229
1. Follow the steps in the [Amazon S3 user guide][202] to add a bucket policy to your destination bucket allowing write access (`s3:PutObject`) from your source buckets.
137
230
138
231
2. Ensure the Datadog AWS integration role has `s3:GetObject` and `s3:ListObjects` permissions on the destination bucket. These permissions allow Datadog to read the generated inventory files.
139
232
140
-
####Step 3: Configure Inventory generation
233
+
### Step 3: Configure inventory generation
141
234
142
235
For each bucket you want to monitor:
143
236
1. Go to the [Amazon S3 buckets page][203] in the AWS console, and select the bucket.
@@ -160,7 +253,7 @@ For each bucket you want to monitor:
160
253
161
254
**Note**: Review [Amazon S3 pricing][204] for costs related to inventory generation.
162
255
163
-
####Post-setup steps
256
+
### Post-setup steps
164
257
165
258
After completing the above steps, fill out the [post-setup form][205] with the following required information:
166
259
@@ -178,6 +271,18 @@ After completing the above steps, fill out the [post-setup form][205] with the f
If you have already configured S3 inventory for the buckets you want to monitor, choose **one** of the following options:
278
+
279
+
- Fill out [this form][601] to share your configurations with Datadog
280
+
-[Reach out to us][602] to use an API for setting up multiple buckets
281
+
282
+
[601]: https://forms.gle/dhDbSxTvCUDXg1QR7
283
+
[602]: mailto:storage-monitoring@datadoghq.com
284
+
{{% /tab %}}
285
+
181
286
{{< /tabs >}}
182
287
183
288
### Validation
@@ -188,28 +293,26 @@ To verify your setup:
188
293
- Confirm the Datadog integration can access the files:
189
294
- Navigate to **Infrastructure -> Storage Monitoring -> Installation Recommendations** to see if the bucket you configured is showing in the list
190
295
191
-
192
296
### Troubleshooting
297
+
193
298
If you encounter any issues or need assistance:
194
299
- Make sure to use only one destination bucket for all inventory files per AWS account
195
300
- Verify all permissions are correctly configured
196
301
- If you're still encountering issues, [reach out][1] with your bucket details, AWS account ID, and Datadog org ID
197
302
198
303
## Setup for Google Cloud Storage
199
304
200
-
### Installation
201
-
202
305
The process involves the following steps:
203
306
204
-
#### Step 1: Install the GCP integration and enable resource collection
307
+
#### Step 1: Install the Google Cloud integration and enable resource collection
205
308
206
-
To collect GCP Storage metrics from your GCP project, install the GCP integration in Datadog. Enable Resource Collection for the project containing the buckets you want to monitor. Resource Collection allows Datadog to associate your buckets' labels with the metrics collected through storage monitoring.
309
+
To collect Google Cloud Storage metrics from your Google Cloud project, install the Google Cloud integration in Datadog. Enable Resource Collection for the project containing the buckets you want to monitor. Resource Collection allows Datadog to associate your buckets' labels with the metrics collected through storage monitoring.
207
310
208
311
**Note**: While you can disable specific metric namespaces, keep the Cloud Storage namespace (gcp.storage) enabled.
209
312
210
313
#### Step 2: Enable the Storage Insights API
211
314
212
-
Enable the [Storage Insights][2] API in your GCP project.
315
+
Enable the [Storage Insights][2] API in your Google Cloud project.
213
316
214
317
#### Step 3: Grant service agent permissions
215
318
@@ -226,21 +329,21 @@ You can create an inventory report configuration in multiple ways. The quickest
226
329
227
330
1. Includes these metadata fields: `"bucket", "name", "project", "size", "updated", "storageClass"`
228
331
2. Generates CSV reports with `'\n'` as the delimiter and `','` as the separator
229
-
3. Uses this destination path format: `<Bucket>/{{date}}`, where `<Bucket>` is the monitored bucket-name
332
+
3. Uses this destination path format: `<BUCKET>/{{date}}`, where `<BUCKET>` is the monitored bucket-name
230
333
231
334
{{< tabs >}}
232
335
{{% tab "Google Cloud CLI" %}}
233
336
234
337
Use the [Google Cloud CLI][301] to run the following command:
Before running the script, set your [shell environment][302] to Bash and replace the various placeholder inputs with the correct values:
416
-
-`<client_id>`: The client ID of an App Registration already set up using the [Datadog Azure integration][302]
417
-
-`<subscription_id>`: The subscription ID of the Azure subscription containing the storage accounts
418
-
-`<comma_separated_storage_account_names>`: A comma-separated list of the storage accounts you want to monitor. For example, `storageaccount1,storageaccount2`
419
-
514
+
-`<CLIENT_ID>`: The client ID of an App Registration already set up using the [Datadog Azure integration][302]
515
+
-`<SUBSCRIPTION_ID>`: The subscription ID of the Azure subscription containing the storage accounts
516
+
-`<COMMA_SEPARATED_STORAGE_ACCOUNT_NAMES>`: A comma-separated list of the storage accounts you want to monitor (for example, `storageaccount1,storageaccount2`)
420
517
421
518
[301]: https://shell.azure.com
422
519
[302]: /integrations/azure/#setup
@@ -427,8 +524,7 @@ Before running the script, set your [shell environment][302] to Bash and replace
427
524
428
525
For Each Storage Account you wish to monitor, follow all of the steps here:
429
526
430
-
431
-
#### Create a blob inventory policy
527
+
### Create a blob inventory policy
432
528
1. In the Azure portal, navigate to your Storage Account.
433
529
2. Go to **Data management** > **Blob inventory**.
434
530
3. Click **Add**.
@@ -451,7 +547,7 @@ For Each Storage Account you wish to monitor, follow all of the steps here:
451
547
- Exclude prefix: datadog-storage-monitoring
452
548
5. Click **Add**.
453
549
454
-
####Add the role assignment
550
+
### Add the role assignment
455
551
1. In the Azure portal, navigate to your Storage Account.
456
552
2. Go to **Data storage** > **Containers**.
457
553
3. Click on the **datadog-storage-monitoring** container.
@@ -472,6 +568,3 @@ For Each Storage Account you wish to monitor, follow all of the steps here:
472
568
After you finish with the above steps, fill out the [post-setup form][310].
0 commit comments